diff --git a/app/services/spot_inspector.ts b/app/services/spot_inspector.ts index f9f7f9b..5c607c8 100644 --- a/app/services/spot_inspector.ts +++ b/app/services/spot_inspector.ts @@ -283,7 +283,8 @@ export class SpotInspector { await trx.from('releases').whereIn('id', [...perRelease.keys()]).update({ passworded: true }) } const top = [...perRelease.entries()].sort((a, b) => b[1] - a[1])[0] - await trx.from('spots').where('message_id', spotId).update({ matched: fileRelease.size, release_id: top ? top[0] : null }) + // The NZB is only kept for a release of the spot's own: the header pass's releases have their chunks. + await trx.from('spots').where('message_id', spotId).update({ matched: fileRelease.size, release_id: top ? top[0] : null, nzb: null }) }) return perRelease.size } diff --git a/database/migrations/1770000003000_spots_nzb_only_unmatched.ts b/database/migrations/1770000003000_spots_nzb_only_unmatched.ts new file mode 100644 index 0000000..a512770 --- /dev/null +++ b/database/migrations/1770000003000_spots_nzb_only_unmatched.ts @@ -0,0 +1,10 @@ +import { BaseSchema } from '@adonisjs/lucid/schema' + +/** A matched spot's NZB isn't kept (its releases have their chunks): only a spot of its own needs one (2.7 GB at 9k spots). */ +export default class extends BaseSchema { + async up() { + this.schema.raw(`UPDATE spots SET nzb = NULL WHERE matched > 0 AND nzb IS NOT NULL`) + } + + async down() {} +}