content audit sec01-06: fixes (audit_content.py + 12 file/card corrections)
- tools/audit_content.py: per-file vs item-title triage (SUSPECT/SMALL/NO-TEXT/NO-CYR) - sec01: .part removed; 10 files restored .pdf ext (LFS rename); #04/#19/#27 verify notes - sec02 #16: corrupted double-encoded txt -> clean flib fb2 b/844509; #17/#22 doc verified via catdoc - sec03 #11: -b epub = Spanish von Franz (Paidós 1983, forged EN OPF) -> bonus label - sec03 #42: КАРО 2012 'Irish Tales' = EN reader (not RU, not the listed book) -> bonus rename - sec03 #56: Onians b/c/d/e = Cambridge 24-87KB previews -> labeled - sec06 #18: filename 1981->1989 (Perera 'Descent to the Goddess' 1989; 1981 = other book) - sec06 #28: ia Zimmer OCR layer = foreign Devanagari text; images = RKP (p.100 verified) - sec04 #30: buksmart 2020 = RU/FR bilingual w/ VeryPDF watermarks -> note - linter: azw3/mobi ext + underscore in fname regex; manifest cross-check ignores off-disk rows; 8 legacy cards section-order fixed (CR before DL) - AGENTS.md: 'Content audit (2026-09-25)' lessons section - check-md: 0/219
This commit is contained in:
parent
85c41acd3c
commit
f5cb34195e
44 changed files with 20976 additions and 83 deletions
24
AGENTS.md
24
AGENTS.md
|
|
@ -531,6 +531,30 @@ sections/0N-<name>/ # one .md per BOOK (chapter-level list items are merged int
|
|||
queue bash (dual-queue downloads corrupt the cookie jar). AA (annas-archive.gl) = 403 bot-wall
|
||||
for anon downloads from this box; i2p not worth the router setup.
|
||||
|
||||
## Content audit (2026-09-25) — what the full-file vs item-title sweep found
|
||||
|
||||
Tool: `tools/audit_content.py <sec>...` (samples first/mid pages of every file, scores title
|
||||
overlap, flags SUSPECT/SMALL/NO-TEXT/NO-CYR). Ran on all sections 01–06 (sec05: fix the
|
||||
per-item header parse first — sec05 uses «— ✅» not «— N files»). Findings (commits
|
||||
`85c41ac` + follow-ups):
|
||||
1. **Mislinked whole files caught:** sec01 #29 RU fb2 = fantasy novel; sec01 #47 two review
|
||||
clippings (1950 «About Books»); sec03 #11 `-b` epub = Spanish von Franz (Paidós 1983) with
|
||||
forged EN OPF title; sec03 #42 «КАРО 2012» = English reader (Irish Tales), not the listed
|
||||
book and not a RU translation; sec02 #16 bosnak .txt = double-encoded mojibake (replaced by
|
||||
clean flib fb2 b/844509).
|
||||
2. **Foreign OCR layer (file OK, text layer wrong):** sec06 #28 ia Zimmer = all-Devanagari OCR
|
||||
(Lal Bahadur Shastri Academy stamp); images verified = RKP «Philosophies of India» (p.100
|
||||
«PART II Philosophies of Time»). Keep; the twin lg file is the clean copy.
|
||||
3. **Previews/fragments labeled as editions:** sec03 #56 Onians b/c/d/e = Cambridge 24–87 KB
|
||||
chapter previews (marked ПРЕВЬЮ in MANIFEST); sec01 #12 was a 23-pp PagePlace preview (→ full).
|
||||
4. **False positives to expect:** windows-1251/UTF-16/KOI8 fb2/txt (decoding, not corruption),
|
||||
image scans without OCR (NO-TEXT/NO-CYR — verify by rendering pages: pdftoppm/ddjvu +
|
||||
imagemagick), spaced-out OCR titles («T H C T F»), library stamps (Cornell/India/Claremont),
|
||||
VeryPDF watermark pages (sec04 #30 buksmart — watermark + FR part, legit 2020 ed.).
|
||||
5. **Bonus rule in practice:** different-but-related books stay as bonus files with
|
||||
`Бонус: ДРУГАЯ книга (...)` note, status unchanged; rename file to drop the false lang/year
|
||||
label. Same for wrong-year filename (sec06 #18 «1981» → 1989, Perera had two «Descent…» books).
|
||||
|
||||
## Catalog caching convention
|
||||
|
||||
Processed/scraper-unfriendly catalogs are cached under `data/catalogs/` (committed, with source
|
||||
|
|
|
|||
BIN
downloads/01-fundamentals/24-great-mother-en-princeton-2015.pdf.part
(Stored with Git LFS)
BIN
downloads/01-fundamentals/24-great-mother-en-princeton-2015.pdf.part
(Stored with Git LFS)
Binary file not shown.
BIN
downloads/01-fundamentals/29-jungs-map-of-soul-ru-2010.fb2
(Stored with Git LFS)
BIN
downloads/01-fundamentals/29-jungs-map-of-soul-ru-2010.fb2
(Stored with Git LFS)
Binary file not shown.
BIN
downloads/01-fundamentals/29-map-soul-ru-cogito-2010.pdf
(Stored with Git LFS)
Normal file
BIN
downloads/01-fundamentals/29-map-soul-ru-cogito-2010.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
|
|
@ -36,7 +36,7 @@
|
|||
| 04-cw9-archetypes-en-princeton-1980-b.pdf | 49 MB | lg f/92459383 (из sec04) | Princeton 2nd ed ✓ |
|
||||
| 04-cw9-archetypes-en-princeton-1977-a.pdf | 9 MB | lg f/100688964 (из sec04) | 2nd ed, R.F.C. Hull tr. ✓ |
|
||||
| 04-cw9-archetypes-en-princeton-1977-b.pdf | 10 MB | lg f/113262694 (из sec04) | 2nd ed ✓ |
|
||||
| 04-cw9-archetypes-ru-ast-2019.pdf | 5 MB | lg f/93867354 (из sec04) | АСТ 2019 |
|
||||
| 04-cw9-archetypes-ru-ast-2019.pdf | 5 MB | lg f/93867354 (из sec04) | АСТ 2019 (виз. 2026-09-25: p.12 «Архетипы коллективного бессознательного» ✓; в начале англ. Princeton-обложка) |
|
||||
| 04-cw9-archetypes-ru-ast-2020.pdf | 1 MB | lg f/94039510 (из sec04) | АСТ 2020 |
|
||||
|
||||
### 05 — Aion (CW 9/II), Chaps. I-IV — 2 files
|
||||
|
|
@ -139,7 +139,7 @@
|
|||
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 19-psychology-cg-jung-ru-praktika-1996.chm | 364 KB | lg f/3319346 | 19 — Психологическое учение К.Г. Юнга, Практика 1996 (Якоби) |
|
||||
| 19-psychology-cg-jung-ru-praktika-1996.chm | 364 KB | lg f/3319346 | 19 — Психологическое учение К.Г. Юнга (7z/7z-экстракшн 2026-09-25: лекции о Psyche/Seele, Psychologische Typen — контент ✓) |
|
||||
| 19-psychology-cg-jung-en-routledge-1942.pdf | 57.5 MB | lg f/98020440 | 19 — Jacobi, The Psychology of C.G. Jung (Routledge 1942) |
|
||||
|
||||
### 20 — Complex / Archetype / Symbol — 3 files
|
||||
|
|
@ -199,7 +199,7 @@
|
|||
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 27-jung-postjungians-ru.doc | 1.9 MB | lg f/92805478 | 27 — Самуэлс, Юнг и постъюнгианцы (doc) |
|
||||
| 27-jung-postjungians-ru.doc | 1.9 MB | lg f/92805478 | 27 — Самуэлс, Юнг и постъюнгианцы (catdoc 2026-09-25: «Эндрю Самуэлс, Юнг и постъюнгианцы» ✓) |
|
||||
| 27-jung-post-jungians-en-1985.pdf | 2.0 MB | lg f/91626916 | 27 — Samuels, Jung and the Post-Jungians (1985) |
|
||||
|
||||
### 28 — A Critical Dictionary of Jungian Analysis — 2 files
|
||||
|
|
@ -213,7 +213,7 @@
|
|||
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 29-jungs-map-of-soul-ru-2010.fb2 | 1.3 MB | lg f/2978758 | 29 — Стайн, Юнговская карта души, Когито 2010 |
|
||||
| 29-map-soul-ru-cogito-2010.pdf | 1.3 MB | flib b/565290 (rescue 2026-09-25: lg f/2978758 оказался чужим файлом — фэнтези «Шпага Рианона») | ✅ 256 pp, «ЮНГОВСКАЯ КАРТА ДУШИ» |
|
||||
| 29-map-soul-en-open-court-1998.pdf | 1.4 MB | lg f/114436024 | 29 — Hopcke, Jung's Map of the Soul (Open Court 1998) |
|
||||
|
||||
### 30 — The Symbolic Quest — 2 files
|
||||
|
|
|
|||
BIN
downloads/02-dreams/16-bosnak-ru-v-mire-snovideniy-1991.fb2
(Stored with Git LFS)
Normal file
BIN
downloads/02-dreams/16-bosnak-ru-v-mire-snovideniy-1991.fb2
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
downloads/02-dreams/16-bosnak-ru-v-mire-snovideniy-1991.txt
(Stored with Git LFS)
BIN
downloads/02-dreams/16-bosnak-ru-v-mire-snovideniy-1991.txt
(Stored with Git LFS)
Binary file not shown.
|
|
@ -91,13 +91,13 @@
|
|||
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 16-bosnak-ru-v-mire-snovideniy-1991.txt | 81 KB | flib b/642290 | 16 — В мире сновидений (Древо Жизни 1991; единственный формат = txt) |
|
||||
| 16-bosnak-ru-v-mire-snovideniy-1991.fb2 | 363 KB | flib b/844509 | 16 — В мире сновидений (1991); чистая fb2 (старый txt был двойной mojibake-коррупт, audit 2026-09-25) |
|
||||
|
||||
### 17 — Methods in Analytical Psychology (Chiron 1991, Chap. 8) — 1 file
|
||||
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 17-dieckmann-ru-metody-2001.doc | 1.1 MB | flib b/570955 (native doc) | 17 — Методы в аналитической психологии (2001; единственный формат = doc) |
|
||||
| 17-dieckmann-ru-metody-2001.doc | 1.1 MB | flib b/570955 (native doc) | 17 — Методы в аналитической психологии (2001; catdoc 2026-09-25: «Ханс Дикманн, МЕТОДЫ В АНАЛИТИЧЕСКОЙ ПСИХОЛОГИИ» ✓) |
|
||||
|
||||
### 18 — Jungian Psychotherapy (Wiley 1978, Chap. III «Dreams») — 1 file
|
||||
|
||||
|
|
@ -119,7 +119,7 @@
|
|||
|---|---|---|---|
|
||||
| 22-jungian-dream-interpretation-en-inner-city-1983.pdf | 899 KB | lg f/92651991 | 22 — Hall, Jungian Dream Interpretation (Inner City 1983, 128 pp) — 2026-09-21 |
|
||||
| 22-yungianskoe-tolkovanie-ru-1996.pdf | 1.1 MB | lg f/97660601 ed 141660793 (2026-09-25 rescue) | ✅ «Джеймс Холл, Юнгианское толкование сновидений. Практич. руководство, СПб: Б.С.К. 1996, 168 с.» (сжатый скан 54 стр., полный текст 41k слов) |
|
||||
| 22-yungianskoe-tolkovanie-ru-doc.doc | 1.1 MB | lg f/3319250 ed 3479391 (2026-09-25 rescue) | ✅ тот же текст (43k слов, полный) |
|
||||
| 22-yungianskoe-tolkovanie-ru-doc.doc | 1.1 MB | lg f/3319250 ed 3479391 (2026-09-25 rescue) | ✅ тот же текст (43k слов, полный; catdoc подтвердил RU-контент) |
|
||||
|
||||
### 24 — The Dream and the Underworld (Harper & Row 1979) — 1 file
|
||||
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@
|
|||
|---|---|---|---|
|
||||
| 11-motiv-iskupleniya-ru-2016.pdf | 32.7 MB | — | — |
|
||||
| 11-motiv-iskupleniya-ru-b.doc | 0.7 MB | — | — |
|
||||
| 11-redemption-motifs-en-b.epub | 0.1 MB | — | — |
|
||||
| 11-redemption-motifs-en-b.epub | 0.1 MB | — | Бонус: ДРУГАЯ книга (von Franz, Paidós 1983, исп.; OPF-заголовок подделан под EN) |
|
||||
| 11-redemption-motifs-en.epub | 0.2 MB | — | — |
|
||||
|
||||
### 16 — The Grail Legend (Princeton 1998) — 3 files
|
||||
|
|
@ -216,8 +216,8 @@ free-файл не найден (flib/libgen 0, verified 2026-09-25, sec06 sweep
|
|||
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 42-irlandskie-skazki-en-karo-2012-b.pdf | 0.9 MB | — | — |
|
||||
| 42-irlandskie-skazki-en-karo-2012.azw3 | 0.3 MB | — | — |
|
||||
| 42-jacobs-irish-tales-en-karo-2012-bonus.pdf | 0.9 MB | — | Бонус: ДРУГАЯ книга (Джейкобс, «Irish Tales», КАРО 2012, англ. текст) — не Celtic Fairy Tales; оригинал Leopard 1995 отсутствует |
|
||||
| 42-jacobs-irish-tales-en-karo-2012-bonus.azw3 | 0.3 MB | — | Бонус (тот же КАРО 2012) |
|
||||
|
||||
### 43 — Indian Fairy Tales (Jacobs) — 2 files (rescue 2026-09-25)
|
||||
|
||||
|
|
@ -290,10 +290,10 @@ free-файл не найден (flib/libgen 0, verified 2026-09-25, sec06 sweep
|
|||
|---|---|---|---|
|
||||
| 56-na-kolenyah-bogov-ru-1999.djvu | 11.1 MB | — | — |
|
||||
| 56-onians-origins-en-a.pdf | 10.3 MB | — | — |
|
||||
| 56-onians-origins-en-b.pdf | 0.1 MB | — | — |
|
||||
| 56-onians-origins-en-c.pdf | 0.0 MB | — | — |
|
||||
| 56-onians-origins-en-d.pdf | 0.0 MB | — | — |
|
||||
| 56-onians-origins-en-e.pdf | 0.1 MB | — | — |
|
||||
| 56-onians-origins-en-b.pdf | 0.1 MB | — | ПРЕВЬЮ (Cambridge, фрагмент) |
|
||||
| 56-onians-origins-en-c.pdf | 0.0 MB | — | ПРЕВЬЮ (Cambridge, Part I, ~24 KB) |
|
||||
| 56-onians-origins-en-d.pdf | 0.0 MB | — | ПРЕВЬЮ (Cambridge, Part II, ~24 KB) |
|
||||
| 56-onians-origins-en-e.pdf | 0.1 MB | — | ПРЕВЬЮ (Cambridge, TOC) |
|
||||
|
||||
### 60 — The Mother: Archetypal Image in Fairy Tales (Inner City 1988) — 3 files
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@
|
|||
|---|---|---|---|
|
||||
| 30-kandinsky-spiritual-ru-arhimed-1992.pdf | 2 MB | lg f/3418650 | scanned, rendered p1 ✓ |
|
||||
| 30-kandinsky-spiritual-en-floating-press-2008.pdf | 554 KB | lg f/91677950 | pdftext: Sadler tr., Floating Press 2008, complete (ends w/ Dalcroze passage) ✓ |
|
||||
| 30-kandinsky-spiritual-ru-buksmart-2020-t1.pdf | 146 MB | lg f/94051405 | trailer intact ✓ |
|
||||
| 30-kandinsky-spiritual-ru-buksmart-2020-t1.pdf | 146 MB | lg f/94051405 | trailer intact ✓; VeryPDF-водяные знаки (audit 2026-09-25) |
|
||||
| 30-kandinsky-spiritual-ru-buksmart-2020-t2.pdf | 154 MB | lg f/94051663 | trailer intact ✓ |
|
||||
|
||||
### 31 — The Tree Test — 1 file — 1 file (flagged), EN absent
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ RU: ПЛАТНО (castalia.ru PDF).
|
|||
### 18 — Descent to the Goddess (Perera) — 1 file
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 18-perera-descent-en-1981.epub | 296 KB | lg f/2867673 ed 3301655 | ✅ Inner City 1981, ISBN 0-919123-05-8 |
|
||||
| 18-perera-descent-to-goddess-en-1989.epub | 296 KB | lg f/2867673 ed 3301655 | ✅ Inner City, Descent to the Goddess (1989; в старом имени ошибочно 1981 — год другой книги Перера) |
|
||||
|
||||
RU: ПЛАТНО (castalia.ru PDF, Касталия 2024).
|
||||
|
||||
|
|
@ -158,7 +158,7 @@ EN: NOT FOUND (ia CDL; libgen 0; на ia есть open-скан ИСПАНСКО
|
|||
### 28 — Philosophies of India (Zimmer) — 2 files
|
||||
| file | size | source | verify |
|
||||
|---|---|---|---|
|
||||
| 28-zimmer-philosophies-en.pdf | 80 MB | ia philosophiesofindiazimmer_202003_922_e | ✅ 709 pp, RKP, Editor's Foreword |
|
||||
| 28-zimmer-philosophies-en.pdf | 80 MB | ia philosophiesofindiazimmer_202003_922_e | ✅ 709 pp; ⚠ OCR-слой чужого Devanagari-текста, изображения = RKP (проверено p.100 «PART II Philosophies of Time», audit 2026-09-25) |
|
||||
| 28-zimmer-philosophies-en-b.pdf | 32.5 MB | lg f/91845308 ed 136551982 | ✅ «HEINRICH ZIMMER PHILOSOPHIES OF INDIA, edited by Joseph Campbell, RKP» |
|
||||
|
||||
## Not downloadable (verified 2026-09-25)
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 12-ego-jungian-theory-en-preview.pdf | 303 KB | api.pageplace.de |
|
||||
| EN | 12-ego-jungian-theory-en-routledge-2016.pdf | 1.4 MB | lg f/94099546 ed 138892780 (rescue 2026-09-25, user) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| RU | 29-jungs-map-of-soul-ru-2010.fb2 | 1.3 MB | lg f/2978758 |
|
||||
| RU | 29-map-soul-ru-cogito-2010.pdf | 1.3 MB | flib b/565290 (2026-09-25: lg-файл был чужим — фэнтези; заменён) |
|
||||
| EN | 29-map-soul-en-open-court-1998.pdf | 1.4 MB | lg f/114436024 |
|
||||
|
||||
## Catalog records
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| RU | 16-bosnak-ru-v-mire-snovideniy-1991.txt | 81 KB | flib b/642290 |
|
||||
| RU | 16-bosnak-ru-v-mire-snovideniy-1991.fb2 | 363 KB | flib b/844509 |
|
||||
|
||||
## Catalog records
|
||||
|
||||
|
|
|
|||
|
|
@ -17,18 +17,18 @@
|
|||
|----------|-----------|------|-------|------------|------|
|
||||
| Понимание Сновидений | Касталия (М.) | 2020 | 372 | И. Ерзин (ред. А. Корнякова) | 978-5-521-15789-1 |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
РГБ 0 · МГУ 0 (verified 2026-09-21; = #38 «Понимание сновидений» М. Мэйтун, Касталия 2020 — малотиражное; данные: chitai-gorod/Castalia)
|
||||
```
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 39-understanding-dreams-en-1984.pdf | 11.5 MB | lg f/93921252 (2026-09-25 rescue; Mattoon, Spring 1984) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
РГБ 0 · МГУ 0 (verified 2026-09-21; = #38 «Понимание сновидений» М. Мэйтун, Касталия 2020 — малотиражное; данные: chitai-gorod/Castalia)
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
- Same book as item 38 (Mattoon, *Understanding Dreams*).
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ Legend: **✅** ISBN found; **⚠** published but no ISBN (not stated / new ed.
|
|||
| 13 | MDR | ⚠ | ✅ (sec01) | — | sec01: 1 pdf | sec01: 1 fb2 |
|
||||
| 14 | MHS ch. | ✅ 9780691216393 | 🔶 ch. in «Человек и его символы» | — | sec04: 4 pdf (полная MHS) | sec01: 2 fb2 |
|
||||
| 15 | The Living Symbol | ⚠ | ❌ | — | — (restricted) | — |
|
||||
| 16 | A Little Course in Dreams | ⚠ | ✅ | ✅ 5-02-017581-1 | — (restricted) | 1 txt (flib) |
|
||||
| 16 | A Little Course in Dreams | ⚠ | ✅ | ✅ 5-02-017581-1 | — (restricted) | 1 fb2 (flib) |
|
||||
| 17 | Methods in Analytical Psych. | ⚠ (DE) | ✅ | — | — (EN original absent) | 1 doc (flib) |
|
||||
| 18 | Jungian Psychotherapy | ✅ 9780429476365 | ❌ | — | 1 pdf (Maresfield 1990) | — |
|
||||
| 19 | Dreams (von Franz) | ⚠ | ❌ | — | 3 epub (Shambhala 1991/1998) | — |
|
||||
|
|
|
|||
|
|
@ -9,18 +9,18 @@
|
|||
|
||||
— нет (verified 2026-09-20, gate: MISSING.md §24)
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 24-myth-and-reality-en-1963.pdf | 2.5 MB | lg f/92483894 (2026-09-25 rescue; Harper & Row 1963, 217 pp, «World Perspectives vol. 31») |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
*Myth and Reality* (1963) — RSG 0 («Элиаде Миф» = только «Миф о вечном возвращении»), trade 0 (user: с таким названием не нашёл). Возможно, другое RU-название — открыт вопрос.
|
||||
|
|
|
|||
|
|
@ -9,18 +9,18 @@
|
|||
|
||||
— нет (verified 2026-09-20, gate: MISSING.md §30)
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 30-heroes-of-the-greeks-en-1959.pdf | 115 MB | ia heroes-of-the-greeks-carl-kerenyi (2026-09-25 rescue; «Myth and Man: The Heroes of the Greeks», Thames & Hudson, OCR) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
*The Heroes of the Greeks* — castalia 404, SearXNG 0, livelib Керени (168402) без неё, chitai-gorod author page без неё (user: не находится, 2026-09-20).
|
||||
|
|
|
|||
|
|
@ -15,8 +15,8 @@
|
|||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 42-irlandskie-skazki-en-karo-2012-b.pdf | 0.9 MB | — |
|
||||
| EN | 42-irlandskie-skazki-en-karo-2012.azw3 | 0.3 MB | — |
|
||||
| EN | 42-jacobs-irish-tales-en-karo-2012-bonus.pdf | 0.9 MB | — (бонус: ДРУГАЯ книга, Jacobs «Irish Tales» КАРО 2012, англ. текст) |
|
||||
| EN | 42-jacobs-irish-tales-en-karo-2012-bonus.azw3 | 0.3 MB | — (бонус, тот же КАРО 2012) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
|
|
@ -42,4 +42,4 @@ no records (verified 2026-09-20)
|
|||
- (was Verdict: **❌ RU-перевода нет** (проверено: RSL + MGU + libgen + alib + flibusta, оба написания 2026-09-20).
|
||||
Смежная находка: **«Ирландские сказки»** (КАРО 2012, 9785992507867) — сборник ирландских
|
||||
сказок Джейкобса в изд-ве КАРО, **английский текст** (книга для чтения), не перевод в RU.
|
||||
Скачано: 42-irlandskie-skazki-en-karo-2012.azw3 + -b.pdf (libgen 151275073).)
|
||||
Скачано: 42-jacobs-irish-tales-en-karo-2012-bonus.azw3 + -bonus.pdf (libgen 151275073; переименовано 2026-09-25: текст книги = английский, не перевод).)
|
||||
|
|
|
|||
|
|
@ -11,12 +11,6 @@
|
|||
|----------|-----------|------|-------|------------|------|
|
||||
| (see Verdict below) | | | | | |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|
|
@ -24,6 +18,12 @@ no records (verified 2026-09-20)
|
|||
| EN | 43-indian-fairy-tales-en-2004.epub | 3.4 MB | lg f/112792701 (2026-09-25 rescue; Project Gutenberg, ill.) |
|
||||
| EN | 43-indian-fairy-tales-en-se-2021.epub | 0.65 MB | lg f/113903507 (2026-09-25 rescue; Standard Ebooks 2021) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
*Indian Fairy Tales* (Jacobs) — св. #42.
|
||||
|
|
|
|||
|
|
@ -11,12 +11,6 @@
|
|||
|----------|-----------|------|-------|------------|------|
|
||||
| (see Verdict below) | | | | | |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|
|
@ -24,6 +18,12 @@ no records (verified 2026-09-20)
|
|||
| EN | — (cross-ref sec03: 41-jacobs-english-ft-en-1968.pdf) | — | sec03 file (dedup 2026-09-25: дубликат md5-идентичен) |
|
||||
| EN | 44-more-english-fairy-tales-en-abcclio-2002.pdf | 7.9 MB | lg f/91731102 (2026-09-25 rescue; ABC-CLIO 2002, серия Zipes) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
*More English Fairy Tales* (Jacobs) — св. #42.
|
||||
|
|
|
|||
|
|
@ -9,18 +9,18 @@
|
|||
|
||||
— нет (verified 2026-09-20, gate: MISSING.md §66)
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 66-homeric-gods-en-thames-hudson.pdf | 4.9 MB | ia 4448_20260112 (2026-09-25 rescue; Otto, Thames & Hudson, OCR) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
```
|
||||
no records (verified 2026-09-20)
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
Otto, *The Homeric Gods* (1954) — RSG 0, castalia 0, SearXNG 0. flib «Греческие боги» (2019, per. О. С. Ракитянская, 378 с.) = *The Greek Religion in Its Classical Period* (TOC-verified: I. Введение / II. Религия и миф доисторической древности / III. Образы олимпийских богов) — bonus find, NOT this book.
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
| EN | 09-eliade-hri-t2-en-1976.pdf | 44 MB | ia mircea-eliade-a-history-of-religious-ideas-volume-2 |
|
||||
| EN | 09-eliade-hri-t3-en-1988.epub | 0.9 MB | lg f/113631296 (t3, UCP 1988; rescue 2026-09-25) |
|
||||
| RU | 09-eliade-hri-t1-ru-2002.fb2 | 2.2 MB | flib b/122503 |
|
||||
| RU | 09-eliade-hri-t1-ru-2002-scan-фрагмент.pdf | 4.6 MB | flib b/640158 (⚠ фрагмент) |
|
||||
| RU | 09-eliade-hri-t1-ru-2002-scan-fragment.pdf | 4.6 MB | flib b/640158 (⚠ фрагмент) |
|
||||
| RU | 09-eliade-hri-t2-ru-2002.fb2 | 2.4 MB | flib b/860620 |
|
||||
| RU | 09-eliade-hri-t3-ru-2002.fb2 | 1.7 MB | flib b/123000 |
|
||||
|
||||
|
|
|
|||
|
|
@ -18,16 +18,16 @@
|
|||
| Путь Ра через Дуат. Толкование древнеегипетской «Амдуат» | Касталия (М.) | 2022 | | И. Ветринский | 978-5-521-18582-5 |
|
||||
| Путь Ра через Дуат. Толкование древнеегипетской Амдуат (PDF) | Касталия (castalia.ru) | | | | PDF |
|
||||
|
||||
## Catalog records
|
||||
|
||||
chitai-gorod: product 2929597 (Год 2022, Касталия, пер. Ветринский И., ISBN 978-5-521-18582-5)
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 13-schweizer-sungod-en.pdf | 15 MB | lg f/93205766 (key-vs-f_id rescue 2026-09-25; 247 pp, Cornell 2010) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
chitai-gorod: product 2929597 (Год 2022, Касталия, пер. Ветринский И., ISBN 978-5-521-18582-5)
|
||||
|
||||
## Notes
|
||||
|
||||
- **RESCUE (2026-09-24, user oracle):** chitai-gorod 2929597 + OZON 647372588 + castalia.ru
|
||||
|
|
|
|||
|
|
@ -17,17 +17,17 @@
|
|||
|----------|-----------|------|-------|------------|------|
|
||||
| Бог и бессознательное. Трансформация богообраза. Комментарии к книге Юнга «Ответ Иову» | Клуб Касталия (М.) | 2016 | 386 | — | — (nikbook: «под заказ», твёрдый переплёт) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
livelib: book 1002608123 (Клуб Касталия, 2016, 386 стр., 18+)
|
||||
nikbook: product/edinger-ef-bog-i-bessoznatelnoe-...
|
||||
|
||||
## Downloads
|
||||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| EN | 17-edinger-god-image-en.epub | 544 KB | lg f/91722137 (key-vs-f_id rescue 2026-09-25; scan-epub, Inner Light 1992) |
|
||||
|
||||
## Catalog records
|
||||
|
||||
livelib: book 1002608123 (Клуб Касталия, 2016, 386 стр., 18+)
|
||||
nikbook: product/edinger-ef-bog-i-bessoznatelnoe-...
|
||||
|
||||
## Notes
|
||||
|
||||
- **RESCUE (2026-09-24, user oracle):** nikbook + livelib 1002608123.
|
||||
|
|
|
|||
|
|
@ -27,4 +27,4 @@ esxatos.com/perera-nishozhdenie-k-bogine: «Касталия», 2024, 168 с., I
|
|||
- Другое RU изд. Перера: «Комплекс козла отпущения» (Класс 2009, 978-5-86375-164-1).
|
||||
- Двойник A.3=B консолидирован сюда.
|
||||
|
||||
Downloads (2026-09-25): EN 1 epub (lg f/2867673, Inner City 1981). RU: paid (castalia PDF). MANIFEST: ../../downloads/06-religion/MANIFEST.md
|
||||
Downloads (2026-09-25): EN 1 epub (lg f/2867673, Inner City 1989 — «Descent to the Goddess»; в старом имени файла ошибочно 1981). RU: paid (castalia PDF). MANIFEST: ../../downloads/06-religion/MANIFEST.md
|
||||
|
|
|
|||
|
|
@ -21,7 +21,9 @@
|
|||
|
||||
| lang | file | size | source |
|
||||
|------|------|------|--------|
|
||||
| RU | (запланировано download-фаза) | 1060K | flib b/426514 (fb2+epub+mobi) |
|
||||
| EN | 27-suzuki-zen-en-1949.pdf | 56 MB | ia anintroductiontozenbuddhism (изд. 1964) |
|
||||
| EN | 27-suzuki-zen-en-b.epub | 185 KB | lg f/93890296 ed 138700015 |
|
||||
| RU | 27-suzuki-zen-ru-1991.fb2 | 1.9 MB | flib b/426514 |
|
||||
|
||||
## Catalog records
|
||||
|
||||
|
|
|
|||
103
tools/audit_content.py
Normal file
103
tools/audit_content.py
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
#!/usr/bin/env python3
|
||||
"""audit_content.py — content-triage of ALL downloaded files vs their item title.
|
||||
|
||||
For each file NN-... in downloads/0N-*/: expected title = per-item header
|
||||
'### NN — <title>' of that section's MANIFEST. Extract a text sample
|
||||
(pdf pdftotext -l 3 / fb2 body / epub first xhtml / djvu djvutxt / doc strings)
|
||||
and score title-token overlap. Flags: SUSPECT (0 overlap), SMALL, NO-TEXT.
|
||||
RU files (name contains '-ru') get a light check (Cyrillic present, non-empty).
|
||||
Run: python3 tools/audit_content.py [sec] (sec = 01..06, default all)
|
||||
"""
|
||||
import os, re, sys, subprocess, json, html
|
||||
|
||||
BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
DL = os.path.join(BASE, 'downloads')
|
||||
STOP = {'the','and','for','with','from','into','upon','about','its','his','her','vol','vols','chaps','ch','part','study','essays','essay','selected','works','collected','complete','book','pages','original','edition','second','first'}
|
||||
|
||||
def tokens(title):
|
||||
t = re.sub(r'\(.*?\)', ' ', title)
|
||||
t = re.sub(r'[^a-zа-яё0-9 ]', '', t.lower())
|
||||
return [w for w in t.split() if len(w) >= 4 and w not in STOP]
|
||||
|
||||
def item_titles(sec_dir):
|
||||
mf = os.path.join(DL, sec_dir, 'MANIFEST.md')
|
||||
t = open(mf, encoding='utf8').read()
|
||||
part = t.split('## Not downloadable')[0]
|
||||
out = {}
|
||||
for m in re.finditer(r'^### (\d+) — (.+?) — (.+)$', part, re.M):
|
||||
out[m.group(1)] = m.group(2).strip()
|
||||
# items with '0 files' headers too (no local files, skip)
|
||||
return out
|
||||
|
||||
def sample(path):
|
||||
ext = path.rsplit('.', 1)[-1].lower()
|
||||
try:
|
||||
if ext == 'pdf':
|
||||
r = subprocess.run(['pdftotext', '-l', '3', path, '-'], capture_output=True, timeout=120)
|
||||
txt = r.stdout.decode('utf8', errors='ignore')
|
||||
if not txt.strip():
|
||||
r = subprocess.run(['pdftotext', path, '-'], capture_output=True, timeout=300)
|
||||
txt = r.stdout.decode('utf8', errors='ignore')[:3000]
|
||||
return txt[:3000]
|
||||
if ext == 'fb2':
|
||||
raw = open(path, encoding='utf8', errors='ignore').read()
|
||||
body = re.search(r'<body>(.*)', raw, re.S)
|
||||
txt = re.sub(r'<[^>]+>', ' ', body.group(1) if body else raw[:50000])
|
||||
return re.sub(r'\s+', ' ', txt)[:3000]
|
||||
if ext == 'epub':
|
||||
import zipfile
|
||||
z = zipfile.ZipFile(path)
|
||||
names = [n for n in z.namelist() if re.search(r'\.(x?html?|htm)$', n) and 'nav' not in n.lower()]
|
||||
txt = ''
|
||||
for n in names[:8]:
|
||||
txt += z.read(n).decode('utf8', errors='ignore')
|
||||
if len(txt) > 4000: break
|
||||
return re.sub(r'<[^>]+>', ' ', txt)[:3000]
|
||||
if ext == 'djvu':
|
||||
r = subprocess.run(['djvutxt', path, '-'], capture_output=True, timeout=300)
|
||||
txt = r.stdout.decode('utf8', errors='ignore')
|
||||
return txt[:3000]
|
||||
if ext in ('doc', 'txt', 'html', 'mobi'):
|
||||
r = subprocess.run(['strings', '-n', '6', path], capture_output=True, timeout=60)
|
||||
return r.stdout.decode('utf8', errors='ignore')[:3000]
|
||||
except Exception as e:
|
||||
return f"__ERR__ {e}"
|
||||
return ''
|
||||
|
||||
def main():
|
||||
secs = sys.argv[1:] or sorted(d for d in os.listdir(DL) if re.match(r'^0\d-', d))
|
||||
results = []
|
||||
for sec in secs:
|
||||
titles = item_titles(sec)
|
||||
files = [f for f in os.listdir(os.path.join(DL, sec)) if f != 'MANIFEST.md' and re.match(r'^\d\d-', f)]
|
||||
for f in sorted(files):
|
||||
num = f[:2]
|
||||
title = titles.get(num, '')
|
||||
if not title:
|
||||
results.append((sec, f, 'NO-TITLE', 0, 0, ''))
|
||||
continue
|
||||
tok = tokens(title)
|
||||
is_ru = '-ru' in f or re.search(r'-(t\d-ru|ru-)', f)
|
||||
size = os.path.getsize(os.path.join(DL, sec, f))
|
||||
s = sample(os.path.join(DL, sec, f))
|
||||
low = s.lower()
|
||||
hits = sum(1 for w in tok if w in low) if tok else 0
|
||||
score = hits / len(tok) if tok else 0
|
||||
flags = []
|
||||
if s.startswith('__ERR__'):
|
||||
flags.append('ERR')
|
||||
elif is_ru:
|
||||
if not re.search(r'[а-яё]', s): flags.append('NO-CYR')
|
||||
else:
|
||||
if not s.strip(): flags.append('NO-TEXT')
|
||||
elif score == 0 and tok: flags.append('SUSPECT')
|
||||
if size < 200000 and f.endswith('.pdf'): flags.append('SMALL')
|
||||
if size < 80000 and not f.endswith('.pdf'): flags.append('SMALL')
|
||||
if flags:
|
||||
results.append((sec, f, ','.join(flags), round(score, 2), size, s[:150].replace('\n', ' ')))
|
||||
for sec, f, fl, sc, sz, snip in results:
|
||||
print(f"{sec}/{f}\t{fl}\tscore={sc}\t{sz}\t{snip[:80]}")
|
||||
print(f"\nTOTAL flagged: {len(results)}", file=sys.stderr)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
@ -63,9 +63,9 @@ def lint_card(path, manifest_files):
|
|||
# Downloads table cross-check
|
||||
dm = re.search(r'^## Downloads\n(.*?)(?=^## |\Z)', c, re.M | re.S)
|
||||
if dm:
|
||||
rows = re.findall(r'^\|\s*(EN|RU\??|\?)\s*\|\s*([0-9]{2}-[a-zA-Z0-9\.\-]+)\s*\|', dm.group(1), re.M)
|
||||
rows = re.findall(r'^\|\s*(EN|RU\??|\?)\s*\|\s*([0-9]{2}-[a-zA-Z0-9_\.\-]+)\s*\|', dm.group(1), re.M)
|
||||
disk = set(os.path.basename(f) for f in glob.glob(f"downloads/{sec_of(path)}/*"))
|
||||
manifest = set(f for f, _, _ in manifest_files.get(num, []))
|
||||
manifest = set(f for f, _, _ in manifest_files.get(num, []) if f in disk) # skip legacy/renamed rows
|
||||
for lang, fname in rows:
|
||||
if fname not in disk:
|
||||
issues.append(f'Downloads file not on disk: {fname}')
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ def parse_manifest_files(manifest_path):
|
|||
if not os.path.exists(manifest_path):
|
||||
return items
|
||||
c = open(manifest_path, encoding='utf-8').read()
|
||||
fname_re = r'([0-9]{2}-[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9]+)*\.(?:pdf|fb2|epub|doc|docx|chm|djvu|txt|zip))'
|
||||
fname_re = r'([0-9]{2}-[a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9]+)*\.(?:pdf|fb2|epub|doc|docx|chm|djvu|txt|zip|mobi|azw3))'
|
||||
# sec01/02: table rows | file | size | source | note |
|
||||
for m in re.finditer(r'^\|\s*' + fname_re + r'\s*\|\s*([^|]+)\|\s*([^|]+)\|', c, re.M):
|
||||
f, size, src = m.group(1), m.group(2).strip(), m.group(3).strip()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue