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:
else:
tweeter_screen = "[not returned]" ; tweeter_name = "[not returned]"
tweeter_name = tweeter_name + " RTing " + status.user.name #.encode('UTF-8', 'replace')
- tweetText = status.text
+ tweetText = status.full_text
if status.media:
replacements = defaultdict( list )
for medium in status.media:
for k,v in replacements.items():
- v = [re.sub(r"/tweet_video_thumb/(\w+).jpg", r"/tweet_video/\1.mp4", link) for link in v]
+ v = [re.sub(r"/tweet_video_thumb/([\w\-]+).jpg", r"/tweet_video/\1.mp4", link) for link in v]
if len(v) > 1:
replacementstring = "[" + " ; ".join(v) +"]"
else:
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("<","<")
tweetText = tweetText.replace("&","&")
+ tweetText = tweetText.replace("\n"," ")
stringout = "tweet by %s (%s): %s" %(tweeter_screen,tweeter_name,tweetText)
except twitter.TwitterError:
terror = sys.exc_info()
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')