mirror of
https://gitverse.ru/kpa39l/icq.git
synced 2026-09-29 09:55:11 +00:00
docs: опыт 2026-08-29 — грабли mod_privilege на 0.11, миллион приглашений, flood wait, план сборки Prosody 0.12 (WALKTHROUGH §12.7-12.8, STATUS, BRIDGE-TELEGRAM)
This commit is contained in:
@@ -565,6 +565,48 @@ docker exec icq-prosody prosodyctl list 2>/dev/null # зарегистриро
|
||||
- **Аватары** могут не подтягиваться (URL-загрузка web.telegram.org не ходит через SOCKS5) —
|
||||
это отдельная задача в STATUS.md; на приём сообщений не влияет.
|
||||
|
||||
### 12.7 Засады 2026-08-29 (после регистрации estorozhenko@nixg.ru)
|
||||
- **mod_privilege (XEP-0356) ломает Prosody 0.11.9**: community-модуль из prosody-modules
|
||||
рассчитан на 0.12 и вызывает `module:send_iq()` (API 0.12), которого в 0.11 нет →
|
||||
traceback `attempt to call method 'send_iq' (a nil value)` при каждом privileged IQ.
|
||||
Последствия: слайдж висит на IqTimeout при создании MDS-узла / записи bookmarks,
|
||||
после рестартов контакты TG пропадали из ростера (на сервере рostер цел, клиент
|
||||
просто не получал push).
|
||||
- **Фикс (0.11-совместимый стаб)**: в `/opt/icq/modules/mod_privilege.lua` вызов
|
||||
`module:send_iq(wrapped_iq, newsession):next(...)` заменён на стаб-ACK — модуль
|
||||
отвечает слайджу `st.reply(stanza)` (ACK) и НЕ пересылает IQ от имени юзера.
|
||||
Prosody перестаёт падать, слайдж не перезапускается в цикле. Цена: bookmarks/MDS
|
||||
через XEP-0356 не работают, слайдж шлёт приглашения в группы вручную.
|
||||
Коммит: 770c9fa.
|
||||
- **«Миллион запросов на подключение к чату» в Pidgin** — следствие двух вещей:
|
||||
1) `always_invite_when_adding_bookmarks: true` в preferences пользователя
|
||||
(slidge шлёт gateway-приглашение на КАЖДУЮ группу при добавлении закладки);
|
||||
2) bookmarks не записываются (mod_privilege сломан) → слайдж падает в fallback
|
||||
и шлёт приглашения вручную на каждый чат.
|
||||
Временное решение: смириться до апгрейда на 0.12 (там XEP-0356 нативный);
|
||||
альтернатива — `always_invite_when_adding_bookmarks: false` в preferences
|
||||
(запись: slidge.core.session — user.preferences, изменение в SQLite `user_account`).
|
||||
- **Flood wait от Telegram при первом старте**: слайдж с большим аккаунтом
|
||||
(1602 контакта) при старте тянет инфу о каждом чате/контакте → Telegram банит
|
||||
частые запросы (`WARNING:slidgram.telegram:Flood in get_chat(...), sleep for N seconds`).
|
||||
Не баг: после кэширования паузы исчезают. Проверка БД: `docker exec icq-slidgram
|
||||
python3 -c "import sqlite3;c=sqlite3.connect('/var/lib/slidge/slidge.sqlite');print(c.execute('select count(*) from contact').fetchone())"`.
|
||||
- **Контакты «пропали» после рестарта сервера** — на самом деле рostер цел на сервере
|
||||
(проверка: slixmpp roster get → 1602 telegram-контакта). Клиент (Pidgin) при
|
||||
переподключении должен сам запросить рostер (Disable/Enable аккаунта). Если нет —
|
||||
проблема в клиентском кэше, не в сервере.
|
||||
|
||||
### 12.8 Планируется: апгрейд Prosody 0.11.9 → 0.12.x (система сборки)
|
||||
- **Зачем**: 0.12 имеет нативный XEP-0356 (mod_privilege больше не нужен), util.jwt
|
||||
(mod_unified_push → push-уведомления), исправления безопасности.
|
||||
- **Проблема**: официальный Docker-образ `prosody/prosody` не обновлён до 0.12
|
||||
(latest = 0.11.9; теги только 0.9–0.11 + trunk). Стабильный 0.12.6 доступен
|
||||
только исходниками: https://prosody.im/downloads/source/prosody-0.12.6.tar.gz
|
||||
- **Сторонние образы**: `prosodyim/prosody:0.12` (nightly 236 от 2026-04-29) и
|
||||
`prosodyim/prosody:13.0` (nightly 98 от 2026-06-07) — НЕ для продакшена.
|
||||
- **Решение**: собрать свой образ из исходников 0.12.6 (Dockerfile на базе
|
||||
prosody/prosody:0.11.9 + tar.gz 0.12.6). См. STATUS.md «Сборка Prosody 0.12».
|
||||
|
||||
## 13. TODO (следующие шаги)
|
||||
- [x] ~~OMEMO (XEP-0384)~~ — ВЫПОЛНЕНО: раздел 9; скрипт scripts/omemo_check.py.
|
||||
- [ ] Бот-книгоискатель (slixmpp + OPDS) — Этап 3 PRD. venv уже создан (/opt/icq/.venv: aiohttp, slixmpp).
|
||||
|
||||
Reference in New Issue
Block a user