Merge pull request #1328 from thsrite/main

This commit is contained in:
jxxghp 2024-01-10 12:25:19 +08:00 committed by GitHub
commit 8236d6c8d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 4 deletions

View File

@ -971,15 +971,23 @@ class Emby(metaclass=Singleton):
else: else:
user = self.user user = self.user
req_url = (f"{self._host}Users/{user}/Items/Resume?" req_url = (f"{self._host}Users/{user}/Items/Resume?"
f"Limit={num}&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
res = RequestUtils().get_res(req_url) 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 = []
# 用户媒体库列表(排除黑名单)
user_librarys = self.get_librarys(username=user)
for item in result: for item in result:
if len(ret_resume) == num:
break
if item.get("Type") not in ["Movie", "Episode"]: if item.get("Type") not in ["Movie", "Episode"]:
continue continue
item_path = item.get("Path")
if item_path and user_librarys and not any(
library.name in item_path for library in user_librarys):
continue
item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value
link = self.get_play_url(item.get("Id")) link = self.get_play_url(item.get("Id"))
if item_type == MediaType.MOVIE.value: if item_type == MediaType.MOVIE.value:
@ -1026,15 +1034,23 @@ class Emby(metaclass=Singleton):
else: else:
user = self.user user = self.user
req_url = (f"{self._host}Users/{user}/Items/Latest?" req_url = (f"{self._host}Users/{user}/Items/Latest?"
f"Limit={num}&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
res = RequestUtils().get_res(req_url) res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json() or [] result = res.json() or []
ret_latest = [] ret_latest = []
# 用户媒体库列表(排除黑名单)
user_librarys = self.get_librarys(username=user)
for item in result: for item in result:
if len(ret_latest) == num:
break
if item.get("Type") not in ["Movie", "Series"]: if item.get("Type") not in ["Movie", "Series"]:
continue continue
item_path = item.get("Path")
if item_path and user_librarys and not any(
library.name in item_path for library in user_librarys):
continue
item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value
link = self.get_play_url(item.get("Id")) link = self.get_play_url(item.get("Id"))
image = self.__get_local_image_by_id(item_id=item.get("Id")) image = self.__get_local_image_by_id(item_id=item.get("Id"))

View File

@ -654,15 +654,23 @@ class Jellyfin(metaclass=Singleton):
else: else:
user = self.user user = self.user
req_url = (f"{self._host}Users/{user}/Items/Resume?" req_url = (f"{self._host}Users/{user}/Items/Resume?"
f"Limit={num}&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
res = RequestUtils().get_res(req_url) 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 = []
# 用户媒体库列表(排除黑名单)
user_librarys = self.get_librarys(username=user)
for item in result: for item in result:
if len(ret_resume) == num:
break
if item.get("Type") not in ["Movie", "Episode"]: if item.get("Type") not in ["Movie", "Episode"]:
continue continue
item_path = item.get("Path")
if item_path and user_librarys and not any(
library.name in item_path for library in user_librarys):
continue
item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value
link = self.get_play_url(item.get("Id")) link = self.get_play_url(item.get("Id"))
if item.get("BackdropImageTags"): if item.get("BackdropImageTags"):
@ -703,15 +711,23 @@ class Jellyfin(metaclass=Singleton):
else: else:
user = self.user user = self.user
req_url = (f"{self._host}Users/{user}/Items/Latest?" req_url = (f"{self._host}Users/{user}/Items/Latest?"
f"Limit={num}&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear") f"Limit=100&MediaTypes=Video&api_key={self._apikey}&Fields=ProductionYear,Path")
try: try:
res = RequestUtils().get_res(req_url) res = RequestUtils().get_res(req_url)
if res: if res:
result = res.json() or [] result = res.json() or []
ret_latest = [] ret_latest = []
# 用户媒体库列表(排除黑名单)
user_librarys = self.get_librarys(username=user)
for item in result: for item in result:
if len(ret_latest) == num:
break
if item.get("Type") not in ["Movie", "Series"]: if item.get("Type") not in ["Movie", "Series"]:
continue continue
item_path = item.get("Path")
if item_path and user_librarys and not any(
library.name in item_path for library in user_librarys):
continue
item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value item_type = MediaType.MOVIE.value if item.get("Type") == "Movie" else MediaType.TV.value
link = self.get_play_url(item.get("Id")) link = self.get_play_url(item.get("Id"))
image = self.__get_local_image_by_id(item_id=item.get("Id")) image = self.__get_local_image_by_id(item_id=item.get("Id"))