fix 订阅统计清理

This commit is contained in:
jxxghp 2024-05-07 16:01:52 +08:00
parent 4a3a3483d0
commit bd348f118c
3 changed files with 41 additions and 1 deletions

View File

@ -407,5 +407,12 @@ def delete_subscribe(
"""
删除订阅信息
"""
Subscribe.delete(db, subscribe_id)
subscribe = Subscribe.get(db, subscribe_id)
if subscribe:
subscribe.delete(db, subscribe_id)
# 统计订阅
SubscribeHelper().sub_done_async({
"tmdbid": subscribe.tmdbid,
"doubanid": subscribe.doubanid
})
return schemas.Response(success=True)

View File

@ -871,6 +871,11 @@ class SubscribeChain(ChainBase):
"subscribe_info": subscribe.to_dict(),
"mediainfo": mediainfo.to_dict(),
})
# 统计订阅
self.subscribehelper.sub_done_async({
"tmdbid": mediainfo.tmdb_id,
"doubanid": mediainfo.douban_id
})
def remote_list(self, channel: MessageChannel, userid: Union[str, int] = None):
"""
@ -920,6 +925,11 @@ class SubscribeChain(ChainBase):
return
# 删除订阅
self.subscribeoper.delete(subscribe_id)
# 统计订阅
self.subscribehelper.sub_done_async({
"tmdbid": subscribe.tmdbid,
"doubanid": subscribe.doubanid
})
# 重新发送消息
self.remote_list(channel, userid)

View File

@ -18,6 +18,8 @@ class SubscribeHelper(metaclass=Singleton):
_sub_reg = "https://movie-pilot.org/subscribe/add"
_sub_done = "https://movie-pilot.org/subscribe/done"
_sub_report = "https://movie-pilot.org/subscribe/report"
_sub_statistic = "https://movie-pilot.org/subscribe/statistic"
@ -58,6 +60,19 @@ class SubscribeHelper(metaclass=Singleton):
return True
return False
def sub_done(self, sub: dict) -> bool:
"""
完成订阅统计
"""
if not settings.SUBSCRIBE_STATISTIC_SHARE:
return False
res = RequestUtils(timeout=5, headers={
"Content-Type": "application/json"
}).post_res(self._sub_done, json=sub)
if res and res.status_code == 200:
return True
return False
def sub_reg_async(self, sub: dict) -> bool:
"""
异步新增订阅统计
@ -66,6 +81,14 @@ class SubscribeHelper(metaclass=Singleton):
Thread(target=self.sub_reg, args=(sub,)).start()
return True
def sub_done_async(self, sub: dict) -> bool:
"""
异步完成订阅统计
"""
# 开新线程处理
Thread(target=self.sub_done, args=(sub,)).start()
return True
def sub_report(self) -> bool:
"""
上报存量订阅统计