feat(tg): своя сессия Telethon — omni/tgsess.py + omni pump (глубина 200 постов вместо 20, 20 каналов -> 2832 поста, 2592 новых), CVE-ID в заголовке (471), tg_alive_audit из 856 сессий нашёл 121 живую; тесты 22
Some checks failed
ci / test (3.10) (push) Has been cancelled
ci / test (3.11) (push) Has been cancelled
ci / test (3.12) (push) Has been cancelled

This commit is contained in:
Vlad Gothbreach
2026-10-26 22:43:21 +03:00
parent 74d968ab2d
commit aa417d635b
7 changed files with 266 additions and 17 deletions

View File

@@ -24,7 +24,7 @@ python -m omni.bot
## Состояние на сейчас
- **источников: 869** в 11 категориях (662 базовых + 207 из реестра абузов + 19 Telegram-каналов, дубли вырезаны), **записей в базе: 7295** (251 с ценой, 120 прогонов), из них 3135 из реестра абузов и 374 из Telegram-каналов
- **источников: 869** в 11 категориях (662 базовых + 207 из реестра абузов + 19 Telegram-каналов, дубли вырезаны), **записей в базе: 9889** (421 с ценой, 120 прогонов), из них 3135 из реестра абузов и 2966 из Telegram (превью + своя сессия)
- **типы записей: 14** — каждая запись размечена по смыслу: новость 3693 · софт 516 · уязвимость 402 · релиз 361 · модель 331 · вопрос 265 · цена 205 · гайд 194 · датасет 126 · слив 90 · триал 41 · промо 34 · вакансия 21 · перепродажа 10
- **X/Twitter: 30 аккаунтов** читаются без API-ключей через `api.fxtwitter.com` (313 твитов в базе)
- вкладки панели: `Лента` · `Источники` · `Прогоны` · `Абузы`; полоса чипов «тип», фильтр «только с ценой», сортировка `score/fresh/price`, экспорт CSV
@@ -220,6 +220,28 @@ API: `GET /api/stats`, `GET /api/items?category=&q=&limit=&offset=`, `GET /api/s
Один прогон этих каналов: 324 поста, 0 пустых источников.
### Своя сессия: глубина вместо 20 постов
Веб-превью отдаёт ~20 последних постов. Свой аккаунт (Telethon) по тем же каналам
берёт 200: прогон 20 каналов дал **2832 поста, 2592 новых записи** (остальное дубли).
Каналы с выключенным превью тоже читаются, но пустые не оживают: у `leakbase`
и через сессию 4 поста — только инвайты.
Секретов в репозитории нет, всё через окружение:
```bash
export OMNI_TG_SESSION=/path/to/account # .session без расширения
export OMNI_TG_API_ID=... OMNI_TG_API_HASH=...
python -m omni pump thehackernews,cvefeed --limit 200 --apply
```
Без env команда честно говорит, что сессии нет, и парсер продолжает работать
на веб-превью. Аудит пула сессий — `tg_alive_audit.py`: из 856 файлов живыми
оказались 121 (остальные unauthorized/битые), их и берём.
Ещё по ходу: у CVE-каналов тело advisory без идентификатора в заголовке —
теперь `CVE-2026-97254 · Improper Neutralization...`, таких заголовков 471.
## X / Twitter без ключей
- `omni/providers/x.py` → `profile(handle)` тянет ленту через `api.fxtwitter.com/2/profile/<handle>/statuses`: полный текст, метрики (лайки, репосты, просмотры), дата, язык.