diff --git a/thrimshim/thrimshim/main.py b/thrimshim/thrimshim/main.py index 0e74d83..dc4da4e 100644 --- a/thrimshim/thrimshim/main.py +++ b/thrimshim/thrimshim/main.py @@ -236,28 +236,30 @@ def get_row(ident): if is_archive: response["allow_holes"] = True - # pick default thumbnail template based on start time. - # pick default frame time as the middle of the video. - # ignore both if video has no start time yet. - # or for archive events, no thumbnail. - DEFAULT_TEMPLATES = [ - "zeta-right", - "dawnguard-right", - "alphaflight-right", - "nightwatch-right", - ] if is_archive: response["thumbnail_mode"] = "NONE" elif response['event_start'] is not None: start = response['event_start'] - if response['thumbnail_template'] is None: - # RDPs default to the RDP template. Others use the current shift. - if response['category'] == "RDP": - response['thumbnail_template'] = "rdp" - else: - pst_hour = (start.hour - 8) % 24 - shift = int(pst_hour / 6) - response['thumbnail_template'] = DEFAULT_TEMPLATES[shift] + + # use tags to determine default thumbnail template + if response['thumbnail_template'] is None + conn = app.db_manager.get_conn() + query = """ + SELECT name, default_template + FROM playlists + """ + results = database.query(conn, query) + default_templates = {} + for row in results: + row = row._asdict: + if row['name'] and row['default_template']: + default_templates[row['name']] = row['default_template'] + + for tag in response['tags'][::-1]: + if tag in default_templates: + response['thumbnail_template'] = default_templates[tag] + + # pick default frame time as the middle of the video. if response['thumbnail_time'] is None: if response['event_end'] is not None: # take full duration, and add half to start to get halfway