Names: stray quotes, single quotes, hosts, bracketed names; dates, repeats
Test and deploy / test (push) Successful in 50s
Test and deploy / edge (push) Successful in 2m8s
Test and deploy / deploy (push) Successful in 2m6s

From the first corpus sweep (183 ranges):
- A stray quote took the last quote pair ('"x.mp3" "Album_BY_WaRLoRD',
  '"x.nfo" " yEnc', '"x.nzb" yEnc"'): the last quoted part with an
  extension is the name. Each file was a release of its own.
- A single-quoted name at the end ("… [001/106] 'You, Me And Dupree.nfo'"),
  not the host before it (www.x2l.nl).
- Text ending in a host ("… www.libranews.nl") is no file name; a name in
  brackets comes first ("[01/77][LIBRATEAM_M2219009.par2]",
  "-^-[Mnozil Brass - Seven.nzb]-^-").
- A leading date is no item number ("09-30-2008_BAK_JRS.r00": a daily
  show's 32,621 files were one release under the poster's tag).
- The file name repeated elsewhere in the subject goes too
  ("(NELET11.par2) [01/58] - "NELET11.par2"").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Daan MeijerandClaude Opus 5.5 committed 2026-10-12 09:58:04 +02:00
1 parent 885e4e6541
commit 1a5035d988
6 files changed
+115 -11

No files matched your search

+6
View File
@@ -66,6 +66,12 @@ test.group('subject / parseSubject', () => {
['[03/21 Geroellheimer - S03E16.part01.rar" yEnc (1/50)', 'Geroellheimer - S03E16.part01.rar', 1, 50],
['<Group> FP -> {EXL01~P~004} -> Alexia (3) -> VF -> [0001 of 0076] -> Exclusive-tgirls_000000-lg.jpg (1/1)', 'Exclusive-tgirls_000000-lg.jpg', 1, 1],
["<abm> <Duke> here's a little thanksgiving present: AB: part2 0573-1002 043.jpg (1/1)", '043.jpg', 1, 1],
["xlady post You, Me And Dupree www.x2l.nl [001/106] 'You, Me And Dupree.nfo' (1/1)", 'You, Me And Dupree.nfo', 1, 1],
['[01/77][LIBRATEAM_M2219009.par2] Onbeperkt downloaden met een snelheid van 1,22 MB p.s. en dat voor maar 7,95 p.m. www.libranews.nl (1/1)', 'LIBRATEAM_M2219009.par2', 1, 1],
['patensas post -^-[Mnozil Brass - Seven.nzb]-^-www.usenet2day.cc -^-[000/107]-^-www.libranews.nl-^- yEnc (1/1)', 'Mnozil Brass - Seven.nzb', 1, 1],
['(01/26) "01 Time Machine (You Are The Master Of Time-Age).mp3" "Silicon Dream - Time Machine_BY_WaRLoRD```` yEnc (1/1)', '01 Time Machine (You Are The Master Of Time-Age).mp3', 1, 1],
['Bondage-xxx-DVDRIP-XviD_By_GARM (02/74) "Bondage-xxx-DVDRIP-XviD.nfo" " yEnc (1/1)', 'Bondage-xxx-DVDRIP-XviD.nfo', 1, 1],
['W44-K14-TheMan @ D4D.cc (sjappie45) Op [000/103] - "W44-K14-TheMan @ D4D.cc (sjappie45) Op.nzb" yEnc" (1/1)', 'W44-K14-TheMan @ D4D.cc (sjappie45) Op.nzb', 1, 1],
]
for (const [subject, name, segment, total, fileIndex] of cases) {
const parsed = parseSubject(subject)
+11
View File
@@ -276,6 +276,17 @@ test.group('release / par2 names', () => {
assert.notEqual(vlad('185', 77, 'P8250001.JPG').key, vlad('234', 77, 'P5300085.JPG').key)
})
test('a leading date numbers no item; a file name repeated in the subject goes everywhere', ({ assert }) => {
const id = (subject: string, name: string, poster = 'p') => releaseIdentity({ poster, subject, name, weak: false })!
const show = (n: string) => id(`#sterntuary - Jeff Rense Radio Program - "${n}" yEnc`, n, '#sterntuary <aa@aa.com>')
assert.equal(show('09-30-2008_BAK_JRS.nfo').key, show('09-30-2008_BAK_JRS.r00').key)
assert.notEqual(show('09-30-2008_BAK_JRS.r00').key, show('10-01-2008_BAK_JRS.r00').key)
const nelet = (n: string, i: number) => id(`(${n}) [${String(i).padStart(2, '0')}/58] - "${n}" yEnc`, n)
assert.equal(nelet('NELET11.par2', 1).key, nelet('NELET11.part01.rar', 2).key)
const wl = (n: string) => id(`(01/26) "${n}" "Silicon Dream - Time Machine_BY_WaRLoRD\`\`\`\` yEnc`, n)
assert.equal(wl('01 Time Machine.mp3').key, wl('02 Jimmy Dean Loved Marilyn.mp3').key)
})
test('hashed stems under a tag, volume numbers as extensions, scene tracks under a bare counter', ({ assert }) => {
const id = (subject: string, name: string) => releaseIdentity({ poster: 'p', subject, name, weak: false })!
const u4e = (n: string) => id(`Seit 1753 Tagen - usenet4ever.info - "${n}" yEnc`, n)