mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 15:38:19 +08:00
feat: 可选从媒体服务器中获取最新入库条目海报作为登录页面壁纸
This commit is contained in:
@@ -7,6 +7,7 @@ from fastapi.security import OAuth2PasswordRequestForm
|
|||||||
from app import schemas
|
from app import schemas
|
||||||
from app.chain.tmdb import TmdbChain
|
from app.chain.tmdb import TmdbChain
|
||||||
from app.chain.user import UserChain
|
from app.chain.user import UserChain
|
||||||
|
from app.chain.mediaserver import MediaServerChain
|
||||||
from app.core import security
|
from app.core import security
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
from app.helper.sites import SitesHelper
|
from app.helper.sites import SitesHelper
|
||||||
@@ -53,10 +54,12 @@ def wallpaper() -> Any:
|
|||||||
"""
|
"""
|
||||||
获取登录页面电影海报
|
获取登录页面电影海报
|
||||||
"""
|
"""
|
||||||
if settings.WALLPAPER == "tmdb":
|
if settings.WALLPAPER == "bing":
|
||||||
url = TmdbChain().get_random_wallpager()
|
|
||||||
else:
|
|
||||||
url = WebUtils.get_bing_wallpaper()
|
url = WebUtils.get_bing_wallpaper()
|
||||||
|
elif settings.WALLPAPER == "mediaserver":
|
||||||
|
url = MediaServerChain().get_latest_wallpaper()
|
||||||
|
else:
|
||||||
|
url = TmdbChain().get_random_wallpager()
|
||||||
if url:
|
if url:
|
||||||
return schemas.Response(
|
return schemas.Response(
|
||||||
success=True,
|
success=True,
|
||||||
@@ -70,7 +73,9 @@ def wallpapers() -> Any:
|
|||||||
"""
|
"""
|
||||||
获取登录页面电影海报
|
获取登录页面电影海报
|
||||||
"""
|
"""
|
||||||
if settings.WALLPAPER == "tmdb":
|
if settings.WALLPAPER == "bing":
|
||||||
return TmdbChain().get_trending_wallpapers()
|
|
||||||
else:
|
|
||||||
return WebUtils.get_bing_wallpapers()
|
return WebUtils.get_bing_wallpapers()
|
||||||
|
elif settings.WALLPAPER == "mediaserver":
|
||||||
|
url = MediaServerChain().get_latest_wallpapers()
|
||||||
|
else:
|
||||||
|
url = TmdbChain().get_trending_wallpapers()
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
import threading
|
import threading
|
||||||
from typing import List, Union, Optional, Generator
|
from typing import List, Union, Optional, Generator
|
||||||
|
|
||||||
|
from cachetools import cached, TTLCache
|
||||||
|
|
||||||
from app import schemas
|
from app import schemas
|
||||||
from app.chain import ChainBase
|
from app.chain import ChainBase
|
||||||
from app.core.config import global_vars
|
from app.core.config import global_vars, settings
|
||||||
from app.db.mediaserver_oper import MediaServerOper
|
from app.db.mediaserver_oper import MediaServerOper
|
||||||
from app.helper.service import ServiceConfigHelper
|
from app.helper.service import ServiceConfigHelper
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
@@ -91,6 +93,19 @@ class MediaServerChain(ChainBase):
|
|||||||
获取媒体服务器最新入库条目
|
获取媒体服务器最新入库条目
|
||||||
"""
|
"""
|
||||||
return self.run_module("mediaserver_latest", count=count, server=server, username=username)
|
return self.run_module("mediaserver_latest", count=count, server=server, username=username)
|
||||||
|
|
||||||
|
@cached(cache=TTLCache(maxsize=1, ttl=3600))
|
||||||
|
def get_latest_wallpapers(self, server:str, count=20) -> List[str]:
|
||||||
|
"""
|
||||||
|
获取最新最新入库条目海报作为壁纸,缓存1小时
|
||||||
|
"""
|
||||||
|
return self.run_module("mediaserver_latest_images", server=server, count=count)
|
||||||
|
|
||||||
|
def get_latest_wallpaper(self, server:str) -> Optional[str]:
|
||||||
|
"""
|
||||||
|
获取最新最新入库条目海报作为壁纸,缓存1小时
|
||||||
|
"""
|
||||||
|
return self.get_latest_wallpapers(server=server, count=20)[0]
|
||||||
|
|
||||||
def get_play_url(self, server: str, item_id: Union[str, int]) -> Optional[str]:
|
def get_play_url(self, server: str, item_id: Union[str, int]) -> Optional[str]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
+1
-1
@@ -79,7 +79,7 @@ class ConfigModel(BaseModel):
|
|||||||
API_TOKEN: Optional[str] = None
|
API_TOKEN: Optional[str] = None
|
||||||
# 网络代理 IP:PORT
|
# 网络代理 IP:PORT
|
||||||
PROXY_HOST: Optional[str] = None
|
PROXY_HOST: Optional[str] = None
|
||||||
# 登录页面电影海报,tmdb/bing
|
# 登录页面电影海报,tmdb/bing/mediaserver
|
||||||
WALLPAPER: str = "tmdb"
|
WALLPAPER: str = "tmdb"
|
||||||
# 媒体搜索来源 themoviedb/douban/bangumi,多个用,分隔
|
# 媒体搜索来源 themoviedb/douban/bangumi,多个用,分隔
|
||||||
SEARCH_SOURCE: str = "themoviedb,douban,bangumi"
|
SEARCH_SOURCE: str = "themoviedb,douban,bangumi"
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@ META_CACHE_EXPIRE=0
|
|||||||
AUTO_UPDATE_RESOURCE=true
|
AUTO_UPDATE_RESOURCE=true
|
||||||
# 【*】API密钥,未设置时系统将随机生成,建议使用复杂字符串,用于Jellyseerr/Overseerr、媒体服务器Webhook等配置以及部分支持API_TOKEN的API请求
|
# 【*】API密钥,未设置时系统将随机生成,建议使用复杂字符串,用于Jellyseerr/Overseerr、媒体服务器Webhook等配置以及部分支持API_TOKEN的API请求
|
||||||
API_TOKEN=''
|
API_TOKEN=''
|
||||||
# 登录页面电影海报,tmdb/bing,tmdb要求能正常连接api.themoviedb.org
|
# 登录页面电影海报,tmdb/bing/mediaserver,tmdb要求能正常连接api.themoviedb.org
|
||||||
WALLPAPER=tmdb
|
WALLPAPER=tmdb
|
||||||
# TMDB图片地址,无需修改需保留默认值,如果默认地址连通性不好可以尝试修改为:`static-mdb.v.geilijiasu.com`
|
# TMDB图片地址,无需修改需保留默认值,如果默认地址连通性不好可以尝试修改为:`static-mdb.v.geilijiasu.com`
|
||||||
TMDB_IMAGE_DOMAIN=image.tmdb.org
|
TMDB_IMAGE_DOMAIN=image.tmdb.org
|
||||||
|
|||||||
Reference in New Issue
Block a user