mirror of
https://github.com/openmax-server/server.git
synced 2026-05-24 04:21:42 +03:00
Compare commits
7 Commits
master
...
e5558f7e4c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e5558f7e4c | ||
|
|
e5adaf8526 | ||
|
|
f12e0905f6 | ||
|
|
4af3434a3b | ||
|
|
fa94e8f753 | ||
|
|
250729b2ab | ||
|
|
14107cb534 |
1
docs/proto/oneme_tcp.md
Normal file
1
docs/proto/oneme_tcp.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
TODO
|
||||||
29
docs/proto/tamtam_ws.md
Normal file
29
docs/proto/tamtam_ws.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Описание протокола TamTam по Websocket
|
||||||
|
|
||||||
|
## Основная информация
|
||||||
|
В веб версии мессенджера ТамТам используется протокол, работающий поверх Websocket.
|
||||||
|
|
||||||
|
Пакеты в этом протоколе являются текстовыми JSON данными.
|
||||||
|
|
||||||
|
Структура пакета:
|
||||||
|
```
|
||||||
|
{
|
||||||
|
ver: int,
|
||||||
|
cmd: int,
|
||||||
|
seq: int,
|
||||||
|
opcode: int,
|
||||||
|
payload: {}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
* ver - версия протокола
|
||||||
|
* cmd - определяет, от кого отправлен пакет. клиент - 0, сервер - 1
|
||||||
|
* seq - порядковый номер пакета (сервер дублирует его из запроса клиента)
|
||||||
|
* opcode - команда
|
||||||
|
* payload - полезная нагрузка команды
|
||||||
|
|
||||||
|
## Команды протокола
|
||||||
|
|
||||||
|
### PING (1)
|
||||||
|
Клиент периодически отправляет пакет с командой PING и пустой нагрузкой серверу.
|
||||||
|
Сервер отвечает ему тем же.
|
||||||
@@ -22,6 +22,3 @@
|
|||||||
2. Открываем консоль в той же директории и производим декомпиляцию: `apktool d <имя apk> -o max`
|
2. Открываем консоль в той же директории и производим декомпиляцию: `apktool d <имя apk> -o max`
|
||||||
3. Заходим в папку проекта и заменяем во всех классах "api.oneme.ru" на свой адрес сервера
|
3. Заходим в папку проекта и заменяем во всех классах "api.oneme.ru" на свой адрес сервера
|
||||||
4. Производим повторную сборку с помощью команды: `apktool b max -o max_modified.apk`
|
4. Производим повторную сборку с помощью команды: `apktool b max -o max_modified.apk`
|
||||||
|
|
||||||
> [!WARNING]
|
|
||||||
> Если у вас возникает ошибка при при повторной сборке, попробуйте декомпилировать клиент с параметром -r
|
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
# Патч MAX для IOS
|
|
||||||
|
|
||||||
1) Распаковываете IPA
|
|
||||||
2) Находите файл MAX в Payload/Max.app
|
|
||||||
3) Открываете hex-редактор и находите api.oneme.ru и меняете на свой
|
|
||||||
При желании можете поменять другие URL
|
|
||||||
URL не должен привышать количество символов которое было у изначального URL!
|
|
||||||
4) Открываете IPA как архив и добавляете патченный файл MAX в Payload/Max.app
|
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
# Навигация по faq
|
# Навигация по faq
|
||||||
|
|
||||||
## Работа с сервером
|
## Работа с сервером
|
||||||
- [Установка сервера](install.md)
|
[Установка сервера](install.md)
|
||||||
|
|
||||||
## Патчинг клиентов
|
## Патчинг клиентов
|
||||||
- [Патч мобильного клиента для Android](patch_apk.md)
|
[Патч apk](patch_apk.md)
|
||||||
- [Патч мобильного клиента для IOS](patch_ipa.md)
|
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
> [!Caution]
|
|
||||||
>
|
|
||||||
> На данной странице представлены инстансы от сторонних разработчиков.
|
|
||||||
>
|
|
||||||
> Используйте на свой страх и риск
|
|
||||||
>
|
|
||||||
|
|
||||||
# Открытые сервера
|
|
||||||
|
|
||||||
* [JustMAX](https://t.me/justmax_official)
|
|
||||||
* [mox.nyako.tk](https://t.me/opengrame/296), порт 443 (регистрация по реальному номеру)
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
> [!Caution]
|
> [!Caution]
|
||||||
>
|
>
|
||||||
> Проект находится на ранней стадии разработки и, вероятно, полон багов.
|
> Проект находится на ранней стадии разработки и вероятно полон багов.
|
||||||
>
|
>
|
||||||
> Использование в профессиональных средах не рекомендовано.
|
> Использование в профессиональных средах не рекомендовано.
|
||||||
>
|
>
|
||||||
@@ -13,7 +13,7 @@ https://t.me/openmax_alerts
|
|||||||
# Требования
|
# Требования
|
||||||
|
|
||||||
- Python 3.12+ (поддержка версий ниже не гарантирована)
|
- Python 3.12+ (поддержка версий ниже не гарантирована)
|
||||||
- MariaDB, MySQL или SQLite (использование последнего не рекомендуется, так как поддержка ещё в разработке)
|
- MariaDB, MySQL или SQLite
|
||||||
- Уметь патчить клиент MAX или собирать Komet из исходного кода (естественно с заменой сервера)
|
- Уметь патчить клиент MAX или собирать Komet из исходного кода (естественно с заменой сервера)
|
||||||
- Сертификат и приватный ключ X.509 (для тестирования сервера можно сгенерировать самоподписанный: ```openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365```)
|
- Сертификат и приватный ключ X.509 (для тестирования сервера можно сгенерировать самоподписанный: ```openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 365```)
|
||||||
|
|
||||||
@@ -22,6 +22,4 @@ https://t.me/openmax_alerts
|
|||||||
Клиент может быть практически любым, главное условие - чтобы он был совместим с официальным сервером (`api.oneme.ru` / `api.tamtam.chat`).
|
Клиент может быть практически любым, главное условие - чтобы он был совместим с официальным сервером (`api.oneme.ru` / `api.tamtam.chat`).
|
||||||
|
|
||||||
# Дополнительная информация
|
# Дополнительная информация
|
||||||
- [FAQ](faq/readme.md)
|
[Faq](faq/readme.md)
|
||||||
- [Документация проекта](https://github.com/openmax-server/docs)
|
|
||||||
- [Публичные сервера](faq/servers.md)
|
|
||||||
|
|||||||
@@ -5,4 +5,3 @@ lz4
|
|||||||
websockets
|
websockets
|
||||||
pydantic
|
pydantic
|
||||||
aiosqlite
|
aiosqlite
|
||||||
python-dotenv
|
|
||||||
@@ -1,7 +1,22 @@
|
|||||||
import os
|
import os
|
||||||
from dotenv import load_dotenv
|
from pathlib import Path
|
||||||
|
|
||||||
load_dotenv()
|
def _load_dotenv():
|
||||||
|
env_path = Path(".env")
|
||||||
|
if not env_path.is_file():
|
||||||
|
return
|
||||||
|
with open(env_path, encoding="utf-8") as f:
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
if not line or line.startswith("#") or "=" not in line:
|
||||||
|
continue
|
||||||
|
key, _, value = line.partition("=")
|
||||||
|
key = key.strip()
|
||||||
|
value = value.strip().strip("\"'")
|
||||||
|
if key and key not in os.environ:
|
||||||
|
os.environ[key] = value
|
||||||
|
|
||||||
|
_load_dotenv()
|
||||||
|
|
||||||
class ServerConfig:
|
class ServerConfig:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user