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