From 8f308c6180cd7bbe742a2cfd8bcbedc558b558ac Mon Sep 17 00:00:00 2001 From: advplyr Date: Sat, 8 Mar 2025 17:47:47 -0600 Subject: [PATCH] Close RSS feeds after removing empty series --- server/routers/ApiRouter.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/routers/ApiRouter.js b/server/routers/ApiRouter.js index 564b5cbc..6779d0af 100644 --- a/server/routers/ApiRouter.js +++ b/server/routers/ApiRouter.js @@ -394,7 +394,7 @@ class ApiRouter { const transaction = await Database.sequelize.transaction() try { - const seriesBooksToRemove = ( + const seriesToRemove = ( await Database.seriesModel.findAll({ where: [ { @@ -412,10 +412,10 @@ class ApiRouter { }) ).map((s) => ({ id: s.id, name: s.name, libraryId: s.libraryId })) - if (seriesBooksToRemove.length) { + if (seriesToRemove.length) { await Database.seriesModel.destroy({ where: { - id: seriesBooksToRemove.map((s) => s.id) + id: seriesToRemove.map((s) => s.id) }, transaction }) @@ -423,13 +423,17 @@ class ApiRouter { await transaction.commit() - seriesBooksToRemove.forEach((id, name, libraryId) => { + seriesToRemove.forEach(({ id, name, libraryId }) => { Logger.info(`[ApiRouter] Series "${name}" is now empty. Removing series`) // Remove series from library filter data Database.removeSeriesFromFilterData(libraryId, id) SocketAuthority.emitter('series_removed', { id: id, libraryId: libraryId }) }) + // Close rss feeds - remove from db and emit socket event + if (seriesToRemove.length) { + await RssFeedManager.closeFeedsForEntityIds(seriesToRemove.map((s) => s.id)) + } } catch (error) { await transaction.rollback() Logger.error(`[ApiRouter] Error removing empty series: ${error.message}`)