feat:emby用户名

This commit is contained in:
jxxghp
2025-09-13 10:34:41 +08:00
parent 239c47f469
commit 24b6c970aa
2 changed files with 15 additions and 9 deletions
+2 -2
View File
@@ -142,7 +142,7 @@ async def proxy_img(
cache: bool = False, cache: bool = False,
if_none_match: Annotated[str | None, Header()] = None, if_none_match: Annotated[str | None, Header()] = None,
_: schemas.TokenPayload = Depends(verify_resource_token) _: schemas.TokenPayload = Depends(verify_resource_token)
) -> Optional[Response]: ) -> Response:
""" """
图片代理,可选是否使用代理服务器,支持 HTTP 缓存 图片代理,可选是否使用代理服务器,支持 HTTP 缓存
""" """
@@ -159,7 +159,7 @@ async def cache_img(
url: str, url: str,
if_none_match: Annotated[str | None, Header()] = None, if_none_match: Annotated[str | None, Header()] = None,
_: schemas.TokenPayload = Depends(verify_resource_token) _: schemas.TokenPayload = Depends(verify_resource_token)
) -> Optional[Response]: ) -> Response:
""" """
本地缓存图片文件,支持 HTTP 缓存,如果启用全局图片缓存,则使用磁盘缓存 本地缓存图片文件,支持 HTTP 缓存,如果启用全局图片缓存,则使用磁盘缓存
""" """
+13 -7
View File
@@ -10,10 +10,10 @@ from requests import Response
from app import schemas from app import schemas
from app.core.config import settings from app.core.config import settings
from app.log import logger from app.log import logger
from app.schemas import MediaServerItem
from app.schemas.types import MediaType from app.schemas.types import MediaType
from app.utils.http import RequestUtils from app.utils.http import RequestUtils
from app.utils.url import UrlUtils from app.utils.url import UrlUtils
from app.schemas import MediaServerItem
class Emby: class Emby:
@@ -22,9 +22,10 @@ class Emby:
_apikey: Optional[str] = None _apikey: Optional[str] = None
_sync_libraries: List[str] = [] _sync_libraries: List[str] = []
user: Optional[Union[str, int]] = None user: Optional[Union[str, int]] = None
_username: Optional[str] = None
def __init__(self, host: Optional[str] = None, apikey: Optional[str] = None, play_host: Optional[str] = None, def __init__(self, host: Optional[str] = None, apikey: Optional[str] = None, play_host: Optional[str] = None,
sync_libraries: list = None, **kwargs): username: Optional[str] = None, sync_libraries: list = None, **kwargs):
if not host or not apikey: if not host or not apikey:
logger.error("Emby服务器配置不完整!") logger.error("Emby服务器配置不完整!")
return return
@@ -35,7 +36,8 @@ class Emby:
if self._playhost: if self._playhost:
self._playhost = UrlUtils.standardize_base_url(self._playhost) self._playhost = UrlUtils.standardize_base_url(self._playhost)
self._apikey = apikey self._apikey = apikey
self.user = self.get_user(settings.SUPERUSER) self._username = username
self.user = self.get_user(username or settings.SUPERUSER)
self.folders = self.get_emby_folders() self.folders = self.get_emby_folders()
self.serverid = self.get_server_id() self.serverid = self.get_server_id()
self._sync_libraries = sync_libraries or [] self._sync_libraries = sync_libraries or []
@@ -139,7 +141,8 @@ class Emby:
logger.error(f"连接User/Views 出错:" + str(e)) logger.error(f"连接User/Views 出错:" + str(e))
return [] return []
def get_librarys(self, username: Optional[str] = None, hidden: Optional[bool] = False) -> List[schemas.MediaServerLibrary]: def get_librarys(self, username: Optional[str] = None, hidden: Optional[bool] = False) -> List[
schemas.MediaServerLibrary]:
""" """
获取媒体服务器所有媒体库列表 获取媒体服务器所有媒体库列表
""" """
@@ -567,6 +570,7 @@ class Emby:
if library_id != "/": if library_id != "/":
return self.__refresh_emby_library_by_id(library_id) return self.__refresh_emby_library_by_id(library_id)
logger.info(f"Emby媒体库刷新完成") logger.info(f"Emby媒体库刷新完成")
return True
def __get_emby_library_id_by_item(self, item: schemas.RefreshMediaItem) -> Optional[str]: def __get_emby_library_id_by_item(self, item: schemas.RefreshMediaItem) -> Optional[str]:
""" """
@@ -706,9 +710,9 @@ class Emby:
yield items yield items
elif item.get("Type") in ["Movie", "Series"]: elif item.get("Type") in ["Movie", "Series"]:
yield self.__format_item_info(item) yield self.__format_item_info(item)
except Exception as e: except Exception as e:
logger.error(f"连接Users/Items出错:" + str(e)) logger.error(f"连接Users/Items出错:" + str(e))
return None
def get_webhook_message(self, form: any, args: dict) -> Optional[schemas.WebhookEventInfo]: def get_webhook_message(self, form: any, args: dict) -> Optional[schemas.WebhookEventInfo]:
""" """
@@ -1109,7 +1113,8 @@ class Emby:
return "" return ""
return "%sItems/%s/Images/Primary" % (self._host, item_id) return "%sItems/%s/Images/Primary" % (self._host, item_id)
def get_resume(self, num: Optional[int] = 12, username: Optional[str] = None) -> Optional[List[schemas.MediaServerPlayItem]]: def get_resume(self, num: Optional[int] = 12, username: Optional[str] = None) -> Optional[
List[schemas.MediaServerPlayItem]]:
""" """
获得继续观看 获得继续观看
""" """
@@ -1178,7 +1183,8 @@ class Emby:
logger.error(f"连接Users/Items/Resume出错:" + str(e)) logger.error(f"连接Users/Items/Resume出错:" + str(e))
return [] return []
def get_latest(self, num: Optional[int] = 20, username: Optional[str] = None) -> Optional[List[schemas.MediaServerPlayItem]]: def get_latest(self, num: Optional[int] = 20, username: Optional[str] = None) -> Optional[
List[schemas.MediaServerPlayItem]]:
""" """
获得最近更新 获得最近更新
""" """