From 26e06cd05daafec2a653424cb9615f2d41da2879 Mon Sep 17 00:00:00 2001 From: Luke Strickland Date: Mon, 21 Apr 2014 19:50:23 -0500 Subject: [PATCH 1/2] Add initial mandrill package --- requirements.txt | 1 + vendor/mandrill-1.0.53.tar.gz | Bin 0 -> 25561 bytes 2 files changed, 1 insertion(+) create mode 100644 vendor/mandrill-1.0.53.tar.gz diff --git a/requirements.txt b/requirements.txt index 4162be69ef..92f39e6b36 100644 --- a/requirements.txt +++ b/requirements.txt @@ -44,3 +44,4 @@ ./vendor/invoke-0.7.0.tar.gz +./vendor/mandrill-1.0.53.tar.gz diff --git a/vendor/mandrill-1.0.53.tar.gz b/vendor/mandrill-1.0.53.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..fbf294786ebcce40284158a0b9f93eb7625ec736 GIT binary patch literal 25561 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 m(|+1d`)NPzr~R~__S1gaPy1; Date: Mon, 21 Apr 2014 22:26:59 -0500 Subject: [PATCH 2/2] Wiring up Mandrill --- configure-aspen.py | 1 + defaults.env | 2 ++ gittip/wireup.py | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/configure-aspen.py b/configure-aspen.py index 7e506b5a32..358b9a8a0b 100644 --- a/configure-aspen.py +++ b/configure-aspen.py @@ -39,6 +39,7 @@ env = website.env = gittip.wireup.env() gittip.wireup.canonical(env) website.db = gittip.wireup.db(env) +website.mail = gittip.wireup.mail(env) gittip.wireup.billing(env) gittip.wireup.username_restrictions(website) gittip.wireup.nanswers(env) diff --git a/defaults.env b/defaults.env index 7a6ffe3898..7ae75c7b5c 100644 --- a/defaults.env +++ b/defaults.env @@ -59,3 +59,5 @@ ASPEN_NETWORK_ADDRESS=:8537 ASPEN_PROJECT_ROOT=. ASPEN_SHOW_TRACEBACKS=yes ASPEN_WWW_ROOT=www/ + +MANDRILL_KEY= diff --git a/gittip/wireup.py b/gittip/wireup.py index 74412c6c91..1fbd05e113 100644 --- a/gittip/wireup.py +++ b/gittip/wireup.py @@ -8,6 +8,7 @@ import gittip import raven import stripe +import mandrill from environment import Environment, is_yesish from gittip.elsewhere import PlatformRegistry from gittip.elsewhere.bitbucket import Bitbucket @@ -40,6 +41,10 @@ def db(env): return db +def mail(env): + mandrill_client = mandrill.Mandrill(env.mandrill_key) + + return mandrill_client def billing(env): stripe.api_key = env.stripe_secret_api_key @@ -262,6 +267,7 @@ def env(): SENTRY_DSN = unicode, LOG_BUSY_THREADS_EVERY = int, LOG_METRICS = is_yesish, + MANDRILL_KEY = unicode, )