From 5fe26ca0e525f13a6360bbc4cd20c378ef7e359e Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 27 May 2015 16:37:05 -0400 Subject: [PATCH] Send email with X-Slack-Header to specify channel This is slightly more accurate than using channel names to lookup where to post. Signed-off-by: Anna Schumaker --- slack/channels.py | 3 +++ slackmail.py | 1 + slackpost.py | 5 ++--- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/slack/channels.py b/slack/channels.py index 7e1e2fe..2826697 100644 --- a/slack/channels.py +++ b/slack/channels.py @@ -30,6 +30,9 @@ class Channel: self.__unread = json.get("unread_count", None) self.__last_ts = json.get("last_read", None) + def id(self): + return self.__id + def is_member(self): return self.__member diff --git a/slackmail.py b/slackmail.py index 5e62efd..f3c452c 100644 --- a/slackmail.py +++ b/slackmail.py @@ -23,6 +23,7 @@ for channel in slack.channels.list(): print() msg = MIMEText("\n".join(text)) + msg["X-Slack-Channel"] = channel.id() msg["Subject"] = "[%s] %s" % (slack.team(), channel.name()) msg["From"] = "SlackMail@OcarinaProject.net" msg["To"] = slack.user().email() diff --git a/slackpost.py b/slackpost.py index ab0faff..d9332f4 100755 --- a/slackpost.py +++ b/slackpost.py @@ -13,12 +13,11 @@ if headers['from'] != "Anna Schumaker ": # Determine which channel to post to +chan_id = headers["X-Slack-Channel"] channel = None -subject = headers['subject'] -ch_name = subject.split("[%s]" % slack.team())[-1].strip() for c in slack.channels.list(): - if c.name() == ch_name: + if c.id() == chan_id: channel = c break