chiark / gitweb /
new trout from rjk
[irc.git] / commands.py
index 8e3bfe6f336272374a82b0f67df0b81924dfebf2..cea3a2a6d2d3ef627735184bcfdfab3cce978a9f 100755 (executable)
@@ -501,8 +501,10 @@ def twitterq(bot,cmd,nick,conn,public,twitapi):
     stringout = getTweet(urlstring,twitapi)
     bot.automsg(public, nick, stringout)
   
-def getTweet(urlstring,twitapi):
+def getTweet(urlstring,twitapi,inclusion=False):
   unobfuscate_urls=True
+  expand_included_tweets=True
+
   parts = string.split(urlstring,'/')
   tweetID = parts[-1]
   try:
@@ -572,11 +574,16 @@ def getTweet(urlstring,twitapi):
             else:
                 toReplace = '%s://%s%s' % (rv.scheme, rv.hostname, rv.path) # leave off the final '?'
 
+        if expand_included_tweets and not inclusion:
+            if rv.hostname == 'twitter.com' and re.search(r'status/\d+',rv.path):
+                quotedtweet = getTweet(toReplace, twitapi, inclusion=True) # inclusion parameter limits recursion.
+                tweetText += " Q{" + quotedtweet +  "}"
         tweetText = tweetText.replace(url.url, toReplace)
 
     tweetText = tweetText.replace(">",">")
     tweetText = tweetText.replace("&lt;","<")
     tweetText = tweetText.replace("&amp;","&")
+    tweetText = tweetText.replace("\n"," ")
     stringout = "tweet by %s (%s): %s" %(tweeter_screen,tweeter_name,tweetText)
   except twitter.TwitterError:
     terror = sys.exc_info()
@@ -584,4 +591,6 @@ def getTweet(urlstring,twitapi):
   except Exception:
     terror = sys.exc_info()
     stringout = "Error: %s" % terror[1].__str__()
+  if inclusion:
+      return stringout # don't want to double-encode it, so just pass it on for now and encode later
   return stringout.encode('UTF-8', 'replace')