mirror of
https://github.com/openmax-server/server.git
synced 2026-05-23 20:11:41 +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`
|
||||
3. Заходим в папку проекта и заменяем во всех классах "api.oneme.ru" на свой адрес сервера
|
||||
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
|
||||
|
||||
## Работа с сервером
|
||||
- [Установка сервера](install.md)
|
||||
[Установка сервера](install.md)
|
||||
|
||||
## Патчинг клиентов
|
||||
- [Патч мобильного клиента для Android](patch_apk.md)
|
||||
- [Патч мобильного клиента для IOS](patch_ipa.md)
|
||||
[Патч apk](patch_apk.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]
|
||||
>
|
||||
> Проект находится на ранней стадии разработки и, вероятно, полон багов.
|
||||
> Проект находится на ранней стадии разработки и вероятно полон багов.
|
||||
>
|
||||
> Использование в профессиональных средах не рекомендовано.
|
||||
>
|
||||
@@ -13,7 +13,7 @@ https://t.me/openmax_alerts
|
||||
# Требования
|
||||
|
||||
- Python 3.12+ (поддержка версий ниже не гарантирована)
|
||||
- MariaDB, MySQL или SQLite (использование последнего не рекомендуется, так как поддержка ещё в разработке)
|
||||
- MariaDB, MySQL или SQLite
|
||||
- Уметь патчить клиент MAX или собирать Komet из исходного кода (естественно с заменой сервера)
|
||||
- Сертификат и приватный ключ 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`).
|
||||
|
||||
# Дополнительная информация
|
||||
- [FAQ](faq/readme.md)
|
||||
- [Документация проекта](https://github.com/openmax-server/docs)
|
||||
- [Публичные сервера](faq/servers.md)
|
||||
[Faq](faq/readme.md)
|
||||
|
||||
@@ -4,5 +4,4 @@ msgpack
|
||||
lz4
|
||||
websockets
|
||||
pydantic
|
||||
aiosqlite
|
||||
python-dotenv
|
||||
aiosqlite
|
||||
@@ -1,7 +1,22 @@
|
||||
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:
|
||||
def __init__(self):
|
||||
|
||||
Reference in New Issue
Block a user