feat: plex最近添加过滤黑名单

This commit is contained in:
zhu0823 2024-04-30 19:14:08 +08:00
parent 8aef488ab6
commit 51dc2c33a0

View File

@ -647,20 +647,61 @@ class Plex:
""" """
if not self._plex: if not self._plex:
return None return None
items = self._plex.fetchItems('/library/recentlyAdded', container_start=0, container_size=num) # 请求参数(除黑名单)
allow_library = ",".join([lib.id for lib in self.get_librarys()])
params = {
"contentDirectoryID": allow_library,
"count": num,
"excludeContinueWatching": 1
}
ret_resume = [] ret_resume = []
for item in items: sub_result = []
item_type = MediaType.MOVIE.value if item.TYPE == "movie" else MediaType.TV.value offset = 0
link = self.get_play_url(item.key) while True:
title = item.title if item_type == MediaType.MOVIE.value else \ if len(ret_resume) >= num:
"%s%s" % (item.parentTitle, item.index) break
image = item.posterUrl # 获取所有资料库
ret_resume.append(schemas.MediaServerPlayItem( hubs = self._plex.fetchItems(
id=item.key, '/hubs/promoted',
title=title, container_start=offset,
subtitle=item.year, container_size=num,
type=item_type, maxresults=num,
image=image, params=params
link=link )
)) if len(hubs) == 0:
break
# 合并排序
for hub in hubs:
for item in hub.items:
sub_result.append(item)
sub_result.sort(key=lambda x: x.addedAt, reverse=True)
for item in sub_result:
if len(ret_resume) >= num:
break
item_type = ""
title = ""
if item.TYPE == "movie":
item_type = MediaType.MOVIE.value
title = item.title
elif item.TYPE == "season":
item_type = MediaType.TV.value
title = "%s%s" % (item.parentTitle, item.index)
elif item.TYPE == "episode":
item_type = MediaType.TV.value
title = "%s%s季 第%s" % (item.grandparentTitle, item.parentIndex, item.index)
link = self.get_play_url(item.key).rstrip('/children')
image = item.posterUrl
ret_resume.append(schemas.MediaServerPlayItem(
id=item.key,
title=title,
subtitle=item.year,
type=item_type,
image=image,
link=link
))
offset += num
return ret_resume[:num] return ret_resume[:num]