-# Erebus IRC bot - Author: Conny Sjoblom
-# Spotify URL Checker
+# Erebus IRC bot - Author: Erebus Team
+# Twitch URL Checker
# This file is released into the public domain; see http://unlicense.org/
# module info
modinfo = {
- 'author': 'Conny Sjoblom',
+ 'author': 'Erebus Team',
'license': 'public domain',
'compatible': [1], # compatible module API versions
'depends': [], # other modules required to work properly?
import re
import urllib2
import json
-from BeautifulSoup import BeautifulSoup
checkfor = "twitch"
-hostmask_regex = re.compile('^(.*)!(.*)@(.*)$')
url_regex = re.compile('(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?')
-def parser_hostmask(hostmask):
- if isinstance(hostmask, dict):
- return hostmask
-
- nick = None
- user = None
- host = None
-
- if hostmask is not None:
- match = hostmask_regex.match(hostmask)
-
- if not match:
- nick = hostmask
- else:
- nick = match.group(1)
- user = match.group(2)
- host = match.group(3)
-
- return {
- 'nick': nick,
- 'user': user,
- 'host': host
- }
@lib.hooknum("PRIVMSG")
def privmsg_hook(bot, line):
- sender = parser_hostmask(line[1:line.find(' ')])
-
try:
linetx = line.split(None, 3)[3][1:]
except IndexError:
respdata = urllib2.urlopen(url).read()
twitch = json.loads(respdata)
try:
- bot.msg(line.split()[2], 'Twitch: %s (%s)' % (twitch[0]['channel']['status'], twitch[0]['channel']['meta_game']))
+ bot.msg(line.split()[2], 'Twitch: %s (%s playing %s)' % (twitch[0]['channel']['status'], twitch[0]['channel']['login'], twitch[0]['channel']['meta_game']))
except:
bot.msg(line.split()[2], 'Twitch: Channel offline.')