make_rootlist.py: секционный подзаголовок v2 — 2 строки с явными лейблами: 'N книг (все NEW / X NEW + Y cross-ref)' + 'RU-издание: ✅.. найдено · 🔶.. частично · ❌.. нет — EN-оригинал скачан: a/b — RU-перевод скачан: c/d — файлов: N (EN/RU/other)'. Xref-детект по карточке -xref.md (раньше не работал — все секции показывались 'all NEW' в метриках). RU-перевод скачан = NEW-items с ≥1 RU-файлом из найденных (✅+🔶); EN = NEW-items с ≥1 EN-файлом из всех NEW.
This commit is contained in:
parent
2432fa1180
commit
a6886652dd
2 changed files with 47 additions and 18 deletions
|
|
@ -8,7 +8,8 @@
|
|||
|
||||
## 1. Fundamentals
|
||||
|
||||
_55 items — ✅ 38 / 🔶 2 / ❌ 15 · файлов в секции: 118_
|
||||
_55 книг (все NEW)_
|
||||
_RU-издание: ✅ 38 найдено · 🔶 2 частично · ❌ 15 нет — EN-оригинал скачан: 45 из 55 — RU-перевод скачан: 26 из 40 — файлов: 118 (EN 67 / RU 42 / other 9)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -70,7 +71,8 @@ _55 items — ✅ 38 / 🔶 2 / ❌ 15 · файлов в секции: 118_
|
|||
|
||||
## 2. Dreams
|
||||
|
||||
_57 items — ✅ 23 / 🔶 5 / ❌ 29 · файлов в секции: 60_
|
||||
_57 книг (все NEW)_
|
||||
_RU-издание: ✅ 23 найдено · 🔶 5 частично · ❌ 29 нет — EN-оригинал скачан: 38 из 57 — RU-перевод скачан: 9 из 28 — файлов: 60 (EN 42 / RU 18 / other 0)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -134,7 +136,8 @@ _57 items — ✅ 23 / 🔶 5 / ❌ 29 · файлов в секции: 60_
|
|||
|
||||
## 3. Myths & Fairy Tales
|
||||
|
||||
_68 items — ✅ 40 / 🔶 0 / ❌ 28 · файлов в секции: 155_
|
||||
_68 книг (все NEW)_
|
||||
_RU-издание: ✅ 40 найдено · 🔶 0 частично · ❌ 28 нет — EN-оригинал скачан: 55 из 68 — RU-перевод скачан: 28 из 40 — файлов: 155 (EN 92 / RU 50 / other 13)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -209,7 +212,8 @@ _68 items — ✅ 40 / 🔶 0 / ❌ 28 · файлов в секции: 155_
|
|||
|
||||
## 4. Pictures
|
||||
|
||||
_39 items — ✅ 12 / 🔶 1 / ❌ 26 · файлов в секции: 43_
|
||||
_39 книг (все NEW)_
|
||||
_RU-издание: ✅ 12 найдено · 🔶 1 частично · ❌ 26 нет — EN-оригинал скачан: 21 из 39 — RU-перевод скачан: 8 из 13 — файлов: 43 (EN 28 / RU 14 / other 1)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -255,7 +259,8 @@ _39 items — ✅ 12 / 🔶 1 / ❌ 26 · файлов в секции: 43_
|
|||
|
||||
## 5. Ethnology & Psychology
|
||||
|
||||
_29 items — ✅ 17 / 🔶 0 / ❌ 12 · файлов в секции: 37_
|
||||
_29 книг (все NEW)_
|
||||
_RU-издание: ✅ 17 найдено · 🔶 0 частично · ❌ 12 нет — EN-оригинал скачан: 18 из 29 — RU-перевод скачан: 7 из 17 — файлов: 37 (EN 25 / RU 7 / other 5)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -291,7 +296,8 @@ _29 items — ✅ 17 / 🔶 0 / ❌ 12 · файлов в секции: 37_
|
|||
|
||||
## 6. Religion & Psychology
|
||||
|
||||
_28 items — ✅ 19 / 🔶 1 / ❌ 8 · файлов в секции: 40_
|
||||
_28 книг (все NEW)_
|
||||
_RU-издание: ✅ 19 найдено · 🔶 1 частично · ❌ 8 нет — EN-оригинал скачан: 15 из 28 — RU-перевод скачан: 12 из 20 — файлов: 40 (EN 22 / RU 12 / other 6)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -326,7 +332,8 @@ _28 items — ✅ 19 / 🔶 1 / ❌ 8 · файлов в секции: 40_
|
|||
|
||||
## 7. Theory of Complexes & the Association Experiment
|
||||
|
||||
_27 items — ✅ 4 / 🔶 0 / ❌ 23 · файлов в секции: 21_
|
||||
_27 книг (все NEW)_
|
||||
_RU-издание: ✅ 4 найдено · 🔶 0 частично · ❌ 23 нет — EN-оригинал скачан: 16 из 27 — RU-перевод скачан: 1 из 4 — файлов: 21 (EN 19 / RU 1 / other 1)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -360,7 +367,8 @@ _27 items — ✅ 4 / 🔶 0 / ❌ 23 · файлов в секции: 21_
|
|||
|
||||
## 8. Developmental Psychology
|
||||
|
||||
_48 items — ✅ 20 / 🔶 1 / ❌ 27 · файлов в секции: 44_
|
||||
_48 книг: 43 NEW + 5 cross-ref_
|
||||
_RU-издание: ✅ 15 найдено · 🔶 1 частично · ❌ 27 нет — EN-оригинал скачан: 30 из 43 — RU-перевод скачан: 13 из 16 — файлов: 44 (EN 30 / RU 13 / other 1)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -415,7 +423,8 @@ _48 items — ✅ 20 / 🔶 1 / ❌ 27 · файлов в секции: 44_
|
|||
|
||||
## 9. Comparison of Psychodynamic Concepts
|
||||
|
||||
_38 items — ✅ 22 / 🔶 1 / ❌ 15 · файлов в секции: 43_
|
||||
_38 книг: 20 NEW + 18 cross-ref_
|
||||
_RU-издание: ✅ 11 найдено · 🔶 1 частично · ❌ 8 нет — EN-оригинал скачан: 20 из 20 — RU-перевод скачан: 10 из 12 — файлов: 43 (EN 27 / RU 16 / other 0)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -460,7 +469,8 @@ _38 items — ✅ 22 / 🔶 1 / ❌ 15 · файлов в секции: 43_
|
|||
|
||||
## 10. Psychopathology & Psychiatry
|
||||
|
||||
_37 items — ✅ 5 / 🔶 0 / ❌ 27 · файлов в секции: 30_
|
||||
_37 книг: 32 NEW + 5 cross-ref_
|
||||
_RU-издание: ✅ 5 найдено · 🔶 0 частично · ❌ 27 нет — EN-оригинал скачан: 20 из 32 — RU-перевод скачан: 3 из 5 — файлов: 30 (EN 24 / RU 6 / other 0)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -504,7 +514,8 @@ _37 items — ✅ 5 / 🔶 0 / ❌ 27 · файлов в секции: 30_
|
|||
|
||||
## 11. The Individuation Process
|
||||
|
||||
_22 items — ✅ 6 / 🔶 1 / ❌ 0 · файлов в секции: 10_
|
||||
_22 книг: 7 NEW + 15 cross-ref_
|
||||
_RU-издание: ✅ 6 найдено · 🔶 1 частично · ❌ 0 нет — EN-оригинал скачан: 4 из 7 — RU-перевод скачан: 3 из 7 — файлов: 10 (EN 6 / RU 4 / other 0)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
@ -533,7 +544,8 @@ _22 items — ✅ 6 / 🔶 1 / ❌ 0 · файлов в секции: 10_
|
|||
|
||||
## 12. Practical Case
|
||||
|
||||
_35 items — ✅ 14 / 🔶 1 / ❌ 20 · файлов в секции: 35_
|
||||
_35 книг: 23 NEW + 12 cross-ref_
|
||||
_RU-издание: ✅ 6 найдено · 🔶 1 частично · ❌ 16 нет — EN-оригинал скачан: 17 из 23 — RU-перевод скачан: 7 из 7 — файлов: 35 (EN 27 / RU 7 / other 1)_
|
||||
|
||||
| # | Book | Author | RU edition | Files |
|
||||
|---|------|--------|------------|-------|
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ def parse_index(sec):
|
|||
m = re.match(r'^\|\s*(\d{2})\s*\|\s*([^|]*)\|\s*([^|]*)\s*\|\s*([^|]*)\s*\|\s*([^|]+?)\s*\|\s*([^|]+)\|', line)
|
||||
if m:
|
||||
num, grp, title, author, status, card = m.groups()
|
||||
is_xref = status.strip().startswith("xref")
|
||||
is_xref = status.strip().startswith("xref") or card.strip().endswith("-xref.md")
|
||||
em = re.search(r'[✅🔶❌⬜]', status)
|
||||
items[num] = dict(title=title.strip(), author=author.strip(),
|
||||
status=(em.group(0) if em else status.strip()),
|
||||
|
|
@ -206,15 +206,32 @@ def main():
|
|||
mf = manifs[sec]
|
||||
ddir = dldir(sec)
|
||||
n = int(sec[:2])
|
||||
dfiles_n = len([f for f in os.listdir(os.path.join(BASE, "downloads", ddir)) if f != "MANIFEST.md"])
|
||||
dfiles = [f for f in os.listdir(os.path.join(BASE, "downloads", ddir)) if f != "MANIFEST.md"]
|
||||
dfiles_n = len(dfiles)
|
||||
f_en = sum(1 for f in dfiles if "-en-" in f)
|
||||
f_ru = sum(1 for f in dfiles if "-ru-" in f)
|
||||
f_other = dfiles_n - f_en - f_ru
|
||||
stat = {e: 0 for e in "✅🔶❌"}
|
||||
for it in items.values():
|
||||
if it.get("is_xref"):
|
||||
continue # xref items are counted in their canonical section
|
||||
new_items = [it for it in items.values() if not it.get("is_xref")]
|
||||
for it in new_items:
|
||||
stat[it["status"]] = stat.get(it["status"], 0) + 1
|
||||
en_dl = ru_dl = 0
|
||||
for num, it in items.items():
|
||||
if it.get("is_xref"):
|
||||
continue
|
||||
fns = [f[0] for f in mf.get(num, {"files": []}).get("files", [])]
|
||||
if any("-en-" in f for f in fns): en_dl += 1
|
||||
if any("-ru-" in f for f in fns): ru_dl += 1
|
||||
xref_n = len(items) - len(new_items)
|
||||
comp = " (все NEW)" if xref_n == 0 else f": {len(new_items)} NEW + {xref_n} cross-ref"
|
||||
ru_found = stat["✅"] + stat["🔶"]
|
||||
ru_dl_s = f"{ru_dl} из {ru_found}" if ru_found else "—"
|
||||
out.append(f"## {n}. {name}")
|
||||
out.append("")
|
||||
out.append(f"_{len(items)} items — ✅ {stat.get('✅',0)} / 🔶 {stat.get('🔶',0)} / ❌ {stat.get('❌',0)} · файлов в секции: {dfiles_n}_")
|
||||
out.append(f"_{len(items)} книг{comp}_")
|
||||
out.append(f"_RU-издание: ✅ {stat['✅']} найдено · 🔶 {stat['🔶']} частично · ❌ {stat['❌']} нет — "
|
||||
f"EN-оригинал скачан: {en_dl} из {len(new_items)} — RU-перевод скачан: {ru_dl_s} — "
|
||||
f"файлов: {dfiles_n} (EN {f_en} / RU {f_ru} / other {f_other})_")
|
||||
out.append("")
|
||||
out.append("| # | Book | Author | RU edition | Files |")
|
||||
out.append("|---|------|--------|------------|-------|")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue