Close RSS feeds after removing empty series

This commit is contained in:
advplyr 2025-03-08 17:47:47 -06:00
parent 84e20e041c
commit 8f308c6180

View File

@ -394,7 +394,7 @@ class ApiRouter {
const transaction = await Database.sequelize.transaction() const transaction = await Database.sequelize.transaction()
try { try {
const seriesBooksToRemove = ( const seriesToRemove = (
await Database.seriesModel.findAll({ await Database.seriesModel.findAll({
where: [ where: [
{ {
@ -412,10 +412,10 @@ class ApiRouter {
}) })
).map((s) => ({ id: s.id, name: s.name, libraryId: s.libraryId })) ).map((s) => ({ id: s.id, name: s.name, libraryId: s.libraryId }))
if (seriesBooksToRemove.length) { if (seriesToRemove.length) {
await Database.seriesModel.destroy({ await Database.seriesModel.destroy({
where: { where: {
id: seriesBooksToRemove.map((s) => s.id) id: seriesToRemove.map((s) => s.id)
}, },
transaction transaction
}) })
@ -423,13 +423,17 @@ class ApiRouter {
await transaction.commit() await transaction.commit()
seriesBooksToRemove.forEach((id, name, libraryId) => { seriesToRemove.forEach(({ id, name, libraryId }) => {
Logger.info(`[ApiRouter] Series "${name}" is now empty. Removing series`) Logger.info(`[ApiRouter] Series "${name}" is now empty. Removing series`)
// Remove series from library filter data // Remove series from library filter data
Database.removeSeriesFromFilterData(libraryId, id) Database.removeSeriesFromFilterData(libraryId, id)
SocketAuthority.emitter('series_removed', { id: id, libraryId: libraryId }) 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) { } catch (error) {
await transaction.rollback() await transaction.rollback()
Logger.error(`[ApiRouter] Error removing empty series: ${error.message}`) Logger.error(`[ApiRouter] Error removing empty series: ${error.message}`)