#!/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 `") 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_db_filename(): if u"XDG_CACHE_HOME" in os.environ.keys(): cachedir = os.environ["XDG_CACHE_HOME"] else: cachedir = os.path.join(os.path.expanduser(u"~"), ".cache") return os.path.join(cachedir, "imdbrating.dbm") def get_rating(imdb_id): info = tmdb.Find(id=imdb_id).info(external_source="imdb_id") if 'movie_results' in info and len(info['movie_results']) == 1 and 'vote_average' in info['movie_results'][0]: return info['movie_results'][0]['vote_average'] return 0 if __name__ == u"__main__": tmdb.API_KEY = read_key() db = dbm.open(get_db_filename(), 'rw') for filename in sys.argv[1:]: imdb_id = filename.split('#')[-1] if imdb_id not in db.keys(): db[imdb_id] = str(get_rating(imdb_id)) print db[imdb_id] db.close()