mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-28 19:47:41 +08:00
add site userdata refresh api
This commit is contained in:
@@ -164,6 +164,27 @@ def update_cookie(
|
|||||||
return schemas.Response(success=state, message=message)
|
return schemas.Response(success=state, message=message)
|
||||||
|
|
||||||
|
|
||||||
|
@router.get("/userdata/{site_id}", summary="更新站点用户数据", response_model=schemas.Response)
|
||||||
|
def refresh_userdata(
|
||||||
|
site_id: int,
|
||||||
|
db: Session = Depends(get_db),
|
||||||
|
_: schemas.TokenPayload = Depends(get_current_active_superuser)) -> Any:
|
||||||
|
"""
|
||||||
|
刷新站点用户数据
|
||||||
|
"""
|
||||||
|
site = Site.get(db, site_id)
|
||||||
|
if not site:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=404,
|
||||||
|
detail=f"站点 {site_id} 不存在",
|
||||||
|
)
|
||||||
|
indexer = SitesHelper().get_indexer(site.domain)
|
||||||
|
if not indexer:
|
||||||
|
return schemas.Response(success=False, message="站点不支持索引或未通过用户认证!")
|
||||||
|
user_data = SiteChain().refresh_userdata(site=indexer) or {}
|
||||||
|
return schemas.Response(success=True, data=user_data)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/test/{site_id}", summary="连接测试", response_model=schemas.Response)
|
@router.get("/test/{site_id}", summary="连接测试", response_model=schemas.Response)
|
||||||
def test_site(site_id: int,
|
def test_site(site_id: int,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
|
|||||||
@@ -398,6 +398,26 @@ class SiteChain(ChainBase):
|
|||||||
logger.info(f"清理站点配置:{key}")
|
logger.info(f"清理站点配置:{key}")
|
||||||
self.systemconfig.delete(key)
|
self.systemconfig.delete(key)
|
||||||
|
|
||||||
|
@eventmanager.register(EventType.SiteUpdated)
|
||||||
|
def cache_site_userdata(self, event: Event):
|
||||||
|
"""
|
||||||
|
缓存站点用户数据
|
||||||
|
"""
|
||||||
|
if not event:
|
||||||
|
return
|
||||||
|
event_data = event.event_data or {}
|
||||||
|
# 主域名
|
||||||
|
domain = event_data.get("domain")
|
||||||
|
if not domain:
|
||||||
|
return
|
||||||
|
if str(domain).startswith("http"):
|
||||||
|
domain = StringUtils.get_url_domain(domain)
|
||||||
|
indexer = self.siteshelper.get_indexer(domain)
|
||||||
|
if not indexer:
|
||||||
|
return
|
||||||
|
# 刷新站点用户数据
|
||||||
|
self.refresh_userdata(site=indexer) or {}
|
||||||
|
|
||||||
def test(self, url: str) -> Tuple[bool, str]:
|
def test(self, url: str) -> Tuple[bool, str]:
|
||||||
"""
|
"""
|
||||||
测试站点是否可用
|
测试站点是否可用
|
||||||
|
|||||||
Reference in New Issue
Block a user