A date alone isn't an unquoted name; an image under a post token keys by the post
Test and deploy / test (push) Successful in 54s
Test and deploy / edge (push) Successful in 2m12s
Test and deploy / deploy (push) Successful in 3m28s

- "Ballers.2014.S01E01.HDTV.x264-KILLERS[ettv] 15_07_2015.rar", "Computer Bild
  - Ausgabe 152015 - 15_07_2015.rar": the cut after "] " or " - " left
  "15_07_2015.rar" for every item of a Razor1911 dump (1,335 files for 12);
  a date alone after the cut means the whole text is the name.
- "MDG005b - (01/90) "IMG_2307.JPG"": a counter in parentheses makes no post
  key, so every "IMG" set of the poster was one (609 for 90); an image under
  a post token is keyed by it too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Daan MeijerandClaude Opus 5.5 committed 2026-10-13 09:03:23 +02:00
1 parent 590436d02a
commit 229189f35c
6 files changed
+39 -4

No files matched your search

+6 -1
View File
@@ -843,7 +843,9 @@ pub fn release_identity(poster: &str, subject: &str, name: &str) -> Release {
// Keyed by its set when its name has one ("diana-040-001.jpg").
let name = if prefix.is_empty() { stem.clone() } else { prefix.clone() };
let set = image_set(&stem);
let key = if set.is_empty() { hash(&["stem", poster, &name]) } else { hash(&["stem", poster, &set]) };
let set = if set.is_empty() { name.clone() } else { set };
// Under a post token ("MDG005b - (01/90) "IMG_2307.JPG""): the post's too.
let key = if is_post_token(&remainder) { hash(&["stem", poster, &set, &remainder]) } else { hash(&["stem", poster, &set]) };
return Release { key, name, source: "stem", file_total };
}
// An audiobook's or album's tracks without a name around them: by their name without its numbers.
@@ -1537,6 +1539,9 @@ mod image_set_tests {
lois("02", "lois 1258 Billy Joel - Extremes.part01.rar lois 1258 Billy Joel - Extremes ").key,
lois("01", "lois 1258 Billy Joel - Extremes.par2 lois 1258 Billy Joel - Extremes ").key
);
let mdg = |post: &str, i: &str, n: &str| super::release_identity("p", &format!(r#"{post} - ({i}/90) "{n}" - 16,14 MB - yEnc"#), n);
assert_eq!(mdg("MDG005b", "01", "IMG_2307.JPG").key, mdg("MDG005b", "02", "IMG_2308.jpg").key);
assert_ne!(mdg("MDG005b", "01", "IMG_2307.JPG").key, mdg("MDG006a", "01", "IMG_4410.JPG").key);
let milf = |i: &str, n: &str, kb: &str| super::release_identity("p", &format!("(Hot MILF getting banged hard)[{i}/70] - {n} - {kb}"), n);
assert_eq!(milf("27", "2407.jpg", "28").key, milf("28", "2408.jpg", "31").key);
assert_eq!(super::file_stem_re("rld-gtre.r13.002"), "rld-gtre");