diff options
| author | 2016-03-29 12:56:58 +0100 | |
|---|---|---|
| committer | 2016-03-29 12:56:58 +0100 | |
| commit | f943d63098a50746f4e470e403a991a4d9713030 (patch) | |
| tree | deeb98058917d0155227211d72576f0cbab28d3f /modules/trakt.py | |
| parent | Initial commit (diff) | |
first commit.
Diffstat (limited to 'modules/trakt.py')
| -rw-r--r-- | modules/trakt.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/modules/trakt.py b/modules/trakt.py new file mode 100644 index 00000000..8e23cfca --- /dev/null +++ b/modules/trakt.py @@ -0,0 +1,58 @@ +import Utils + +URL_TRAKT = "https://api-v2launch.trakt.tv/users/%s/watching" +URL_TRAKTSLUG = "https://trakt.tv/%s/%s" + +class Module(object): + def __init__(self, bot): + self.bot = bot + bot.events.on("boot").on("done").hook(self.boot_done) + bot.events.on("received").on("command").on("nowwatching", + "nw").hook(self.now_watching) + + def boot_done(self, event): + self.bot.events.on("postboot").on("configure").on("set" + ).call(setting="trakt", help="Set username on trakt.tv") + + def now_watching(self, event): + if event["args"]: + username = event["args_split"][0] + else: + username = event["user"].get_setting("trakt", + event["user"].nickname) + page = Utils.get_url(URL_TRAKT % username, headers={ + "Content-Type": "application/json", + "trakt-api-version": "2", "trakt-api-key": + self.bot.config["trakt-api-key"]}, json=True, + code=True) + if page: + code, page = page + if code == 204: + event["stderr"].write( + "%s is not watching anything" % username) + else: + type = page["type"] + if type == "movie": + title = page["movie"]["title"] + year = page["movie"]["year"] + slug = page["movie"]["ids"]["slug"] + event["stdout"].write( + "%s is now watching %s (%s) %s" % ( + username, title, year, + URL_TRAKTSLUG % ("movie", slug))) + elif type == "episode": + season = page["episode"]["season"] + episode_number = page["episode"]["number"] + episode_title = page["episode"]["title"] + show_title = page["show"]["title"] + show_year = page["show"]["year"] + slug = page["show"]["ids"]["slug"] + event["stdout"].write( + "%s is now watching %s s%se%s - %s %s" % ( + username, show_title, str(season).zfill(2), + str(episode_number).zfill(2), episode_title, + URL_TRAKTSLUG % ("shows", slug))) + else: + print("ack! unknown trakt media type!") + else: + event["stderr"].write("Failed to load results") |
