Albums in the Rust edge, and the batch-counter rule (design 3)
A release the window closed on with one file named by its stem or post, the name with a number and no archive, volume, sidecar or random name, waits in the album of its poster and template (the name's digit runs as #, the extension apart) posted within the window of the album's first file; the album closes a window after that span and is written as one release (source album, no file total) named by the members' shared numbers, a lone member as the release it was. The batch store writes an album's member names as release_texts kind 6 (member). A counter total of 100 or more under which one poster started 20 or more releases is a batch counter: those releases get no file total. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
219fe4fd4c
commit
4d0610ca06
7 files changed
+382
-24
No files matched your search
@@ -487,6 +487,45 @@ test.group('BatchStore', (group) => {
|
||||
assert.notEqual(rows[0].release_key, rows[1].release_key)
|
||||
})
|
||||
|
||||
test("an album's members stay findable by their own names (release_texts kind member)", async ({
|
||||
assert,
|
||||
}) => {
|
||||
const { rangeId, nodeId } = await rangeIn(GROUP, 1)
|
||||
// Two scans the TypeScript indexer puts under their subject; the Rust edge's album of them is the same chunk
|
||||
// with its name and source.
|
||||
const batch = batchOf(GROUP, 1, [
|
||||
...upload(10, 'Scan_001.dat', 1, 'Some Scans [1/2]', '2026-10-05T10:00:00Z'),
|
||||
...upload(20, 'Scan_002.dat', 1, 'Some Scans [2/2]', '2026-10-05T10:01:00Z'),
|
||||
])
|
||||
assert.lengthOf(batch.releases, 1)
|
||||
const album: ReleaseChunk = {
|
||||
...batch.releases[0],
|
||||
name: 'Scan_#.dat',
|
||||
source: 'album',
|
||||
fileTotal: null,
|
||||
}
|
||||
const stored = await BatchStore.store(rangeId, nodeId, { ...batch, releases: [album] })
|
||||
assert.include(stored, { releases: 1, newReleases: 1 })
|
||||
const release = await db.from('releases').firstOrFail()
|
||||
assert.include(release, {
|
||||
name: 'Scan_#.dat',
|
||||
source: 6,
|
||||
files: 2,
|
||||
file_total: null,
|
||||
complete: null,
|
||||
})
|
||||
assert.deepEqual(
|
||||
(
|
||||
await db.from('release_texts').where('release_id', release.id).orderBy(['kind', 'text'])
|
||||
).map((t) => [t.kind, t.text]),
|
||||
[
|
||||
[1, 'Scan_#.dat'],
|
||||
[6, 'Scan_001.dat'],
|
||||
[6, 'Scan_002.dat'],
|
||||
]
|
||||
)
|
||||
})
|
||||
|
||||
test('a small release of sidecars only is marked for the sidecar fold', async ({ assert }) => {
|
||||
await storeIn(GROUP, 1_000_000, [
|
||||
...upload(1_000_000, 'Murdoch Mysteries S8D1.nzb', 1, '[00/80]', '2026-10-05T10:00:00Z'),
|
||||
|
||||
Reference in new issue
Block a user