Skip to content

Commit fd47999

Browse files
committed
feat: delete associated torrents when removing a bangumi
1 parent 100696a commit fd47999

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

backend/src/module/database/torrent.py

+8
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,11 @@ def get_bangumi_id(self, torrent_hash: str) -> Optional[int]:
6363
.where(and_(Torrent.hash == torrent_hash, Torrent.bangumi_id.isnot(None)))
6464
.order_by(desc(Torrent.id))
6565
).first()
66+
67+
def delete_by_bangumi_id(self, bangumi_id: int):
68+
statement = select(Torrent).where(Torrent.bangumi_id == bangumi_id)
69+
torrents = self.session.exec(statement).all()
70+
for torrent in torrents:
71+
logger.debug(f"[Database] Delete torrent name: {torrent.name}.")
72+
self.session.delete(torrent)
73+
self.session.commit()

backend/src/module/manager/torrent.py

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def delete_rule(self, _id: int | str, file: bool = False):
4242
with DownloadClient() as client:
4343
self.rss.delete(data.official_title)
4444
self.bangumi.delete_one(int(_id))
45+
self.torrent.delete_by_bangumi_id(int(_id))
4546
if file:
4647
torrent_message = self.delete_torrents(data, client)
4748
logger.info(f"[Manager] Delete rule for {data.official_title}")

0 commit comments

Comments
 (0)