mirror of
https://github.com/kurbezz/discord-bot.git
synced 2025-12-06 07:05:36 +01:00
New structure
This commit is contained in:
@@ -1,31 +1,38 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class TwitchConfig(BaseModel):
|
||||
id: int
|
||||
name: str
|
||||
|
||||
|
||||
class NotificationsConfig(BaseModel):
|
||||
start_stream: str
|
||||
change_category: str | None = None
|
||||
redemption_reward: str | None = None
|
||||
|
||||
|
||||
class GamesListConfig(BaseModel):
|
||||
channel_id: int
|
||||
message_id: int
|
||||
|
||||
|
||||
class DiscordConfig(BaseModel):
|
||||
guild_id: int
|
||||
notifications_channel_id: int
|
||||
games_list: GamesListConfig | None = None
|
||||
roles: dict[str, int] | None = None
|
||||
|
||||
|
||||
class TelegramConfig(BaseModel):
|
||||
notifications_channel_id: int
|
||||
|
||||
|
||||
class IntegrationsConfig(BaseModel):
|
||||
discord: DiscordConfig | None = None
|
||||
telegram: TelegramConfig | None = None
|
||||
|
||||
|
||||
class StreamerConfig(BaseModel):
|
||||
twitch: TwitchConfig
|
||||
notifications: NotificationsConfig
|
||||
@@ -18,10 +18,10 @@ class UserRepository(BaseRepository):
|
||||
)
|
||||
|
||||
@classmethod
|
||||
async def get_or_create_user(cls, newUser: CreateUser) -> User:
|
||||
async def get_or_create_user(cls, new_user: CreateUser) -> User:
|
||||
filter_data = {}
|
||||
|
||||
for provider, data in newUser.oauths.items():
|
||||
for provider, data in new_user.oauths.items():
|
||||
filter_data[f"oauths.{provider}.id"] = data.id
|
||||
|
||||
async with cls.connect() as collection:
|
||||
@@ -29,7 +29,7 @@ class UserRepository(BaseRepository):
|
||||
filter_data,
|
||||
{
|
||||
"$setOnInsert": {
|
||||
**newUser.model_dump(),
|
||||
**new_user.model_dump(),
|
||||
}
|
||||
},
|
||||
upsert=True,
|
||||
45
src/main.py
45
src/main.py
@@ -1,45 +0,0 @@
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from modules.games_list import start as start_games_list_module
|
||||
from modules.stream_notifications import start as start_stream_notifications_module
|
||||
|
||||
from core.mongo import mongo_manager
|
||||
from core.redis import redis_manager
|
||||
from core.broker import broker
|
||||
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
|
||||
async def main():
|
||||
logger.info("Starting services...")
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
raise RuntimeError("Usage: python main.py <module>")
|
||||
|
||||
module = sys.argv[1]
|
||||
|
||||
await mongo_manager.init()
|
||||
await redis_manager.init()
|
||||
|
||||
if not broker.is_worker_process:
|
||||
await broker.startup()
|
||||
|
||||
if module == "games_list":
|
||||
await start_games_list_module()
|
||||
elif module == "stream_notifications":
|
||||
await start_stream_notifications_module()
|
||||
else:
|
||||
raise RuntimeError(f"Unknown module: {module}")
|
||||
|
||||
exit(0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from asyncio import run
|
||||
|
||||
run(main())
|
||||
@@ -1,2 +0,0 @@
|
||||
from modules.scheduler_sync.tasks import * # noqa: F403
|
||||
from modules.stream_notifications.tasks import * # noqa: F403
|
||||
Reference in New Issue
Block a user