def twitch_lookup(location): locsplit = location.split("/") if len(locsplit) > 1 and len(locsplit) == 3: channel = locsplit[0] _type = locsplit[1] # should be b or c _id = locsplit[2] else: channel = locsplit[0] _type = None _id = None fmt = "{}: {} playing {} ({})" # Title: nickname playing Game (x views) if _type and _id: if _type == "b": # I haven't found an API to retrieve broadcast info soup = http.get_soup("http://twitch.tv/" + location) title = soup.find('span', {'class': 'real_title js-title'}).text playing = soup.find('a', {'class': 'game js-game'}).text views = soup.find('span', {'id': 'views-count'}).text + " view" views = views + "s" if not views[0:2] == "1 " else views return html.unescape(fmt.format(title, channel, playing, views)) elif _type == "c": data = http.get_json("https://api.twitch.tv/kraken/videos/" + _type + _id) title = data['title'] playing = data['game'] views = str(data['views']) + " view" views = views + "s" if not views[0:2] == "1 " else views return html.unescape(fmt.format(title, channel, playing, views)) else: data = http.get_json("https://api.twitch.tv/kraken/streams?channel=" + channel) if data["streams"]: title = data["streams"][0]["channel"]["status"] playing = data["streams"][0]["game"] v = data["streams"][0]["viewers"] viewers = str(title) + " is currently " + "\x033\x02online!\x02\x0f " + str(v) + " viewer" + ("s are currently watching!" if v != 1 else "") return html.unescape(fmt.format(title, channel, playing, viewers)) else: try: data = http.get_json("https://api.twitch.tv/kraken/channels/" + channel) except Exception: return "Unable to get channel data. Maybe the channel is on justin.tv instead of twitch.tv?" title = data['status'] playing = data['game'] viewers = "The streamer is currently \x034\x02offline\x02\x0f. Try again later!" return html.unescape(fmt.format(title, channel, playing, viewers))
def vimeo_url(match): """vimeo <url> -- returns information on the Vimeo video at <url>""" info = http.get_json('http://vimeo.com/api/v2/video/%s.json' % match.group(1)) if info: info[0]["duration"] = timeformat.format_time(info[0]["duration"]) info[0]["stats_number_of_likes"] = format( info[0]["stats_number_of_likes"], ",d") info[0]["stats_number_of_plays"] = format( info[0]["stats_number_of_plays"], ",d") return ("\x02%(title)s\x02 - length \x02%(duration)s\x02 - " "\x02%(stats_number_of_likes)s\x02 likes - " "\x02%(stats_number_of_plays)s\x02 plays - " "\x02%(user_name)s\x02 on \x02%(upload_date)s\x02" % info[0])