This commit is contained in:
jxxghp 2024-05-14 08:30:29 +08:00
parent fabb02a8a0
commit bd6d6b6882
10 changed files with 550 additions and 550 deletions

View File

@ -96,8 +96,8 @@ class SystemChain(ChainBase, metaclass=Singleton):
获取后端最新版本 获取后端最新版本
""" """
try: try:
with RequestUtils(proxies=settings.PROXY, headers=settings.GITHUB_HEADERS).get_res( version_res = RequestUtils(proxies=settings.PROXY, headers=settings.GITHUB_HEADERS).get_res(
"https://api.github.com/repos/jxxghp/MoviePilot/releases/latest") as version_res: "https://api.github.com/repos/jxxghp/MoviePilot/releases/latest")
if version_res: if version_res:
ver_json = version_res.json() ver_json = version_res.json()
version = f"{ver_json['tag_name']}" version = f"{ver_json['tag_name']}"
@ -114,8 +114,8 @@ class SystemChain(ChainBase, metaclass=Singleton):
获取前端最新版本 获取前端最新版本
""" """
try: try:
with RequestUtils(proxies=settings.PROXY, headers=settings.GITHUB_HEADERS).get_res( version_res = RequestUtils(proxies=settings.PROXY, headers=settings.GITHUB_HEADERS).get_res(
"https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases/latest") as version_res: "https://api.github.com/repos/jxxghp/MoviePilot-Frontend/releases/latest")
if version_res: if version_res:
ver_json = version_res.json() ver_json = version_res.json()
version = f"{ver_json['tag_name']}" version = f"{ver_json['tag_name']}"

View File

@ -23,7 +23,7 @@ class BangumiModule(_ModuleBase):
""" """
测试模块连接性 测试模块连接性
""" """
with RequestUtils().get_res("https://api.bgm.tv/") as ret: ret = RequestUtils().get_res("https://api.bgm.tv/")
if ret and ret.status_code == 200: if ret and ret.status_code == 200:
return True, "" return True, ""
elif ret: elif ret:

View File

@ -38,7 +38,7 @@ class DoubanModule(_ModuleBase):
""" """
测试模块连接性 测试模块连接性
""" """
with RequestUtils().get_res("https://movie.douban.com/") as ret: ret = RequestUtils().get_res("https://movie.douban.com/")
if ret and ret.status_code == 200: if ret and ret.status_code == 200:
return True, "" return True, ""
elif ret: elif ret:

View File

@ -195,10 +195,10 @@ class DoubanApi(metaclass=Singleton):
'_ts': ts, '_ts': ts,
'_sig': self.__sign(url=req_url, ts=ts) '_sig': self.__sign(url=req_url, ts=ts)
}) })
with RequestUtils( resp = RequestUtils(
ua=choice(self._user_agents), ua=choice(self._user_agents),
session=self._session session=self._session
).get_res(url=req_url, params=params) as resp: ).get_res(url=req_url, params=params)
if resp is not None and resp.status_code == 400 and "rate_limit" in resp.text: if resp is not None and resp.status_code == 400 and "rate_limit" in resp.text:
return resp.json() return resp.json()
return resp.json() if resp else {} return resp.json() if resp else {}

View File

@ -193,7 +193,7 @@ class DoubanScraper:
url = url.replace("/format/webp", "/format/jpg") url = url.replace("/format/webp", "/format/jpg")
file_path.with_suffix(".jpg") file_path.with_suffix(".jpg")
logger.info(f"正在下载{file_path.stem}图片:{url} ...") logger.info(f"正在下载{file_path.stem}图片:{url} ...")
with RequestUtils().get_res(url=url) as r: r = RequestUtils().get_res(url=url)
if r: if r:
if self._transfer_type in ['rclone_move', 'rclone_copy']: if self._transfer_type in ['rclone_move', 'rclone_copy']:
self.__save_remove_file(file_path, r.content) self.__save_remove_file(file_path, r.content)

View File

@ -56,7 +56,7 @@ class Emby:
return [] return []
req_url = "%semby/Library/SelectableMediaFolders?api_key=%s" % (self._host, self._apikey) req_url = "%semby/Library/SelectableMediaFolders?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json() return res.json()
else: else:
@ -74,7 +74,7 @@ class Emby:
return [] return []
req_url = "%semby/Library/VirtualFolders/Query?api_key=%s" % (self._host, self._apikey) req_url = "%semby/Library/VirtualFolders/Query?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
library_items = res.json().get("Items") library_items = res.json().get("Items")
librarys = [] librarys = []
@ -113,7 +113,7 @@ class Emby:
user = self.user user = self.user
req_url = f"{self._host}emby/Users/{user}/Views?api_key={self._apikey}" req_url = f"{self._host}emby/Users/{user}/Views?api_key={self._apikey}"
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json().get("Items") return res.json().get("Items")
else: else:
@ -164,7 +164,7 @@ class Emby:
return None return None
req_url = "%sUsers?api_key=%s" % (self._host, self._apikey) req_url = "%sUsers?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
users = res.json() users = res.json()
# 先查询是否有与当前用户名称匹配的 # 先查询是否有与当前用户名称匹配的
@ -227,7 +227,7 @@ class Emby:
return None return None
req_url = "%sSystem/Info?api_key=%s" % (self._host, self._apikey) req_url = "%sSystem/Info?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json().get("Id") return res.json().get("Id")
else: else:
@ -245,7 +245,7 @@ class Emby:
return 0 return 0
req_url = "%semby/Users/Query?api_key=%s" % (self._host, self._apikey) req_url = "%semby/Users/Query?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json().get("TotalRecordCount") return res.json().get("TotalRecordCount")
else: else:
@ -264,7 +264,7 @@ class Emby:
return schemas.Statistic() return schemas.Statistic()
req_url = "%semby/Items/Counts?api_key=%s" % (self._host, self._apikey) req_url = "%semby/Items/Counts?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json() result = res.json()
return schemas.Statistic( return schemas.Statistic(
@ -299,7 +299,7 @@ class Emby:
"&api_key=%s") % ( "&api_key=%s") % (
self._host, name, self._apikey) self._host, name, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
res_items = res.json().get("Items") res_items = res.json().get("Items")
if res_items: if res_items:
@ -329,7 +329,7 @@ class Emby:
"&Recursive=true&SearchTerm=%s&Limit=10&IncludeSearchTypes=false&api_key=%s" % ( "&Recursive=true&SearchTerm=%s&Limit=10&IncludeSearchTypes=false&api_key=%s" % (
self._host, title, self._apikey) self._host, title, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
res_items = res.json().get("Items") res_items = res.json().get("Items")
if res_items: if res_items:
@ -401,7 +401,7 @@ class Emby:
try: try:
req_url = "%semby/Shows/%s/Episodes?Season=%s&IsMissing=false&api_key=%s" % ( req_url = "%semby/Shows/%s/Episodes?Season=%s&IsMissing=false&api_key=%s" % (
self._host, item_id, season, self._apikey) self._host, item_id, season, self._apikey)
with RequestUtils().get_res(req_url) as res_json: res_json = RequestUtils().get_res(req_url)
if res_json: if res_json:
tv_item = res_json.json() tv_item = res_json.json()
res_items = tv_item.get("Items") res_items = tv_item.get("Items")
@ -463,7 +463,7 @@ class Emby:
req_url = "%sItems/%s/Images/%s" % (self._playhost, item_id, image_type) req_url = "%sItems/%s/Images/%s" % (self._playhost, item_id, image_type)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res and res.status_code != 404: if res and res.status_code != 404:
logger.info(f"影片图片链接:{res.url}") logger.info(f"影片图片链接:{res.url}")
return res.url return res.url
@ -482,7 +482,7 @@ class Emby:
return False return False
req_url = "%semby/Items/%s/Refresh?Recursive=true&api_key=%s" % (self._host, item_id, self._apikey) req_url = "%semby/Items/%s/Refresh?Recursive=true&api_key=%s" % (self._host, item_id, self._apikey)
try: try:
with RequestUtils().post_res(req_url) as res: res = RequestUtils().post_res(req_url)
if res: if res:
return True return True
else: else:
@ -500,7 +500,7 @@ class Emby:
return False return False
req_url = "%semby/Library/Refresh?api_key=%s" % (self._host, self._apikey) req_url = "%semby/Library/Refresh?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().post_res(req_url) as res: res = RequestUtils().post_res(req_url)
if res: if res:
return True return True
else: else:
@ -579,7 +579,7 @@ class Emby:
return None return None
req_url = "%semby/Users/%s/Items/%s?api_key=%s" % (self._host, self.user, itemid, self._apikey) req_url = "%semby/Users/%s/Items/%s?api_key=%s" % (self._host, self.user, itemid, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res and res.status_code == 200: if res and res.status_code == 200:
item = res.json() item = res.json()
tmdbid = item.get("ProviderIds", {}).get("Tmdb") tmdbid = item.get("ProviderIds", {}).get("Tmdb")
@ -610,7 +610,7 @@ class Emby:
yield None yield None
req_url = "%semby/Users/%s/Items?ParentId=%s&api_key=%s" % (self._host, self.user, parent, self._apikey) req_url = "%semby/Users/%s/Items?ParentId=%s&api_key=%s" % (self._host, self.user, parent, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res and res.status_code == 200: if res and res.status_code == 200:
results = res.json().get("Items") or [] results = res.json().get("Items") or []
for result in results: for result in results:
@ -1032,7 +1032,7 @@ class Emby:
req_url = (f"{self._host}Users/{user}/Items/Resume?" req_url = (f"{self._host}Users/{user}/Items/Resume?"
f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json().get("Items") or [] result = res.json().get("Items") or []
ret_resume = [] ret_resume = []
@ -1095,7 +1095,7 @@ class Emby:
req_url = (f"{self._host}Users/{user}/Items/Latest?" req_url = (f"{self._host}Users/{user}/Items/Latest?"
f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json() or [] result = res.json() or []
ret_latest = [] ret_latest = []

View File

@ -321,7 +321,7 @@ class FanartModule(_ModuleBase):
""" """
测试模块连接性 测试模块连接性
""" """
with RequestUtils().get_res("https://webservice.fanart.tv") as ret: ret = RequestUtils().get_res("https://webservice.fanart.tv")
if ret and ret.status_code == 200: if ret and ret.status_code == 200:
return True, "" return True, ""
elif ret: elif ret:

View File

@ -52,7 +52,7 @@ class Jellyfin:
return [] return []
req_url = "%sLibrary/SelectableMediaFolders?api_key=%s" % (self._host, self._apikey) req_url = "%sLibrary/SelectableMediaFolders?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json() return res.json()
else: else:
@ -70,7 +70,7 @@ class Jellyfin:
return [] return []
req_url = "%sLibrary/VirtualFolders?api_key=%s" % (self._host, self._apikey) req_url = "%sLibrary/VirtualFolders?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
library_items = res.json() library_items = res.json()
librarys = [] librarys = []
@ -109,7 +109,7 @@ class Jellyfin:
user = self.user user = self.user
req_url = f"{self._host}Users/{user}/Views?api_key={self._apikey}" req_url = f"{self._host}Users/{user}/Views?api_key={self._apikey}"
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json().get("Items") return res.json().get("Items")
else: else:
@ -163,7 +163,7 @@ class Jellyfin:
return 0 return 0
req_url = "%sUsers?api_key=%s" % (self._host, self._apikey) req_url = "%sUsers?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return len(res.json()) return len(res.json())
else: else:
@ -181,7 +181,7 @@ class Jellyfin:
return None return None
req_url = "%sUsers?api_key=%s" % (self._host, self._apikey) req_url = "%sUsers?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
users = res.json() users = res.json()
# 先查询是否有与当前用户名称匹配的 # 先查询是否有与当前用户名称匹配的
@ -244,7 +244,7 @@ class Jellyfin:
return None return None
req_url = "%sSystem/Info?api_key=%s" % (self._host, self._apikey) req_url = "%sSystem/Info?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json().get("Id") return res.json().get("Id")
else: else:
@ -262,7 +262,7 @@ class Jellyfin:
return schemas.Statistic() return schemas.Statistic()
req_url = "%sItems/Counts?api_key=%s" % (self._host, self._apikey) req_url = "%sItems/Counts?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json() result = res.json()
return schemas.Statistic( return schemas.Statistic(
@ -287,7 +287,7 @@ class Jellyfin:
"api_key=%s&searchTerm=%s&IncludeItemTypes=Series&Limit=10&Recursive=true") % ( "api_key=%s&searchTerm=%s&IncludeItemTypes=Series&Limit=10&Recursive=true") % (
self._host, self.user, self._apikey, name) self._host, self.user, self._apikey, name)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
res_items = res.json().get("Items") res_items = res.json().get("Items")
if res_items: if res_items:
@ -317,7 +317,7 @@ class Jellyfin:
"api_key=%s&searchTerm=%s&IncludeItemTypes=Movie&Limit=10&Recursive=true") % ( "api_key=%s&searchTerm=%s&IncludeItemTypes=Movie&Limit=10&Recursive=true") % (
self._host, self.user, self._apikey, title) self._host, self.user, self._apikey, title)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
res_items = res.json().get("Items") res_items = res.json().get("Items")
if res_items: if res_items:
@ -387,7 +387,7 @@ class Jellyfin:
try: try:
req_url = "%sShows/%s/Episodes?season=%s&&userId=%s&isMissing=false&api_key=%s" % ( req_url = "%sShows/%s/Episodes?season=%s&&userId=%s&isMissing=false&api_key=%s" % (
self._host, item_id, season, self.user, self._apikey) self._host, item_id, season, self.user, self._apikey)
with RequestUtils().get_res(req_url) as res_json: res_json = RequestUtils().get_res(req_url)
if res_json: if res_json:
tv_info = res_json.json() tv_info = res_json.json()
res_items = tv_info.get("Items") res_items = tv_info.get("Items")
@ -458,7 +458,7 @@ class Jellyfin:
_host = self._playhost _host = self._playhost
req_url = "%sItems/%s/Images/%s" % (_host, item_id, image_type) req_url = "%sItems/%s/Images/%s" % (_host, item_id, image_type)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res and res.status_code != 404: if res and res.status_code != 404:
logger.info(f"影片图片链接:{res.url}") logger.info(f"影片图片链接:{res.url}")
return res.url return res.url
@ -479,7 +479,7 @@ class Jellyfin:
""" """
req_url = "%sItems/%s/Ancestors?api_key=%s" % (self._host, item_id, self._apikey) req_url = "%sItems/%s/Ancestors?api_key=%s" % (self._host, item_id, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
return res.json()[index].get(key) return res.json()[index].get(key)
else: else:
@ -497,7 +497,7 @@ class Jellyfin:
return False return False
req_url = "%sLibrary/Refresh?api_key=%s" % (self._host, self._apikey) req_url = "%sLibrary/Refresh?api_key=%s" % (self._host, self._apikey)
try: try:
with RequestUtils().post_res(req_url) as res: res = RequestUtils().post_res(req_url)
if res: if res:
return True return True
else: else:
@ -632,7 +632,7 @@ class Jellyfin:
req_url = "%sUsers/%s/Items/%s?api_key=%s" % ( req_url = "%sUsers/%s/Items/%s?api_key=%s" % (
self._host, self.user, itemid, self._apikey) self._host, self.user, itemid, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res and res.status_code == 200: if res and res.status_code == 200:
item = res.json() item = res.json()
tmdbid = item.get("ProviderIds", {}).get("Tmdb") tmdbid = item.get("ProviderIds", {}).get("Tmdb")
@ -663,7 +663,7 @@ class Jellyfin:
yield None yield None
req_url = "%sUsers/%s/Items?parentId=%s&api_key=%s" % (self._host, self.user, parent, self._apikey) req_url = "%sUsers/%s/Items?parentId=%s&api_key=%s" % (self._host, self.user, parent, self._apikey)
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res and res.status_code == 200: if res and res.status_code == 200:
results = res.json().get("Items") or [] results = res.json().get("Items") or []
for result in results: for result in results:
@ -761,7 +761,7 @@ class Jellyfin:
req_url = (f"{self._host}Users/{user}/Items/Resume?" req_url = (f"{self._host}Users/{user}/Items/Resume?"
f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json().get("Items") or [] result = res.json().get("Items") or []
ret_resume = [] ret_resume = []
@ -784,7 +784,7 @@ class Jellyfin:
else: else:
image = self.__get_local_image_by_id(item.get("Id")) image = self.__get_local_image_by_id(item.get("Id"))
# 小部分剧集无[xxx-S01E01-thumb.jpg]图片 # 小部分剧集无[xxx-S01E01-thumb.jpg]图片
with RequestUtils().get_res(image) as image_res: image_res = RequestUtils().get_res(image)
if not image_res or image_res.status_code == 404: if not image_res or image_res.status_code == 404:
image = self.generate_image_link(item.get("Id"), "Backdrop", False) image = self.generate_image_link(item.get("Id"), "Backdrop", False)
if item_type == MediaType.MOVIE.value: if item_type == MediaType.MOVIE.value:
@ -822,7 +822,7 @@ class Jellyfin:
req_url = (f"{self._host}Users/{user}/Items/Latest?" req_url = (f"{self._host}Users/{user}/Items/Latest?"
f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
with RequestUtils().get_res(req_url) as res: res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json() or [] result = res.json() or []
ret_latest = [] ret_latest = []

View File

@ -71,7 +71,7 @@ class WeChat:
return None return None
try: try:
token_url = self._token_url % (self._corpid, self._appsecret) token_url = self._token_url % (self._corpid, self._appsecret)
with RequestUtils().get_res(token_url) as res: res = RequestUtils().get_res(token_url)
if res: if res:
ret_json = res.json() ret_json = res.json()
if ret_json.get('errcode') == 0: if ret_json.get('errcode') == 0:

View File

@ -40,7 +40,7 @@ class WebUtils:
} }
""" """
try: try:
with RequestUtils().get_res(f"https://api.mir6.com/api/ip?ip={ip}&type=json") as r: r = RequestUtils().get_res(f"https://api.mir6.com/api/ip?ip={ip}&type=json")
if r: if r:
return r.json().get("data", {}).get("location") or '' return r.json().get("data", {}).get("location") or ''
except Exception as err: except Exception as err:
@ -65,7 +65,7 @@ class WebUtils:
} }
""" """
try: try:
with RequestUtils().get_res(f"https://whois.pconline.com.cn/ipJson.jsp?json=true&ip={ip}") as r: r = RequestUtils().get_res(f"https://whois.pconline.com.cn/ipJson.jsp?json=true&ip={ip}")
if r: if r:
return r.json().get("addr") or '' return r.json().get("addr") or ''
except Exception as err: except Exception as err: