fix 迁移部分插件功能到Module公共能力
This commit is contained in:
@ -12,7 +12,6 @@ from app.core.context import MediaInfo
|
||||
from app.log import logger
|
||||
from app.modules.emby import Emby
|
||||
from app.modules.jellyfin import Jellyfin
|
||||
from app.modules.plex import Plex
|
||||
from app.plugins import _PluginBase
|
||||
from app.schemas.types import MediaType
|
||||
from app.utils.http import RequestUtils
|
||||
@ -46,14 +45,6 @@ class BestFilmVersion(_PluginBase):
|
||||
_scheduler: Optional[BackgroundScheduler] = None
|
||||
_cache_path: Optional[Path] = None
|
||||
subscribechain = None
|
||||
jellyfin = None
|
||||
jellyfin_user = None
|
||||
emby = None
|
||||
emby_user = None
|
||||
plex = None
|
||||
plex_user = None
|
||||
service_host = None
|
||||
service_apikey = None
|
||||
|
||||
# 配置属性
|
||||
_enabled: bool = False
|
||||
@ -63,25 +54,6 @@ class BestFilmVersion(_PluginBase):
|
||||
def init_plugin(self, config: dict = None):
|
||||
self._cache_path = settings.TEMP_PATH / "__best_film_version_cache__"
|
||||
self.subscribechain = SubscribeChain()
|
||||
if settings.MEDIASERVER == 'jellyfin':
|
||||
self.jellyfin = Jellyfin()
|
||||
self.jellyfin_user = self.jellyfin.get_user()
|
||||
self.service_apikey = settings.JELLYFIN_API_KEY
|
||||
self.service_host = settings.JELLYFIN_HOST
|
||||
if settings.MEDIASERVER == 'emby':
|
||||
self.emby = Emby()
|
||||
self.emby_user = self.emby.get_user()
|
||||
self.service_apikey = settings.EMBY_API_KEY
|
||||
self.service_host = settings.EMBY_HOST
|
||||
if settings.MEDIASERVER == 'plex':
|
||||
self.plex = Plex()
|
||||
self.service_apikey = settings.PLEX_TOKEN
|
||||
self.service_host = settings.PLEX_HOST
|
||||
if self.service_host:
|
||||
if not self.service_host.endswith("/"):
|
||||
self.service_host += "/"
|
||||
if not self.service_host.startswith("http"):
|
||||
self.service_host = "http://" + self.service_host
|
||||
|
||||
# 停止现有任务
|
||||
self.stop_service()
|
||||
@ -230,7 +202,6 @@ class BestFilmVersion(_PluginBase):
|
||||
poster = history.get("poster")
|
||||
mtype = history.get("type")
|
||||
time_str = history.get("time")
|
||||
overview = history.get("overview")
|
||||
tmdbid = history.get("tmdbid")
|
||||
contents.append(
|
||||
{
|
||||
@ -332,48 +303,27 @@ class BestFilmVersion(_PluginBase):
|
||||
# 读取历史记录
|
||||
history = self.get_data('history') or []
|
||||
|
||||
if self.jellyfin:
|
||||
# 根据加入日期 降序排序
|
||||
url = f"{self.service_host}Users/{self.jellyfin_user}/Items?SortBy=DateCreated%2CSortName" \
|
||||
f"&SortOrder=Descending" \
|
||||
f"&Filters=IsFavorite" \
|
||||
f"&Recursive=true" \
|
||||
f"&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo" \
|
||||
f"&CollapseBoxSetItems=false" \
|
||||
f"&ExcludeLocationTypes=Virtual" \
|
||||
f"&EnableTotalRecordCount=false" \
|
||||
f"&Limit=20" \
|
||||
f"&apikey={self.service_apikey}"
|
||||
elif self.emby:
|
||||
# 根据加入日期 降序排序
|
||||
url = f"{self.service_host}emby/Users/{self.emby_user}/Items?SortBy=DateCreated%2CSortName" \
|
||||
f"&SortOrder=Descending" \
|
||||
f"&Filters=IsFavorite" \
|
||||
f"&Recursive=true" \
|
||||
f"&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo" \
|
||||
f"&CollapseBoxSetItems=false" \
|
||||
f"&ExcludeLocationTypes=Virtual" \
|
||||
f"&EnableTotalRecordCount=false" \
|
||||
f"&Limit=20&api_key={self.service_apikey}"
|
||||
# 读取收藏
|
||||
if settings.MEDIASERVER == 'jellyfin':
|
||||
resp = Jellyfin().get_fav_items()
|
||||
elif settings.MEDIASERVER == 'emby':
|
||||
resp = Emby().get_fav_items()
|
||||
else:
|
||||
# TODO plex待开发
|
||||
return
|
||||
|
||||
# 获取收藏数据
|
||||
resp = self.media_simple_filter(url)
|
||||
logger.info(f'BestFilmVersion插件 resp打印 {resp}')
|
||||
|
||||
for data in resp:
|
||||
# 检查缓存
|
||||
if data.get('Name') in caches:
|
||||
continue
|
||||
|
||||
# 获取详情
|
||||
if self.jellyfin:
|
||||
item_info_resp = self.jellyfin.get_iteminfo(itemid=data.get('Id'))
|
||||
elif self.emby:
|
||||
item_info_resp = self.emby.get_iteminfo(itemid=data.get('Id'))
|
||||
if settings.MEDIASERVER == 'jellyfin':
|
||||
item_info_resp = Jellyfin().get_iteminfo(itemid=data.get('Id'))
|
||||
elif settings.MEDIASERVER == 'emby':
|
||||
item_info_resp = Emby().get_iteminfo(itemid=data.get('Id'))
|
||||
else:
|
||||
# TODO plex待开发
|
||||
return
|
||||
|
||||
logger.info(f'BestFilmVersion插件 item打印 {item_info_resp}')
|
||||
|
Reference in New Issue
Block a user