Single-archive rules: stub archives and nonsense pieces dropped at the edge
The judge gets each file's articles seen and bytes, and whether the window closed on the release. A settled release of one unsplit archive posted to 2+ groups is dropped as a stub archive when its articles are <= 256 KiB with the release >= 1 MB, or it is in 4+ groups, or by a webmail poster (those two under 100 MB); releases touching music, e-book, comics, tabs or fonts groups are exempt. A one-article archive of 100 kB-1 MB under a release-like, unscrambled name without spaces or an e-book format is dropped as a nonsense piece. Both switched by the rule set (dropStubArchives, dropNonsensePieces), mirrored in lib/rules, sampled like every drop (LOG.md (123)-(127)). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
2f1bbf2538
commit
e470e231d0
8 files changed
+397
-15
No files matched your search
+14
-2
@@ -1423,9 +1423,21 @@ impl RangeIndexer {
|
||||
fn write(&mut self, key: &str, upload: usize, list: Vec<Vec<Seg>>, finished: bool, edge: bool, album: Option<String>) {
|
||||
let judged: Vec<JudgedFile> = list
|
||||
.iter()
|
||||
.map(|f| JudgedFile { name: &f[0].file.name, total_parts: f[0].file.total_parts, groups: &f[0].file.groups, first_message_id: &f[0].message_id, poster: &f[0].file.poster })
|
||||
.map(|f| JudgedFile {
|
||||
name: &f[0].file.name,
|
||||
total_parts: f[0].file.total_parts,
|
||||
groups: &f[0].file.groups,
|
||||
first_message_id: &f[0].message_id,
|
||||
poster: &f[0].file.poster,
|
||||
segments: f.len() as u32,
|
||||
bytes: f.iter().map(|s| s.bytes.max(0) as u64).sum(),
|
||||
})
|
||||
.collect();
|
||||
match names::judge(key, &judged, &self.rules) {
|
||||
// Settled for the single-archive rules: the window closed on it (a par2 can still join an open one). The
|
||||
// start edge (posted within the window of the block's start) doesn't count: a par2 comes after its rar, so
|
||||
// one in the previous block is rare (0 par2 siblings of 3,000 catalog hits, LOG.md (125)), and 7% of the
|
||||
// catalog's releases are start edges, which would escape the rule.
|
||||
match names::judge(key, &judged, finished, &self.rules) {
|
||||
Verdict::Keep => {
|
||||
let candidates = candidates_of(key, &list, upload);
|
||||
let mut chunk = chunk_of(key, &list, upload);
|
||||
|
||||
Reference in new issue
Block a user