initial: tubev infrastructure docs
- CLAUDE.md lean entry-point + index - BOT_WORKFLOW.md dispatch rules + no-make-work + recommendations cadence - SITES.md 14 ports inventory - SYNC_WORKFLOW.md 2 sync paradigms - MODULES.md module map + DEL_/test/obfuscated flags - REFACTOR_RULES.md REFACTOR vs CLEANUP vs BUG vs FEATURE - RECOMMENDATIONS.md initial backlog from gocc1+2+3+4 audits 2026-04-30 - docs/roles/ 4 bot roles
This commit is contained in:
103
docs/MODULES.md
Normal file
103
docs/MODULES.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# tubev — Modules Map
|
||||
|
||||
Модулі = `views/modules/*.etlua` partials що включаються через `<%= include … %>` у layout/page templates.
|
||||
|
||||
## Канонічні модулі (присутні скрізь або майже)
|
||||
|
||||
| Module | Sites Present | Reuse signal | Notes |
|
||||
|--------|--------------:|--------------|-------|
|
||||
| `video.etlua` | 14/14 | ❌ всі md5 різні (67-77% common lines) | **Top SSOT candidate** — найвища similarity, зберігає однакову data-loop структуру |
|
||||
| `related_video.etlua` | 13/14 (no 8148) | ❌ всі md5 різні | structurally similar, candidates for shared partial |
|
||||
| `recommended_video.etlua` | 13/14 (no 8148) | ❌ | те саме |
|
||||
| `relink_videos.etlua` | 13/14 (no 8148) | ❌ | те саме |
|
||||
| `cat_list_alpha.etlua` | 13/14 (no 8129) | mixed | |
|
||||
| `cat_list_thumb.etlua` | 12/14 | ❌ всі md5 різні | + 5 варіантів з пробілами/"with ads" — потребує нормалізації |
|
||||
| `lang.etlua` | 12/14 (no 8081, 8129, 8148) | 9 unique md5, 2 ідентичні | i18n switcher |
|
||||
| `pager.etlua` | 10/14 | ✅ **3 unique md5, 7 ідентичні** | **Shared candidate** — вже фактично shared |
|
||||
| `removed_notify.etlua` | 10/14 | ✅ **4 unique md5, 6 ідентичні** | **Shared candidate** — вже фактично shared |
|
||||
| `paginator.etlua` | 10/14 | ❌ всі різні | + `paginator_old.etlua`, `paginator_ajax.etlua` варіанти |
|
||||
| `donors.etlua` | 12/14 | ❌ всі md5 різні | |
|
||||
|
||||
## Site-specific (тільки на 1 сайті)
|
||||
|
||||
| Module | Site | Why |
|
||||
|--------|------|-----|
|
||||
| `profile_index.etlua` | 8081 | NL agego SPA-like, профілі користувачів — окрема архітектура |
|
||||
| `profile_public.etlua` | 8081 | те саме |
|
||||
| `profile_upload.etlua` | 8081 | те саме |
|
||||
| `channel_list_thumb.etlua` | 8081 | unique to 8081 |
|
||||
| `_cat_list_thumb.etlua` | 8081 | underscore-prefix variant |
|
||||
| `related_top_channels.etlua` | 8081 | |
|
||||
| `ga/ga.etlua` | 8081, 8112 | Google Analytics module |
|
||||
|
||||
## DEL_* tombstones (24 файли × 6 сайтів)
|
||||
|
||||
**Видалити при першій нагоді (XS task, ~15 хв).** Префікс `DEL_` явно signals tombstone, але файли досі живуть і шумлять у grep.
|
||||
|
||||
| Module | Sites |
|
||||
|--------|-------|
|
||||
| `DEL_channel_id.etlua` | 8100, 8102, 8107, 8112, 8131, 8133 |
|
||||
| `DEL_friend_list.etlua` | 8100, 8102, 8107, 8112, 8131, 8133 |
|
||||
| `DEL_lang.etlua` | 8100, 8102, 8107, 8112, 8131, 8133 |
|
||||
| `DEL_lang_mob.etlua` | 8100, 8102, 8107, 8112, 8131, 8133 |
|
||||
|
||||
Деталі: **[RECOMMENDATIONS.md](RECOMMENDATIONS.md)** #2.
|
||||
|
||||
## `_test.etlua` / .test.js (sandbox у prod tree)
|
||||
|
||||
Tests не повинні жити у prod. Перенести у `/tests/` або видалити.
|
||||
|
||||
| File | Sites |
|
||||
|------|-------|
|
||||
| `cat_list_thumb_test.etlua` | 8084, 8085 |
|
||||
| `cat_index_test.etlua` | 8084, 8085 |
|
||||
| `main_list_test.etlua` | 8084, 8085 |
|
||||
| `video_test.etlua` | 8084, 8085 |
|
||||
| `counters.min.test.js` | 8133 |
|
||||
|
||||
## Backup-via-rename артефакти (~30 файлів)
|
||||
|
||||
**Видалити при першій нагоді (S task, ~1h).** Файлові імена з пробілами ламають shell scripts. Версії повинні бути у git, не у filename.
|
||||
|
||||
| Pattern | Examples | Sites |
|
||||
|---------|----------|-------|
|
||||
| `header copy bongo link 25_10_22.etlua` | (один з typo `bogolink` на 8112) | 8084, 8085, 8112, 8126, 8131 |
|
||||
| `* copy_ads_actual.etlua` | `id_index copy_ads_actual.etlua` | 8084, 8085 |
|
||||
| `* copy.etlua/.js` | `my copy.js`, `machine copy.js` | 8 sites |
|
||||
| `* with ads.etlua` / `* without ads.etlua` | `cat_list_thumb with ads.etlua` | 8112 (10 файлів) |
|
||||
| `* with titles.etlua` | | 8100 (5 файлів) |
|
||||
| `untitled file` | IDE saved-no-name | 8126 (×2) |
|
||||
| `*_old/`, `*_bak*` | `js_old/`, `img_old/`, `paginator_old.etlua`, `layout_bak_25-05-18.etlua` | 8085 (dirs), 8086, 8100 |
|
||||
| `asdadsasd.html`, `del___search_top.etlua` | obvious garbage | 8086 |
|
||||
|
||||
## Obfuscated JS (10 файлів — потребує origin audit)
|
||||
|
||||
**Random naming підозріло на adblock-bypass scripts.** Не у sync.sh. Походження невідоме.
|
||||
|
||||
| File | Site |
|
||||
|------|------|
|
||||
| `9qFdXQ7.js` | 8131 |
|
||||
| `gD0A3.js` | 8131 |
|
||||
| `PxqbeCb.js` | 8131 |
|
||||
| `gk5LT.js` | 8107 |
|
||||
| `f4T4s.js` | 8126 |
|
||||
| `aOKM9.js` | 8085 |
|
||||
| `N7Ym4F.js` | 8084 |
|
||||
| `k3KL5.js` | 8102 |
|
||||
| `qDap9.js` | 8112 |
|
||||
| `c24c4cd9.js` | (неідентифіковано) |
|
||||
| `popa.js`, `mo.js` | (неідентифіковано) |
|
||||
|
||||
**Питання до розробника:** ваші adblock-bypass payloads, legacy ad scripts, чи невідомий drop?
|
||||
|
||||
## Banners модулі
|
||||
|
||||
`views/modules/banners/` — окрема зона з ~30+ файлів native_adspy variants, embed_*adspy classes. Site-specific. Map поки не побудовано (P4 doc).
|
||||
|
||||
## Refactor candidate: shared base partial
|
||||
|
||||
`video.etlua` — найкращий кандидат на extraction до shared partial з per-site CSS theme overrides. Деталі: **[RECOMMENDATIONS.md](RECOMMENDATIONS.md)** #4.
|
||||
|
||||
---
|
||||
|
||||
*Source: gocc2 + gocc3 + gocc4 audits 2026-04-30.*
|
||||
Reference in New Issue
Block a user