[126] use Cached Session

pull/1120/head
meisnate12 2 years ago
parent 698a0d647e
commit 04e5f49903

@ -1 +1 @@
1.17.3-develop125
1.17.3-develop126

@ -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:

@ -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

Loading…
Cancel
Save