From fee11aca422a1f9b9ecbc3c5574d6cee5c229ca2 Mon Sep 17 00:00:00 2001 From: Bertrand Cournaud Date: Wed, 23 Jul 2014 14:54:00 +0200 Subject: [PATCH] Add imdb search module. \!imdb for info about a movie, \!imdbs to search a movie --- modules/imdb.py | 76 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 modules/imdb.py diff --git a/modules/imdb.py b/modules/imdb.py new file mode 100644 index 0000000..68b46f0 --- /dev/null +++ b/modules/imdb.py @@ -0,0 +1,76 @@ +# coding=utf-8 + +import urllib.request +import json + +nemubotversion = 3.3 + +def help_tiny (): + return "Find info about a movie" + +def help_full (): + return "!imdb " + +def load(context): + from hooks import Hook + add_hook("cmd_hook", Hook(cmd_imdb, "imdb")) + add_hook("cmd_hook", Hook(cmd_search, "imdbs")) + + +def cmd_imdb(msg): + if (len(msg.cmds) < 2): + return Response(msg.sender, + "Demande incorrecte.\n %s" % help_full(), + msg.channel) + + movie_name = msg.cmds[1] + + for x in range(2, len(msg.cmds)): + movie_name += urllib.parse.quote(' ') + urllib.parse.quote(msg.cmds[x]) + + url = "http://www.omdbapi.com/?t=" + movie_name + print_debug(url) + response = urllib.request.urlopen(url) + + data = json.loads(response.read().decode()) + string = "\x02IMDB Rating\x0F: " + data['imdbRating'] + "\n\x02Plot\x0F: " + data['Plot'] + + res = Response(msg.sender, + string, + msg.channel) + res.append_message("\x02Released\x0F: " + data['Released'] + + " \x02Type\x0F: " + data['Type'] + + " \x02Genre\x0F: " + data['Genre'] + + " \x02Director\x0F: " + data['Director'] + + " \x02Writer\x0F: " + data['Writer'] + + " \x02Actors\x0F: " + data['Actors'] + + " \x02Country\x0F: " + data['Country']) + + return res + +def cmd_search(msg): + + movie_name = msg.cmds[1] + + for x in range(2, len(msg.cmds)): + movie_name += urllib.parse.quote(' ') + urllib.parse.quote(msg.cmds[x]) + + url = "http://www.omdbapi.com/?s=" + movie_name + print_debug(url) + + raw = urllib.request.urlopen(url) + data = json.loads(raw.read().decode()) + + search = data['Search'] + + movie_list = "" + + for i in range(0, len(search)): + movie_list += "\x02Title\x0F: " + search[i]['Title'] + movie_list += " \x02Year\x0F: " + search[i]['Year'] + movie_list += " \x02Type\x0F:" + search[i]['Type'] + movie_list += " |--| " + + res = Response(msg.sender, movie_list, msg.channel) + return res +