From fcde06e8b653e676b07651e6277728cbae6bd141 Mon Sep 17 00:00:00 2001 From: Lucas Vivo Date: Sat, 24 Oct 2026 10:50:31 +0200 Subject: [PATCH] add tmdb/tvdb get to serverlibrary --- serverlibrary/__init__.py | 2 ++ serverlibrary/core.py | 56 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/serverlibrary/__init__.py b/serverlibrary/__init__.py index 25d2a92..ca3807f 100755 --- a/serverlibrary/__init__.py +++ b/serverlibrary/__init__.py @@ -7,3 +7,5 @@ from .core import word_similarity from .core import score_match_jaccard from .core import score_match_fuzzy from .core import combined_score +from .core import tmdb_get +from .core import tvdb_get diff --git a/serverlibrary/core.py b/serverlibrary/core.py index d16e599..98d8d5a 100755 --- a/serverlibrary/core.py +++ b/serverlibrary/core.py @@ -4,7 +4,7 @@ import shutil import subprocess import json import re -from typing import Any +import requests from difflib import SequenceMatcher @@ -241,4 +241,56 @@ def score_match_fuzzy(search_words, candidate_words): def combined_score(score_fuzzy: float, score_jaccard: float, weight_fuzzy: float, weight_jaccard: float) -> float: - return score_fuzzy * weight_fuzzy + score_jaccard * weight_jaccard \ No newline at end of file + return score_fuzzy * weight_fuzzy + score_jaccard * weight_jaccard + + +TMDB_TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJhdWQiOiJlOTIwMzJlMDk1NmEzMWEyZjQ4MDA4NGI0MTg4OTIyZCIsIm5iZiI6MTc5MDQzMjc5NS42NjcsInN1YiI6IjZhYjdkNjFiZDY5NmI1ZGFjNGM5NDRkMyIsInNjb3BlcyI6WyJhcGlfcmVhZCJdLCJ2ZXJzaW9uIjoxfQ.IjddKtQ5X62A63kYslH24Pxg_TFCzu-QpGak_Pemgr8" +TVDB_TOKEN = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZ2UiOiIiLCJhcGlrZXkiOiI3NDBmYTBlOS1jODVmLTRmZGEtOWI1NS0wNzI0Y2E5NGRmN2QiLCJjb21tdW5pdHlfc3VwcG9ydGVkIjpmYWxzZSwiZXhwIjoxNzk1NDA5NDY4LCJnZW5kZXIiOiIiLCJoaXRzX3Blcl9kYXkiOjEwMDAwMDAwMCwiaGl0c19wZXJfbW9udGgiOjEwMDAwMDAwMCwiaWQiOiIzMTA0ODU5IiwiaXNfbW9kIjpmYWxzZSwiaXNfc3lzdGVtX2tleSI6ZmFsc2UsImlzX3RydXN0ZWQiOmZhbHNlLCJwaW4iOm51bGwsInJvbGVzIjpbXSwidGVuYW50IjoidHZkYiIsInV1aWQiOiIifQ.b8hNBL9KKrvmQatgAv_APgoriIocuZsZsKOLkk3tKzI08-xsqa0IILJy6bo6LYalIOU2swbFbGmrwEPeSEhsQfCZbUdPFwe6zi-7lfiynK66Uk6XdrL1wNsjzXz-Au55R8hMUIwwx2oAcQAVtIj7R8y70lh0N8BIaJ4BF0Mi0LL26-lLz-UjPQ1tWuqG8uvvLUodd2dvdvAkjcBaYXC5VFu5vEVkJOeX-OIAU0JTN3eY4XsLklTEXOd9SDhVBWV1fifWSMeWn3-o51_aQ75RkNMJa4f2VxCT9zoxXTja-ko9ewSvh14JBSzOWS7RJZV_l6r3l9xCiyXx_i996lH2xQp-Ouua3VlKuwbyetepkiy4yaAigANclpI-ByGiOsdd4XirWnwZPE6v6cIrEhlPRtUiCYTJJrkXKvv1TtBHUNGx1Zzu7ZVORIZ3SXy48VdHCugsFyrmP_y-MGkwE_U211mgVQT-cIiSPEYkchwTL66xLZ8DI9-lwzbHCOxJKOJ2ipUk9QkpEaYmhRPZ1RS6ZhKF1tVhD5-SVNKdRSBbfn6iN7ZLVghSOaM7DFzDGJSDTuF-DQDphQ1pkT_VWQlFjD2Ch8dFHDSJ7BRleLptbkCTmV8mG-UVixGCqVnPhl2YjmY9Vh3QzTqQ-WXRytdqQnvQr3c3HqoZmhdMYtzTCbE" + +HEADERS_TMDB = { + "Authorization": f"Bearer {TMDB_TOKEN}", + "accept": "application/json", +} + + +HEADERS_TVDB = { + "Authorization": f"Bearer {TVDB_TOKEN}", + "accept": "application/json", +} + + +def tmdb_get(endpoint, params=None): + """Perform a GET request against TMDb.""" + + BASE_URL = "https://api.themoviedb.org/3" + + url = BASE_URL + endpoint + print(f"Set of Tmdb query: {url}") + + response = requests.get( + url, + headers=HEADERS_TMDB, + params=params, + timeout=15, + ) + + response.raise_for_status() + + return response.json() + +def tvdb_get(endpoint, params=None): + """Perform a GET request against TVDB.""" + BASE_URL = "https://api4.thetvdb.com/v4" + url = BASE_URL + endpoint + print(f"Set of TVDB query: {url}") + + response = requests.get( + url, + headers=HEADERS_TVDB, + params=params, + timeout=15, + ) + + response.raise_for_status() + + return response.json() \ No newline at end of file