From e0ec5d2e8560ae433ee677622b24ba82dbe7630b Mon Sep 17 00:00:00 2001 From: tv Date: Sun, 29 May 2011 15:47:21 +0200 Subject: lowered filesystem hierarchy--everything are modules --- noise/modules/twitter | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100755 noise/modules/twitter (limited to 'noise/modules/twitter') diff --git a/noise/modules/twitter b/noise/modules/twitter new file mode 100755 index 00000000..26982525 --- /dev/null +++ b/noise/modules/twitter @@ -0,0 +1,125 @@ +#!/usr/bin/python +#encode=utf8 + +#print "TODO Bug Robert to implement Twitter-OAuth!" +#exit(1) +import sys + +#sys.path.append("/usr/local/lib/") + +import twitter, os, pwd + +#os.getlogin = lambda: pwd.getpwuid(os.getuid())[0] + +sys.stderr = sys.stdout + +def shorten(text): + + text = text.replace("about ", "~") + text = text.replace("an", "1") + text = text.replace(" minutes", "m") + text = text.replace(" minute", "m") + text = text.replace(" hours", "h") + text = text.replace(" hour", "h") + text = text.replace(" seconds", "s") + text = text.replace(" second", "s") + text = text.replace(" days", "d") + text = text.replace(" day", "d") + text = text.replace(" weeks", "w") + text = text.replace(" week", "w") + text = text.replace(" years", "y") + text = text.replace(" year", "y") + text = text.replace(" ago", "") + text = text.replace("a", "1") + return text + + +def parse(text): + text = text.replace("\n","") + t = text.split(" ") + new = "" + for piece in t: + escape = "" + if piece.startswith("@"): + escape = "" + if piece[1:].lower() == "shackspam" or piece[1:].lower() == "shackspace": + escape = "" + + elif piece.startswith("#"): + escape = "" + elif piece.startswith("http://"): + escape = "" + if escape: + new += escape + piece + " " + else: + new += piece + " " + + return new + +if len(sys.argv) > 1 and sys.argv[1] == "--help": + print "read or post to the shackspam twitter timeline" + if len(sys.argv) == 3 and sys.argv[2] == "--verbose": + print "call without parameters to read" + print "use /twitter [your tweet] to tweet something to the shackspam twitter timeline" + exit() + + + +api = twitter.Api("Z7f9npE5ixvZ0lMCHDZBOg", "8z0gyfOABar1HxKvqL6fYXLqRFUPLQ9OOzDFt7Q4F4", "139766258-94TGPvNsJ8tYVv68eZewfXOIyDvRCWdycNlUgHrs", "NRnDQZPCoLrDizFvakZkSWgoG4vgGuT3OOMChSfiI") + +#api.SetXTwitterHeaders("Shackspace UTTERANCE","","0.00.0.01.42") + +if len(sys.argv) > 1: + + + tweet = u"" + + for t in sys.argv[1:]: + tweet += t.decode("utf8") + u" " + tweet = tweet[:-1] + + print u"Length: " + str(len(tweet)) + u"" + + if len(tweet) > 140: + print u"Your Tweet must be shorter than 140 characters.\n" + exit() + + status = api.PostUpdate(tweet) + + + + +else: + """print "\tshackspace tweets:" + for i in api.GetUserTimeline(): + i.text = parse(i.text) + print ("" + i.user.screen_name + " " + i.GetRelativeCreatedAt() + " " + i.text).encode("utf8").replace("\n"," ") + + print "\n\tfriends tweets" + """ + a = api.GetFriendsTimeline() + a.reverse() + for i in a: + text = i.text + ilen = len(i.user.screen_name) + len(shorten(i.GetRelativeCreatedAt())) + 2 + if i.user.screen_name.lower() == "shackspace" or i.user.screen_name.lower() == "shackspam": + info = "" + i.user.screen_name + " " + shorten(i.GetRelativeCreatedAt()) + "" + else: + info = "" + i.user.screen_name + " " + shorten(i.GetRelativeCreatedAt()) + "" + text = info + " " + parse(text) + + t = text.split(" ") + tmp = "" + for n in t: + if ((len(tmp) + len(n)) >= 80): + print parse(tmp).encode("utf8") + tmp = " " * ilen + + tmp += " " + n + if len(tmp) > ilen: + print parse(tmp).encode("utf8") + + + + + -- cgit v1.2.3