summaryrefslogtreecommitdiffstats
path: root/modules/twitter.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/twitter.py')
-rwxr-xr-xmodules/twitter.py106
1 files changed, 53 insertions, 53 deletions
diff --git a/modules/twitter.py b/modules/twitter.py
index afd1d5c..0ec4744 100755
--- a/modules/twitter.py
+++ b/modules/twitter.py
@@ -20,74 +20,74 @@ r_whiteline = re.compile(r'(?ims)[ \t]+[\r\n]+')
r_breaks = re.compile(r'(?ims)[\r\n]+')
def entity(*args, **kargs):
- return web.entity(*args, **kargs).encode('utf-8')
+ return web.entity(*args, **kargs).encode('utf-8')
-def decode(html):
- return web.r_entity.sub(entity, html)
+def decode(html):
+ return web.r_entity.sub(entity, html)
def expand(tweet):
- def replacement(match):
- anchor = match.group(1)
- for link in r_expanded.findall(anchor):
- return link
- return r_tag.sub('', anchor)
- return r_anchor.sub(replacement, tweet)
+ def replacement(match):
+ anchor = match.group(1)
+ for link in r_expanded.findall(anchor):
+ return link
+ return r_tag.sub('', anchor)
+ return r_anchor.sub(replacement, tweet)
def read_tweet(url):
- bytes = web.get(url)
- shim = '<div class="content clearfix">'
- if shim in bytes:
- bytes = bytes.split(shim, 1).pop()
-
- for text in r_p.findall(bytes):
- text = expand(text)
- text = r_tag.sub('', text)
- text = text.strip()
- text = r_whiteline.sub(' ', text)
- text = r_breaks.sub(' ', text)
- return decode(text)
- return "Sorry, couldn't get a tweet from %s" % url
+ bytes = web.get(url)
+ shim = '<div class="content clearfix">'
+ if shim in bytes:
+ bytes = bytes.split(shim, 1).pop()
+
+ for text in r_p.findall(bytes):
+ text = expand(text)
+ text = r_tag.sub('', text)
+ text = text.strip()
+ text = r_whiteline.sub(' ', text)
+ text = r_breaks.sub(' ', text)
+ return decode(text)
+ return "Sorry, couldn't get a tweet from %s" % url
def format(tweet, username):
- return '%s (@%s)' % (tweet, username)
+ return '%s (@%s)' % (tweet, username)
def user_tweet(username):
- tweet = read_tweet('https://twitter.com/' + username + "?" + str(time.time()))
- return format(tweet, username)
+ tweet = read_tweet('https://twitter.com/' + username + "?" + str(time.time()))
+ return format(tweet, username)
def id_tweet(tid):
- link = 'https://twitter.com/twitter/status/' + tid
- data = web.head(link)
- message, status = tuple(data)
- if status == 301:
- url = message.get("Location")
- if not url: return "Sorry, couldn't get a tweet from %s" % link
- username = url.split('/')[3]
- tweet = read_tweet(url)
- return format(tweet, username)
- return "Sorry, couldn't get a tweet from %s" % link
+ link = 'https://twitter.com/twitter/status/' + tid
+ data = web.head(link)
+ message, status = tuple(data)
+ if status == 301:
+ url = message.get("Location")
+ if not url: return "Sorry, couldn't get a tweet from %s" % link
+ username = url.split('/')[3]
+ tweet = read_tweet(url)
+ return format(tweet, username)
+ return "Sorry, couldn't get a tweet from %s" % link
def twitter(phenny, input):
- arg = input.group(2)
- if not arg:
- return phenny.reply("Give me a link, a username, or a tweet id")
-
- arg = arg.strip()
- if isinstance(arg, unicode):
- arg = arg.encode('utf-8')
-
- if arg.isdigit():
- phenny.say(id_tweet(arg))
- elif r_username.match(arg):
- phenny.say(user_tweet(arg))
- elif r_link.match(arg):
- username = arg.split('/')[3]
- tweet = read_tweet(arg)
- phenny.say(format(tweet, username))
- else: phenny.reply("Give me a link, a username, or a tweet id")
+ arg = input.group(2)
+ if not arg:
+ return phenny.reply("Give me a link, a username, or a tweet id")
+
+ arg = arg.strip()
+ if isinstance(arg, unicode):
+ arg = arg.encode('utf-8')
+
+ if arg.isdigit():
+ phenny.say(id_tweet(arg))
+ elif r_username.match(arg):
+ phenny.say(user_tweet(arg))
+ elif r_link.match(arg):
+ username = arg.split('/')[3]
+ tweet = read_tweet(arg)
+ phenny.say(format(tweet, username))
+ else: phenny.reply("Give me a link, a username, or a tweet id")
twitter.commands = ['tw', 'twitter']
twitter.thread = True
if __name__ == '__main__':
- print __doc__
+ print __doc__