diff --git a/VERSION b/VERSION index 6ae87cb4..f9508e69 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.17.3-develop125 +1.17.3-develop126 diff --git a/modules/config.py b/modules/config.py index a0020ca9..381aa9c1 100644 --- a/modules/config.py +++ b/modules/config.py @@ -1,5 +1,5 @@ -import base64, os, requests -from datetime import datetime +import base64, os +from datetime import datetime, timedelta from lxml import html from modules import util, radarr, sonarr, operations from modules.anidb import AniDB @@ -28,6 +28,7 @@ from modules.trakt import Trakt from modules.tvdb import TVDb from modules.util import Failed, NotScheduled, NotScheduledRange, YAML from modules.webhooks import Webhooks +from requests_cache import CachedSession from retrying import retry logger = util.logger @@ -83,7 +84,36 @@ mass_rating_options = { "mal": "Use MyAnimeList Rating" } reset_overlay_options = {"tmdb": "Reset to TMDb poster", "plex": "Reset to Plex Poster"} - +urls_expire_after = { + "*.imdb.com": 60 * 60 * 6, + "www.omdbapi.com/": 60 * 60 * 24, + "ergast.com/api/f1/": 60 * 60 * 24, + "anidb.net": 60 * 60 * 24, + "api.anidb.net:9001/httpapi": 60 * 60 * 24, + "graphql.anilist.co": 60 * 60 * 24, + "raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Anime-IDs/master/pmm_anime_ids.json": 60 * 60 * 24, + "flixpatrol.com": 60 * 60 * 24, + "www.themoviedb.org": 60 * 60 * 24, + "raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Configs": 60 * 60 * 24, + "www.icheckmovies.com/lists/": 60 * 60 * 24, + "letterboxd.com": 60 * 60 * 24, + "api.myanimelist.net/v2/": 60 * 60 * 24, + "api.jikan.moe/v4/": 60 * 60 * 24, + "api.trakt.tv": 60 * 60 * 24, + "www.thetvdb.com": 60 * 60 * 6, + "thetvdb.com": 60 * 60 * 6, + "s3.amazonaws.com/popular-movies/movies.json": 60 * 60 * 24, + "mdblist.com/lists": 60 * 60 * 12, + "mdblist.com/api": 60 * 60 * 1, + "api.github.com/repos/meisnate12/Plex-Meta-Manager": 60 * 60 * 1, + "raw.githubusercontent.com/meisnate12/": 60 * 60 * 1, + "notifiarr.com/api/v1": 0, + "dev.notifiarr.com/api/v1": 0, + "discord.com": 0, + "hooks.slack.com": 0, + "raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/**/VERSION": 0, + "*": 60 * 60 * 24, +} class ConfigFile: def __init__(self, default_dir, attrs): logger.info("Locating config...") @@ -361,7 +391,8 @@ class ConfigFile: self.check_nightly = self.general["check_nightly"] self.latest_version = util.current_version(self.version, nightly=self.check_nightly) - self.session = requests.Session() + self.session = CachedSession("config/http_cache", expire_after=timedelta(days=1), allowable_methods=["GET"], + allowable_codes=[200], match_headers=True, urls_expire_after=urls_expire_after) if not self.general["verify_ssl"]: self.session.verify = False if self.session.verify is False: diff --git a/plex_meta_manager.py b/plex_meta_manager.py index 6f49ce54..36c3f3b0 100644 --- a/plex_meta_manager.py +++ b/plex_meta_manager.py @@ -1,49 +1,8 @@ import argparse, os, sys, time, uuid from concurrent.futures import ProcessPoolExecutor -from datetime import datetime, timedelta +from datetime import datetime from modules.logs import MyLogger -urls_expire_after = { - '*.imdb.com': 60 * 60 * 6, - 'www.omdbapi.com/': 60 * 60 * 24, - 'ergast.com/api/f1/': 60 * 60 * 24, - 'anidb.net': 60 * 60 * 24, - 'api.anidb.net:9001/httpapi': 60 * 60 * 24, - 'graphql.anilist.co': 60 * 60 * 24, - 'raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Anime-IDs/master/pmm_anime_ids.json': 60 * 60 * 24, - 'flixpatrol.com': 60 * 60 * 24, - 'www.themoviedb.org': 60 * 60 * 24, - 'api.github.com/repos/meisnate12/Plex-Meta-Manager': 60 * 60 * 24, - 'raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Configs': 60 * 60 * 24, - 'www.icheckmovies.com/lists/': 60 * 60 * 24, - 'letterboxd.com': 60 * 60 * 24, - 'api.myanimelist.net/v2/': 60 * 60 * 24, - 'api.jikan.moe/v4/': 60 * 60 * 24, - 'api.trakt.tv': 60 * 60 * 24, - 'www.thetvdb.com': 60 * 60 * 6, - 'thetvdb.com': 60 * 60 * 6, - 's3.amazonaws.com/popular-movies/movies.json': 60 * 60 * 24, - 'mdblist.com/lists': 60 * 60 * 12, - 'mdblist.com/api': 60 * 60 * 1, - 'api.github.com/repos/meisnate12/Plex-Meta-Manager': 60 * 60 * 1, - 'raw.githubusercontent.com/meisnate12/': 60 * 60 * 1, - 'notifiarr.com/api/v1': 0, - 'dev.notifiarr.com/api/v1': 0, - 'discord.com': 0, - 'hooks.slack.com': 0, - 'raw.githubusercontent.com/meisnate12/Plex-Meta-Manager/**/VERSION': 0, - '*': 60 * 60 * 24, -} - -from requests_cache import install_cache -install_cache( - 'config/http_cache', - expire_after=timedelta(days=1), # Otherwise expire responses after one day - allowable_methods=['GET', 'POST'], # Cache POST requests to avoid sending the same data twice - allowable_codes=[200], - match_headers=True, - urls_expire_after=urls_expire_after, -) try: import plexapi, requests, schedule from PIL import ImageFile