mirror of
https://github.com/kurbezz/discord-bot.git
synced 2025-12-06 15:15:37 +01:00
New structure
This commit is contained in:
@@ -1,31 +1,38 @@
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
class TwitchConfig(BaseModel):
|
class TwitchConfig(BaseModel):
|
||||||
id: int
|
id: int
|
||||||
name: str
|
name: str
|
||||||
|
|
||||||
|
|
||||||
class NotificationsConfig(BaseModel):
|
class NotificationsConfig(BaseModel):
|
||||||
start_stream: str
|
start_stream: str
|
||||||
change_category: str | None = None
|
change_category: str | None = None
|
||||||
redemption_reward: str | None = None
|
redemption_reward: str | None = None
|
||||||
|
|
||||||
|
|
||||||
class GamesListConfig(BaseModel):
|
class GamesListConfig(BaseModel):
|
||||||
channel_id: int
|
channel_id: int
|
||||||
message_id: int
|
message_id: int
|
||||||
|
|
||||||
|
|
||||||
class DiscordConfig(BaseModel):
|
class DiscordConfig(BaseModel):
|
||||||
guild_id: int
|
guild_id: int
|
||||||
notifications_channel_id: int
|
notifications_channel_id: int
|
||||||
games_list: GamesListConfig | None = None
|
games_list: GamesListConfig | None = None
|
||||||
roles: dict[str, int] | None = None
|
roles: dict[str, int] | None = None
|
||||||
|
|
||||||
|
|
||||||
class TelegramConfig(BaseModel):
|
class TelegramConfig(BaseModel):
|
||||||
notifications_channel_id: int
|
notifications_channel_id: int
|
||||||
|
|
||||||
|
|
||||||
class IntegrationsConfig(BaseModel):
|
class IntegrationsConfig(BaseModel):
|
||||||
discord: DiscordConfig | None = None
|
discord: DiscordConfig | None = None
|
||||||
telegram: TelegramConfig | None = None
|
telegram: TelegramConfig | None = None
|
||||||
|
|
||||||
|
|
||||||
class StreamerConfig(BaseModel):
|
class StreamerConfig(BaseModel):
|
||||||
twitch: TwitchConfig
|
twitch: TwitchConfig
|
||||||
notifications: NotificationsConfig
|
notifications: NotificationsConfig
|
||||||
@@ -18,10 +18,10 @@ class UserRepository(BaseRepository):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def get_or_create_user(cls, newUser: CreateUser) -> User:
|
async def get_or_create_user(cls, new_user: CreateUser) -> User:
|
||||||
filter_data = {}
|
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
|
filter_data[f"oauths.{provider}.id"] = data.id
|
||||||
|
|
||||||
async with cls.connect() as collection:
|
async with cls.connect() as collection:
|
||||||
@@ -29,7 +29,7 @@ class UserRepository(BaseRepository):
|
|||||||
filter_data,
|
filter_data,
|
||||||
{
|
{
|
||||||
"$setOnInsert": {
|
"$setOnInsert": {
|
||||||
**newUser.model_dump(),
|
**new_user.model_dump(),
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
upsert=True,
|
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