chiark / gitweb /
Add a limit to tweet expansion recursion.
[irc.git] / commands.py
index 431a113cd1274fec3926c36a9ccaca276b0f206c..fbffa9f0ec6432bdf78e7b57dacaa04219d5c7e9 100755 (executable)
@@ -502,7 +502,7 @@ def twitterq(bot,cmd,nick,conn,public,twitapi):
     for stringout in stringsout:
         bot.automsg(public, nick, stringout)
   
-def getTweet(urlstring,twitapi,inclusion=False):
+def getTweet(urlstring,twitapi,inclusion=False,recurlvl=0):
   unobfuscate_urls=True
   expand_included_tweets=True
   stringsout=[]
@@ -578,12 +578,15 @@ def getTweet(urlstring,twitapi,inclusion=False):
 
         if expand_included_tweets:
             if rv.hostname == 'twitter.com' and re.search(r'status/\d+',rv.path):
-                quotedtweet = getTweet(toReplace, twitapi, inclusion=True) # inclusion parameter limits recursion.
-                if not quotedtweet:
-                    quotedtweet = [""]
-                quotedtweet[0] = "Q{ " + quotedtweet[0]
-                quotedtweet[-1] += " }"
-                stringsout = quotedtweet + stringsout
+                if recurlvl > 2
+                  stringsout = [ "{{ Recursion level too high }}" ] + stringsout
+                else:
+                  quotedtweet = getTweet(toReplace, twitapi, inclusion=True, recurlvl=recurlvl+1) # inclusion parameter limits recursion.
+                  if not quotedtweet:
+                      quotedtweet = [""]
+                  quotedtweet[0] = "Q{ " + quotedtweet[0]
+                  quotedtweet[-1] += " }"
+                  stringsout = quotedtweet + stringsout
 
         tweetText = tweetText.replace(url.url, toReplace)