Spots: unmatched ones matched again in turns; a standalone release gives way
A spot older than what the catalog has indexed (the spotter's first backfill reaches back ~3 months) matched nothing and would have become a release of its own, a duplicate once the history pass builds the upload. Unmatched spots are matched again in turns (rematched_at) for 30 days; the 24 h before a standalone release count from the inspection; a later match deletes the spot's own release and links the header pass's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7df5a638ca
commit
550f63cd84
4 files changed
+61
-6
No files matched your search
@@ -105,5 +105,17 @@ test.group('Spots', (group) => {
|
||||
assert.equal(release.files, 1)
|
||||
const { default: NzbService } = await import('#services/nzb_service')
|
||||
assert.include((await NzbService.build(Number(release.id)))!.xml, 'lonely.file.mkv')
|
||||
// Not again while it has one; once the header pass builds the file's release, the spot moves there.
|
||||
assert.deepEqual(await inspector.rematch(), { matched: 0, standalone: 0 })
|
||||
const group = await db.from('groups').where('name', 'alt.binaries.test.spots').firstOrFail()
|
||||
const parsed = parseSubject('[1/1] - "lonely.file.mkv" yEnc (1/9)')!
|
||||
const identity = releaseIdentity({ poster: 'p', subject: parsed.base, name: parsed.name, weak: false })!
|
||||
const [h] = await db
|
||||
.table('releases')
|
||||
.insert({ release_key: identity.key, identity_key: identity.key, name: identity.name, source: identity.source, poster: 'p', groups: '[]', group_id: group.id, files: 1, posted_at: new Date(STAMP * 1000), readable: true })
|
||||
.returning('id')
|
||||
assert.equal(await inspector.match(SPOT), 1)
|
||||
assert.isNull(await db.from('releases').where('id', release.id).first())
|
||||
assert.equal(Number((await db.from('spots').where('message_id', SPOT).firstOrFail()).release_id), Number(h.id))
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user