-
Notifications
You must be signed in to change notification settings - Fork 1
/
init.example.py
44 lines (41 loc) · 2.44 KB
/
init.example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
from common.services.event_service import EventService
from common.utils.logging_tools import get_logger
from components.announce.announce_command_handler import AnnounceCommandHandler
from components.announce.announce_component import AnnounceComponent
from components.core.core_command_handler import CoreCommandHandler
from components.core.core_component import CoreComponent
from components.core.texts import texts as core_texts
from components.doforme.doforme_migration_handler import DoForMeMigrationHandler
from components.user.texts import texts as user_texts
from components.feedback.texts import texts as feedback_texts
from components.announce.texts import texts as announce_texts
from components.feedback.feedback_command_handler import FeedbackCommandHandler
from components.feedback.feedback_component import FeedbackComponent
from components.feedback.feedback_service import FeedbackService
from components.user.user_command_handler import UserCommandHandler
from components.user.user_component import UserComponent
from common.common_bot import CommonBot
from common.services.telegram_service import TelegramService
from components.user.user_migration_handler import UserMigrationHandler
from components.user.user_service import UserService
from texts import bot_name
def create_bot(admin_id: int):
logger = get_logger()
event_queue = {}
event_service = EventService(logger, event_queue)
user_service = UserService()
telegram_service = TelegramService(user_service, logger, event_service, [UserMigrationHandler(), DoForMeMigrationHandler()])
core_command_handler = CoreCommandHandler(admin_id, event_service, core_texts, telegram_service)
user_command_handler = UserCommandHandler(admin_id, event_service, user_texts, telegram_service, bot_name, user_service)
feedback_service = FeedbackService()
feedback_command_handler = FeedbackCommandHandler(admin_id, event_service, feedback_texts, telegram_service, feedback_service)
announce_command_handler = AnnounceCommandHandler(admin_id, event_service, announce_texts, telegram_service, user_service)
components = {
# put your custom components at the top to be able to overwrite commands
'feedback': FeedbackComponent(feedback_command_handler),
'user': UserComponent(user_command_handler),
'announce': AnnounceComponent(announce_command_handler),
'core': CoreComponent(core_command_handler),
}
bot = CommonBot(components, logger)
return bot