34 Commits

Author SHA1 Message Date
Alexey Polyakov fc6ec5eec5 W.I.P.: OpenMAX 0.1.0 (#28)
* Различные фиксы (#14)

* Исключаем только ошибку валидации

* Небольшие правки вебсокета тамтама

* Теперь номера брутить чутка сложнее

* Авторизация теперь проверяется для некоторых команд

* Теперь проверяется orign у вебсокета тамтама

* Дополнил пример env

* Починил немного сокет тамтама

* Теперь все должно работать исправно

* Документация: описал про SESSION_INIT

* Update deviceId description in tamtam_ws.md

* feat: 16 опкод для обновления профиля

* feat: 23 опкод для регистрации, смс шлюз, докер

* SQLite: Ошибка

И вообще не юзайте sqlite пожалуйста, он баганный

* Серверный конфиг снова сломался

* Починил изменение профиля

* История сообщений (вроде как даже работает)

* Дополнил немного 48 опкод, и починил отдачу истории в избранном (избранное все равно не работает)

* Доделал авторизацию в ТамТаме

* Швырнул архитектуру, чтобы позже объединить контроллеры веба и сокета в одно, а также разделить процессоры

* Удалил tamtam.proto, поскольку нигде больше не используется

* Поделил процессоры в таме

* Коды стран

* Генерируем айди, за вместо того, чтобы писать его попорядку

* Вынес список участников чата в отдельную таблицу

* Теперь мы не должны отправлять 128 опкод самому себе. вроде

* ТамТам: реализация 32 опкода. Надеюсь, будет работать

* ТамТам: обработчик 5 и 1 опкода

* ТамТам: починил 32 опкод и добавил серверный конфиг. Избранное больше не добавляется в список чатов
MAX: починил 32 опкод

* TT: oops

* MAX: заглушка в 158 опкоде

* Common: поправил 1 прикол

* TamTam: websocket transport for web version

* TamTam && MAX: история (в мохе она вроде теперь получше работает)

* Правка контроллеров небольшая

* MAX: Разделил процессоры

* TG Bot: переписал на aiogram

* Common: фикс года

* Начальная реализация транспорта ws для max web и прочие улучшения

* Common: добавил сжатие lz4

* Исправление конфликтов

* TT: фикс вебсокета

* Fix OpenMAX mobile compatibility and Telegram auth fallback (#30)

* Fix OpenMAX mobile compatibility and Telegram auth fallback

* Common: Убрал скобку в конфиге

---------

Co-authored-by: Alexey Polyakov <starwear3000@mail.ru>

* MAX: заглушка для баннеров, правка пакета со списком жалоб, отдача контактов и прочие улучшения

* oops

* MAX: Рабочие баннеры

* MAX: обновление настроек приватности

* MAX: пуши через firebase (особо не тестил, вроде работает)

* MAX: Рефактор папок

* MAX: фикс версий < 25.8.0

* MAX: отдача черного списка

* Теперь ID пользователей идут по порядку, как и раньше

* MAX: создание папок

* MAX: oops

* MAX: добавление/удаление контактов, статусы

* MAX & TT: теперь в качестве страны локации используется настоящая страна пользователя, а также зафиксировал версии библиотек в зависимостях

* TT: ну вроде шире поддержка, а вообще обратная совместимость с максом клас

* oops

* TG Bot: возможность включения белого списка

* Решение проблемы обработки sigterm

* nothing

* fix

* TG Bot: fix

* TG Bot: fix username

* MAX && TT: общение в таме, и корректировки под веб морду

* MAX: Почистил серверный конфиг

* nothing

* MAX: web fix

* MAX: web fix 2

* oops

* nothing

* MAX: теперь для избранного не сравниваем айди с нулём

* Вынес sqlite в отдельный модуль

* MAX: блокировка и разблокировка контакта

* oops

* TT: тоже самое что в макс

* MAX && TT: обновление контакта

* MAX: добавление контакта по номеру телефона

* MAX: исправление уязвимости с избранными

* Генерируем айди пользователей рандомно (опять, да)

* update sql scheme

* Фикс сборки избранного

* Попытка починить историю (спойлер, нихуя не получилось)

* MAX: история таки заработала — cid/link/reactionInfo обязательны в схеме

Десктопный MAX подключается через TCP (mobile-протокол) и парсит
msgpack по фиксированной схеме. Если в сообщении выпадает любое из
полей — клиент молча обрывает соединение. После 87cfc19 как раз
такие условные `if elements: ...` / `if link: ...` (а link и
reaction_info там всегда были `{}`, то есть falsy) вырезали поля
из ответа CHAT_HISTORY и MSG_SEND, чем и сломали историю.

- src/common/tools.py: новый build_message_dict() — единая сборка
  тела сообщения, где все поля (id, cid, time, type, sender, text,
  attaches, elements, reactionInfo, link) присутствуют ВСЕГДА.
  get_last_message переписан через него.
- src/oneme/processors/history.py: chat_history использует
  build_message_dict вместо ручной логики с условными if-ками.
- src/oneme/processors/messages.py: msg_send.bodyMessage теперь
  отдает cid / reactionInfo / link даже пустыми и приводит id
  к int для mobile, str для web.

Цепная польза: auth.py LOGIN bootstrap (через generate_chats →
get_last_message) и search.py тоже теперь шлют корректную схему.

* MAX: bootstrap-история в LOGIN — клиент перестал думать что всё уже синканулось

В ответе LOGIN сервер слал messages: {} и chatMarker: 0. Десктопный
клиент в этом случае считает, что локальная история уже синхронизирована
со старого запуска, и НЕ отправляет CHAT_HISTORY (49) при открытии чата.
В окне видно только lastMessage из chats[], а вся реальная переписка —
ничерта.

- src/common/tools.py: collect_bootstrap_history(chatIds, ...) —
  собирает карту {chatId: [последние N сообщений]}, в т.ч. избранное
  под клиентским id = senderId ^ senderId.
- src/oneme/processors/auth.py: подсовываем эту карту в
  payload.messages, chatMarker = текущее время вместо 0.

* fix(chat history): фикс

* fix(chat history): фикс

* fix(chat history): фикс

* fix(chat history): фикс

* fix(chat history): фикс

* fix(chat history): фикс

* fix(chat history): фикс

* MAX & TT: теперь полноценный чёрный список

* TT: регистрация через клиент

* Вроде как нормальные заглушки под ассеты

* maybe fixes

---------

Co-authored-by: WowInceptionGood <143893762+WowInceptionGood@users.noreply.github.com>
Co-authored-by: zavolo <me@kirillka.ru>
Co-authored-by: Aleksandr Kosachev <38947781+gohryt@users.noreply.github.com>
2026-07-08 00:11:48 +03:00
WowInceptionGood c53c3cd195 Документация 2026-03-27 17:34:24 +03:00
Alexey Polyakov 77da4a1b61 И так тоже будет лучше 2026-03-22 08:41:49 +03:00
WowInceptionGood f9b6b2c75e README: Думаю так лучше 2026-03-22 00:07:10 +03:00
WowInceptionGood 930a95453f Документация будет перенесена в другой репозиторий в ближайшее время
+ Обновил README ещё.
2026-03-22 00:06:19 +03:00
relyay 2776051b17 Grammar fix in readme.md (#27) 2026-03-16 18:59:08 +03:00
WowInceptionGood 1d4cb2d248 Из-за недавних ошибок 2026-03-16 00:12:27 +03:00
WowInceptionGood ba6191d7e3 faq: Используйте сторонние сервера на свой страх и риск 2026-03-15 21:36:13 +03:00
Alexey Polyakov 48c74153ec Update server link format in faq/servers.md 2026-03-15 21:32:29 +03:00
Alexey Polyakov ea9e4761bc Add mox.nyako.tk server information 2026-03-15 21:28:38 +03:00
Anatoliy Esherkin e6d693efbd Create servers.md (#23) 2026-03-15 11:04:44 +03:00
Anatoliy Esherkin dae26f02a8 Открытые сервера (#25) 2026-03-15 11:04:32 +03:00
Anatoliy Esherkin ca652aab03 Патч IPA (#24)
* Патч IPA

* Update patch_ipa.md

* Update readme.md

---------

Co-authored-by: Alexey Polyakov <starwear3000@mail.ru>
2026-03-15 11:03:47 +03:00
artemchik12 2ce4ac64e2 Что делать на случай ошибки при сборке (#20)
* Что делать на случай ошибки при сборке

* Update patch_apk.md

* Update patch_apk.md

---------

Co-authored-by: Alexey Polyakov <starwear3000@mail.ru>
2026-03-13 18:28:21 +03:00
whymequestion e5c7a7baac Security + minor fixes (#16)
* implement ip rate limiting

* fix: secure генерация кода для входа

* fix: possible slowloris and dos attacks

* fix: убрать лишний импорт, не давать сообщения из чата незнакомцам, географически верные названия в дб...

* fix device name не использовался

* refactor: убрал лишние импорты

* refactor: вернул dotenv

* убрал импорт после c642434
2026-03-12 19:22:58 +03:00
BetaAcccc 582c0f571c Добавление faq (#6)
* Create patch_apk.md

* Create install.md

* Update patch_apk.md

* remove space

* Create readme.md

* Update readme.md

* Update readme.md

* Update patch_apk.md

* Подправил инструкцию по патчу

Сделал чище и постарался сделать грамотнее

---------

Co-authored-by: Alexey Polyakov <starwear3000@mail.ru>
Co-authored-by: WowInceptionGood <143893762+WowInceptionGood@users.noreply.github.com>
2026-03-11 01:00:25 +03:00
WowInceptionGood fb46d06aab Ладно последнее исправление 2026-03-10 21:43:25 +00:00
WowInceptionGood fbb451cd39 Исправление 2026-03-10 21:41:57 +00:00
WowInceptionGood 573825e195 Начал писать документацию прото ТамТама 2026-03-10 21:40:49 +00:00
relyay 4d82f55b79 Fix (#11)
* Улучшена генерация кода, пояснения в некоторых участках, очистка номера телефона через регулярные выражения :>

* Именовать переменные snake_case стоит везде, даже если ты достаешь заголовки в такомСтиле

if not object использовать предпочтительнее, т.к. он обрабатывает более широкие случаи, когда достать данные не получилось
2026-03-10 21:59:44 +03:00
devreal95 917db80460 Update config.py (#10) 2026-03-10 21:42:11 +03:00
relyay cab75a58f8 Merge pull request #9 from relyay/fix
Some fixes
2026-03-10 21:19:54 +03:00
Alexey Polyakov 4bd632e6df Мелкие правки 2026-03-10 18:21:59 +03:00
WowInceptionGood 32a88e8b05 Update README 2026-03-10 13:55:50 +00:00
Anatoliy Esherkin a2d6be7b94 Добавил причины для жалоб (#4)
* Добавил причины для жалоб

* Update static.py

---------

Co-authored-by: WowInceptionGood <143893762+WowInceptionGood@users.noreply.github.com>
2026-03-10 16:37:35 +03:00
Alexey Polyakov 1984e018ee Create CODE_OF_CONDUCT.md 2026-03-09 18:03:56 +03:00
Alexey Polyakov 780458061a Merge pull request #1 from GeorgNation/master
refactor(telegrambot+common): move dedent+split into get_bot_message
2026-03-09 18:00:54 +03:00
GeorgNation 208d3f96de refactor(telegrambot+common): move dedent+split into get_bot_message 2026-03-09 20:54:22 +06:00
Alexey Polyakov d3d12a0104 nothing 2026-03-09 17:26:51 +03:00
Alexey Polyakov 5bc7076ef7 Добавил ссылку на канал 2026-03-09 17:01:15 +03:00
Alexey Polyakov d7784b3f4d Попытался улучшить ситуацию с тг ботом 2026-03-09 15:28:22 +03:00
WowInceptionGood 2bb9d7603c Update readme.md 2026-03-09 00:18:11 +03:00
WowInceptionGood bcba51ac5d Тестовый SQLite. 2026-03-08 21:12:57 +00:00
Alexey Polyakov de07725212 first commit 2026-03-08 23:36:13 +03:00