From 52a15086cbeff4e8d886c789cafd04002985131c Mon Sep 17 00:00:00 2001 From: InfinityPacer <160988576+InfinityPacer@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:38:46 +0800 Subject: [PATCH] feat(event): add SiteRefreshed event --- app/chain/site.py | 21 +++++++++++++++------ app/schemas/types.py | 2 ++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/chain/site.py b/app/chain/site.py index cf6d97f4..5a916ba6 100644 --- a/app/chain/site.py +++ b/app/chain/site.py @@ -1,16 +1,15 @@ import base64 import re from datetime import datetime -from typing import Tuple, Optional -from typing import Union +from typing import Optional, Tuple, Union from urllib.parse import urljoin from lxml import etree from ruamel.yaml import CommentedMap from app.chain import ChainBase -from app.core.config import settings, global_vars -from app.core.event import eventmanager, Event, EventManager +from app.core.config import global_vars, settings +from app.core.event import Event, EventManager, eventmanager from app.db.models.site import Site from app.db.site_oper import SiteOper from app.db.systemconfig_oper import SystemConfigOper @@ -66,6 +65,9 @@ class SiteChain(ChainBase): self.siteoper.update_userdata(domain=StringUtils.get_url_domain(site.get("domain")), name=site.get("name"), payload=userdata.dict()) + EventManager().send_event(EventType.SiteRefreshed, { + "site_id": site.get("id") + }) return userdata def refresh_userdatas(self) -> None: @@ -73,11 +75,18 @@ class SiteChain(ChainBase): 刷新所有站点的用户数据 """ sites = self.siteshelper.get_indexers() + any_site_updated = False for site in sites: if global_vars.is_system_stopped: - break + return if site.get("is_active"): - self.refresh_userdata(site) + userdata = self.refresh_userdata(site) + if userdata: + any_site_updated = True + if any_site_updated: + EventManager().send_event(EventType.SiteRefreshed, { + "site_id": "*" + }) def is_special_site(self, domain: str) -> bool: """ diff --git a/app/schemas/types.py b/app/schemas/types.py index e8bd5d46..5cb99091 100644 --- a/app/schemas/types.py +++ b/app/schemas/types.py @@ -28,6 +28,8 @@ class EventType(Enum): SiteDeleted = "site.deleted" # 站点已更新 SiteUpdated = "site.updated" + # 站点已刷新 + SiteRefreshed = "site.refreshed" # 转移完成 TransferComplete = "transfer.complete" # 下载已添加