mirror of
https://github.com/openmax-server/server.git
synced 2026-03-14 15:57:40 +00:00
Тестовый SQLite.
This commit is contained in:
@@ -7,12 +7,16 @@ tamtam_ws_port = "82"
|
||||
|
||||
log_level = "debug"
|
||||
|
||||
db_type = "mysql"
|
||||
|
||||
db_host = "localhost"
|
||||
db_port = "3306"
|
||||
db_user = "root"
|
||||
db_password = "password"
|
||||
db_name = "openmax"
|
||||
|
||||
db_file = ""
|
||||
|
||||
certfile = "cert.pem"
|
||||
keyfile = "key.pem"
|
||||
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,4 +1,4 @@
|
||||
__pycache__
|
||||
.env
|
||||
cert.pem
|
||||
key.pem
|
||||
*.pem
|
||||
*.sqlite
|
||||
1
LICENSE
1
LICENSE
@@ -1,4 +1,5 @@
|
||||
Copyright 2025-2026 Alexey Polyakov
|
||||
2026 Inception Time
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
# Требования
|
||||
|
||||
- Python 3.12+ (поддержка версий ниже не гарантирована)
|
||||
- MariaDB или MySQL
|
||||
- MariaDB, MySQL или SQLite
|
||||
- Уметь патчить клиент MAX или собирать Komet из исходного кода (естественно с заменой сервера)
|
||||
- Сертификат и приватный ключ X.509
|
||||
|
||||
# Требования к клиенту
|
||||
|
||||
@@ -20,7 +21,6 @@
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
3. Настройте сервер (пример в `.env.example`)
|
||||
4. Импортируйте схему таблиц в свою базу данных из `tables.sql`
|
||||
5. Запустите сервер
|
||||
|
||||
@@ -3,4 +3,7 @@ aiomysql
|
||||
python-dotenv
|
||||
msgpack
|
||||
lz4
|
||||
websockets
|
||||
websockets
|
||||
pydantic
|
||||
aiohttp
|
||||
aiosqlite
|
||||
@@ -20,6 +20,9 @@ class ServerConfig:
|
||||
### Уровень отладки
|
||||
log_level = os.getenv("log_level") or "debug"
|
||||
|
||||
### Тип базы данных
|
||||
db_type = os.getenv("db_type") or "mysql"
|
||||
|
||||
### MySQL
|
||||
db_host = os.getenv("db_host") or "127.0.0.1"
|
||||
db_port = int(os.getenv("db_port") or 3306)
|
||||
@@ -27,6 +30,9 @@ class ServerConfig:
|
||||
db_password = os.getenv("db_password") or "qwerty"
|
||||
db_name = os.getenv("db_name") or "openmax"
|
||||
|
||||
### SQLite
|
||||
db_file = os.getenv("db_file") or "openmax.db"
|
||||
|
||||
### SSL
|
||||
certfile = os.getenv("certfile") or "cert.pem"
|
||||
keyfile = os.getenv("keyfile") or "key.pem"
|
||||
|
||||
30
src/main.py
30
src/main.py
@@ -1,5 +1,5 @@
|
||||
# Импортирование библиотек
|
||||
import aiomysql, ssl, logging, asyncio
|
||||
import ssl, logging, asyncio
|
||||
from common.config import ServerConfig
|
||||
from oneme_tcp.controller import OnemeMobileController
|
||||
from telegrambot.controller import TelegramBotController
|
||||
@@ -10,16 +10,24 @@ server_config = ServerConfig()
|
||||
|
||||
async def init_db():
|
||||
"""Инициализация базы данных"""
|
||||
# Создаем пул
|
||||
db = await aiomysql.create_pool(
|
||||
host=server_config.db_host,
|
||||
port=server_config.db_port,
|
||||
user=server_config.db_user,
|
||||
password=server_config.db_password,
|
||||
db=server_config.db_name,
|
||||
cursorclass=aiomysql.DictCursor,
|
||||
autocommit=True
|
||||
)
|
||||
|
||||
db = {}
|
||||
|
||||
if server_config.db_type == "mysql":
|
||||
import aiomysql
|
||||
db = await aiomysql.create_pool(
|
||||
host=server_config.db_host,
|
||||
port=server_config.db_port,
|
||||
user=server_config.db_user,
|
||||
password=server_config.db_password,
|
||||
db=server_config.db_name,
|
||||
cursorclass=aiomysql.DictCursor,
|
||||
autocommit=True
|
||||
)
|
||||
elif server_config.db_type == "sqlite":
|
||||
import aiosqlite
|
||||
raw_db = await aiosqlite.connect(server_config.db_file)
|
||||
db["acquire"] = raw_db
|
||||
|
||||
# Возвращаем
|
||||
return db
|
||||
|
||||
Reference in New Issue
Block a user