From: John Runyon Date: Wed, 5 Feb 2014 21:02:14 +0000 (-0600) Subject: mv COPYING LICENSE and fix youtube module X-Git-Url: https://jfr.im/git/erebus.git/commitdiff_plain/d9c49adb6e5bed87badb2af8258f27a9fa524d98 mv COPYING LICENSE and fix youtube module --- diff --git a/COPYING b/LICENSE similarity index 100% rename from COPYING rename to LICENSE diff --git a/modules/youtube.py b/modules/youtube.py index c40bf17..9e70170 100644 --- a/modules/youtube.py +++ b/modules/youtube.py @@ -25,8 +25,7 @@ import HTMLParser from BeautifulSoup import BeautifulSoup checkfor = "youtube" -url_regex = re.compile('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+') -yturl_regex = re.compile('(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?') +yturl_regex = re.compile(r'https?://(?:www\.)?youtube\.com/watch\?[a-zA-Z0-9=&]+') @lib.hooknum("PRIVMSG") def privmsg_hook(bot, line): @@ -38,19 +37,18 @@ def privmsg_hook(bot, line): if checkfor not in line: return # doesn't concern us - for url in url_regex.findall(linetx): - if checkfor in url: - url_data = urlparse.urlparse(url) - query = urlparse.parse_qs(url_data.query) - video = query["v"][0] - api_url = 'http://gdata.youtube.com/feeds/api/videos/%s?alt=json&v=2' % video - try: - respdata = urllib2.urlopen(api_url).read() - video_info = json.loads(respdata) - - title = video_info['entry']['title']["$t"] - author = video_info['entry']['author'][0]['name']['$t'] - - bot.msg(line.split()[2], "Youtube: %s (%s)" % (title, author)) - except: - pass + for url in yturl_regex.findall(linetx): + url_data = urlparse.urlparse(url) + query = urlparse.parse_qs(url_data.query) + video = query["v"][0] + api_url = 'http://gdata.youtube.com/feeds/api/videos/%s?alt=json&v=2' % video + try: + respdata = urllib2.urlopen(api_url).read() + video_info = json.loads(respdata) + + title = video_info['entry']['title']["$t"] + author = video_info['entry']['author'][0]['name']['$t'] + + bot.msg(line.split()[2], "Youtube: %s (%s)" % (title, author)) + except: + pass