split commands properly
This commit is contained in:
parent
017fd4fc2e
commit
bb73e70112
1 changed files with 41 additions and 27 deletions
|
@ -4,22 +4,10 @@ import re
|
||||||
import random
|
import random
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
|
||||||
TWITTER_RE = (r"(?:(?:www.twitter.com|twitter.com)/(?:[-_a-zA-Z0-9]+)/status/)([0-9]+)", re.I)
|
TWITTER_RE = (r"(?:(?:www.twitter.com|twitter.com)/(?:[-_a-zA-Z0-9]+)/status/)([0-9]+)", re.I)
|
||||||
|
|
||||||
@hook.regex(*TWITTER_RE)
|
|
||||||
def twitter_url(match, bot=None):
|
|
||||||
tweet_id = match.group(1)
|
|
||||||
print tweet_id
|
|
||||||
return twitter(tweet_id, bot)
|
|
||||||
|
|
||||||
|
|
||||||
@hook.command("tw")
|
|
||||||
@hook.command("twatter")
|
|
||||||
@hook.command
|
|
||||||
def twitter(inp, bot=None):
|
|
||||||
"twitter <user> [n] -- Gets last/[n]th tweet from <user>"
|
|
||||||
|
|
||||||
|
def get_api(bot):
|
||||||
consumer_key = bot.config.get("api_keys", {}).get("twitter_consumer_key")
|
consumer_key = bot.config.get("api_keys", {}).get("twitter_consumer_key")
|
||||||
consumer_secret = bot.config.get("api_keys", {}).get("twitter_consumer_secret")
|
consumer_secret = bot.config.get("api_keys", {}).get("twitter_consumer_secret")
|
||||||
|
|
||||||
|
@ -27,12 +15,48 @@ def twitter(inp, bot=None):
|
||||||
oauth_secret = bot.config.get("api_keys", {}).get("twitter_access_secret")
|
oauth_secret = bot.config.get("api_keys", {}).get("twitter_access_secret")
|
||||||
|
|
||||||
if not consumer_key:
|
if not consumer_key:
|
||||||
return "Error: No Twitter API details."
|
return False
|
||||||
|
|
||||||
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
|
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
|
||||||
auth.set_access_token(oauth_token, oauth_secret)
|
auth.set_access_token(oauth_token, oauth_secret)
|
||||||
|
|
||||||
api = tweepy.API(auth)
|
return tweepy.API(auth)
|
||||||
|
|
||||||
|
|
||||||
|
@hook.regex(*TWITTER_RE)
|
||||||
|
def twitter_url(match, bot=None):
|
||||||
|
tweet_id = match.group(1)
|
||||||
|
|
||||||
|
api = get_api(bot)
|
||||||
|
if not api:
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
tweet = api.get_status(tweet_id)
|
||||||
|
user = tweet.user
|
||||||
|
except tweepy.error.TweepError:
|
||||||
|
return
|
||||||
|
|
||||||
|
text = " ".join(tweet.text.split())
|
||||||
|
|
||||||
|
if user.verified:
|
||||||
|
prefix = u"\u2713"
|
||||||
|
else:
|
||||||
|
prefix = ""
|
||||||
|
|
||||||
|
time = timesince.timesince(tweet.created_at, datetime.utcnow())
|
||||||
|
|
||||||
|
return u"{}@\x02{}\x02 ({}): {} ({} ago)".format(prefix, user.screen_name, user.name, text, time)
|
||||||
|
|
||||||
|
|
||||||
|
@hook.command("tw")
|
||||||
|
@hook.command("twatter")
|
||||||
|
@hook.command
|
||||||
|
def twitter(inp, bot=None):
|
||||||
|
"twitter <user> [n] -- Gets last/[n]th tweet from <user>"
|
||||||
|
|
||||||
|
api = get_api(bot)
|
||||||
|
if not api:
|
||||||
|
return "Error: No Twitter API details."
|
||||||
|
|
||||||
if re.match(r'^\d+$', inp):
|
if re.match(r'^\d+$', inp):
|
||||||
# user is getting a tweet by id
|
# user is getting a tweet by id
|
||||||
|
@ -111,20 +135,10 @@ def twitter(inp, bot=None):
|
||||||
def twuser(inp, bot=None):
|
def twuser(inp, bot=None):
|
||||||
"""twuser <user> -- Get info on the Twitter user <user>"""
|
"""twuser <user> -- Get info on the Twitter user <user>"""
|
||||||
|
|
||||||
consumer_key = bot.config.get("api_keys", {}).get("twitter_consumer_key")
|
api = get_api(bot)
|
||||||
consumer_secret = bot.config.get("api_keys", {}).get("twitter_consumer_secret")
|
if not api:
|
||||||
|
|
||||||
oauth_token = bot.config.get("api_keys", {}).get("twitter_access_token")
|
|
||||||
oauth_secret = bot.config.get("api_keys", {}).get("twitter_access_secret")
|
|
||||||
|
|
||||||
if not consumer_key:
|
|
||||||
return "Error: No Twitter API details."
|
return "Error: No Twitter API details."
|
||||||
|
|
||||||
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
|
|
||||||
auth.set_access_token(oauth_token, oauth_secret)
|
|
||||||
|
|
||||||
api = tweepy.API(auth)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# try to get user by username
|
# try to get user by username
|
||||||
user = api.get_user(inp)
|
user = api.get_user(inp)
|
||||||
|
|
Reference in a new issue