summaryrefslogtreecommitdiff
path: root/imdb-lookup/imdbrating.py
blob: 995324cb66a2cc52b9e0d824f75eafdbb1e6dbcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python2
# coding: utf-8
# python3 works as well
import os
import sys
import shutil
import dbm

try:
    import tmdbsimple as tmdb
except ImportError as e:
    print(u"Missing dependency: {0}".format(str(e)))
    print(u"Install using system package manager or `pip install --user <module>`")
    sys.exit(1)

def read_key():
    if u"TMDB_KEY" in os.environ.keys():
        return os.environ[u"TMDB_KEY"]
    if u"XDG_CONFIG_HOME" in os.environ.keys():
        cfg_home = os.environ[u"XDG_CONFIG_HOME"]
    else:
        cfg_home = os.path.join(os.path.expanduser(u"~"), ".config")
    if os.path.exists(os.path.join(cfg_home, u"tmdbkey")):
        return open(os.path.join(cfg_home, u"tmdbkey"), "r").read().strip()
    if os.path.exists(os.path.join(os.path.expanduser(u"~"), ".tmdbkey")):
        return open(os.path.join(os.path.expanduser(u"~"), ".tmdbkey")).read().strip()
    raise Exception(u"No TheMovieDB Key defined. Set Env. var. TMDB_KEY or .tmdbkey file")


def get_rating(imdb_id):
    return tmdb.Find(id=imdb_id).info(external_source="imdb_id")['movie_results'][0]['vote_average']

if __name__ == u"__main__":
    tmdb.API_KEY = read_key()
    imdb_id = sys.argv[1]

    db = dbm.open('cache', 'rw')
    if imdb_id not in db.keys():
        db[imdb_id] = str(get_rating(imdb_id))
    print db[imdb_id]
    db.close()