feat(event): add SubscribeDeleted event

This commit is contained in:
InfinityPacer
2024-12-16 19:09:00 +08:00
parent 11fedb1ffc
commit 5d5c8a0af7
2 changed files with 27 additions and 9 deletions
+25 -9
View File
@@ -8,6 +8,7 @@ from app import schemas
from app.chain.subscribe import SubscribeChain from app.chain.subscribe import SubscribeChain
from app.core.config import settings from app.core.config import settings
from app.core.context import MediaInfo from app.core.context import MediaInfo
from app.core.event import eventmanager
from app.core.metainfo import MetaInfo from app.core.metainfo import MetaInfo
from app.core.security import verify_token, verify_apitoken from app.core.security import verify_token, verify_apitoken
from app.db import get_db from app.db import get_db
@@ -17,7 +18,7 @@ from app.db.models.user import User
from app.db.user_oper import get_current_active_user from app.db.user_oper import get_current_active_user
from app.helper.subscribe import SubscribeHelper from app.helper.subscribe import SubscribeHelper
from app.scheduler import Scheduler from app.scheduler import Scheduler
from app.schemas.types import MediaType from app.schemas.types import MediaType, EventType
router = APIRouter() router = APIRouter()
@@ -274,17 +275,27 @@ def delete_subscribe_by_mediaid(
""" """
根据TMDBID或豆瓣ID删除订阅 tmdb:/douban: 根据TMDBID或豆瓣ID删除订阅 tmdb:/douban:
""" """
delete_subscribes = []
if mediaid.startswith("tmdb:"): if mediaid.startswith("tmdb:"):
tmdbid = mediaid[5:] tmdbid = mediaid[5:]
if not tmdbid or not str(tmdbid).isdigit(): if not tmdbid or not str(tmdbid).isdigit():
return schemas.Response(success=False) return schemas.Response(success=False)
Subscribe().delete_by_tmdbid(db, int(tmdbid), season) subscribes = Subscribe().get_by_tmdbid(db, int(tmdbid), season)
delete_subscribes.extend(subscribes)
elif mediaid.startswith("douban:"): elif mediaid.startswith("douban:"):
doubanid = mediaid[7:] doubanid = mediaid[7:]
if not doubanid: if not doubanid:
return schemas.Response(success=False) return schemas.Response(success=False)
Subscribe().delete_by_doubanid(db, doubanid) subscribe = Subscribe().get_by_doubanid(db, doubanid)
if subscribe:
delete_subscribes.append(subscribe)
for subscribe in delete_subscribes:
Subscribe().delete(db, subscribe.id)
# 发送事件
eventmanager.send_event(EventType.SubscribeDeleted, {
"subscribe_id": subscribe.id,
"subscribe": subscribe.to_dict()
})
return schemas.Response(success=True) return schemas.Response(success=True)
@@ -507,9 +518,14 @@ def delete_subscribe(
subscribe = Subscribe.get(db, subscribe_id) subscribe = Subscribe.get(db, subscribe_id)
if subscribe: if subscribe:
subscribe.delete(db, subscribe_id) subscribe.delete(db, subscribe_id)
# 统计订阅 # 发送事件
SubscribeHelper().sub_done_async({ eventmanager.send_event(EventType.SubscribeDeleted, {
"tmdbid": subscribe.tmdbid, "subscribe_id": subscribe_id,
"doubanid": subscribe.doubanid "subscribe": subscribe.to_dict()
}) })
# 统计订阅
SubscribeHelper().sub_done_async({
"tmdbid": subscribe.tmdbid,
"doubanid": subscribe.doubanid
})
return schemas.Response(success=True) return schemas.Response(success=True)
+2
View File
@@ -48,6 +48,8 @@ class EventType(Enum):
NoticeMessage = "notice.message" NoticeMessage = "notice.message"
# 订阅已添加 # 订阅已添加
SubscribeAdded = "subscribe.added" SubscribeAdded = "subscribe.added"
# 订阅已删除
SubscribeDeleted = "subscribe.deleted"
# 订阅已完成 # 订阅已完成
SubscribeComplete = "subscribe.complete" SubscribeComplete = "subscribe.complete"
# 系统错误 # 系统错误