diff --git a/slack/channels.py b/slack/channels.py index 2a0e284..7e1e2fe 100644 --- a/slack/channels.py +++ b/slack/channels.py @@ -3,6 +3,7 @@ # from . import api from . import auth +from . import chat from . import users from datetime import datetime @@ -35,6 +36,9 @@ class Channel: def name(self): return self.__name + def post(self, text): + chat.postMessage(self.__id, text) + def unread_count(self): if self.__unread == None: self.fetch_info() diff --git a/slack/chat.py b/slack/chat.py new file mode 100644 index 0000000..fe28216 --- /dev/null +++ b/slack/chat.py @@ -0,0 +1,11 @@ +# +# Copyright 2015 (c) Anna Schumaker. +# +from . import api +from . import auth +from urllib import request + +def postMessage(channel, text): + post = request.quote(text) + api.call("chat.postMessage", token = auth.token(), channel = channel, + text = post, as_user = True, parse = "full") diff --git a/slackpost.py b/slackpost.py new file mode 100755 index 0000000..641f6f2 --- /dev/null +++ b/slackpost.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +# Copyright 2015 (c) Anna Schumaker. +# + +import slack +import sys +from email.parser import Parser + +headers = Parser().parsestr(sys.stdin.read()) + +if headers['from'] != "Anna Schumaker ": + sys.exit(1) + + +# Determine which channel to post to +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: + channel = c + break + +if channel == None: + sys.exit(1) + +text = headers.get_payload().split("\n")[0] +channel.post(text)