104 lines
5.2 KiB
Markdown
104 lines
5.2 KiB
Markdown
|
|
# 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.*
|