From eccd059accbd307b5e36a95eae3c53694f13f6d3 Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Sun, 15 Feb 2015 12:18:23 +0100 Subject: guessit for tags in index --- imdb-lookup/html/index-files/css/style.css | 6 ++++-- imdb-lookup/html/index.html | 8 +++++--- imdb-lookup/imdbinfo.py | 33 +++++++++++++++--------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/imdb-lookup/html/index-files/css/style.css b/imdb-lookup/html/index-files/css/style.css index aa3d234..6f95335 100644 --- a/imdb-lookup/html/index-files/css/style.css +++ b/imdb-lookup/html/index-files/css/style.css @@ -82,8 +82,10 @@ font-weight: bold; } .movie-tag { font-family: monospace; - padding: 3px; + font-size: 9pt; + padding-left: 3px; + padding-right: 3px; background-color: #f0f0f0; - border: 1px solid #e0e0e0; + border: 1px solid #a0a0a0; border-radius: 4px; } diff --git a/imdb-lookup/html/index.html b/imdb-lookup/html/index.html index deff8b2..dd3eafe 100644 --- a/imdb-lookup/html/index.html +++ b/imdb-lookup/html/index.html @@ -69,9 +69,11 @@ {{movie.title}} - {{#each tag in movie.tags}} - {{tag}} - {{/each}} + +
+ {{#each tag in movie.tags}} + {{tag}} + {{/each}}
{{movie.summary}}
{{movie.plot}}
diff --git a/imdb-lookup/imdbinfo.py b/imdb-lookup/imdbinfo.py index ca0d7b1..84845ce 100755 --- a/imdb-lookup/imdbinfo.py +++ b/imdb-lookup/imdbinfo.py @@ -16,7 +16,6 @@ import hashlib from io import BytesIO from pprint import pprint from multiprocessing.dummy import Pool -from threading import Lock from urllib.parse import quote as urlencode from PIL import Image, ImageFilter import tmdbsimple as tmdb @@ -175,6 +174,7 @@ class TMDBCache(object): data = json.loads(r.text) r.close() assert data is not None and data['data'], "Data must not be empty" + assert 'rating' in data['data'] return data['data'] return self._cache_json(movie_id, "imdb_maindetails.json", do_request) @@ -238,7 +238,7 @@ class Protector(object): except KeyboardInterrupt as e: raise e except Exception as e: - logging.error("Error calling %s: %s: %s", name, type(e), e) + logging.error("Error calling %s: '%s': '%s' with args '(%s,%s)'", name, type(e), e, a ,kw) return None if callable(attr): return protected @@ -321,19 +321,14 @@ def do_index(args, imdb_ids): def find(): for root, dirs, files in os.walk(path): for curfile in files: - if curfile.endswith("mkv"): - yield "MKV" - if curfile.endswith("avi"): - yield "AVI" - for curdir in dirs: - tags = { "german" : "German", - "1080" : "1080p", "720" : "720p", - "bdrip" : "BlueRay", "blueray" : "BlueRay", - "hevc" : "HEVC" } - for (key, tag) in tags.items(): - if key in curdir.lower(): - yield tag - + if curfile.lower()[-3:] in ["mkv","avi","mp4"]: + info = guessit.guess_movie_info(os.path.join(root,curfile)).to_dict() + for key,val in info.items(): + if key in ["format","videoCodec","releaseGroup","container","container"]: + if not isinstance(val, list): + val = [val] + for lval in val: + yield "{}:{}".format(key,lval) l = list(set(find())) l.sort() return l @@ -366,7 +361,8 @@ def do_index(args, imdb_ids): print("Error in {} {}".format(path, imdb_id)) return None else: - return { + try: + return { 'id': imdb_id, 'title': tmdb['title'], 'summary': compile_summary(imdb, omdb, tmdb), @@ -383,7 +379,10 @@ def do_index(args, imdb_ids): 'omdbTomatoMeter': (omdb['tomatoMeter'] != 'N/A') and float(omdb['tomatoMeter']) or None, 'omdbTomatoRating': (omdb['tomatoRating'] != 'N/A') and float(omdb['tomatoRating']) or None, 'tmdbId': tmdb['id'], - } + } + except Exception as e: + print("Error in {} {}: {}".format(path, imdb_id, str(e))) + return None datadir = os.path.join(os.path.dirname(__file__), "html") index_files = os.path.join(datadir, "index-files") -- cgit v1.2.1