This commit is contained in:
InsanusMokrassar
2023-10-01 09:48:10 +00:00
parent 61bd1d1e6f
commit 0f3a55c756
4 changed files with 84 additions and 38 deletions

View File

@@ -727,8 +727,10 @@
<p>Bot is initializing with the next algorithm:</p>
<div class="mermaid">flowchart TB
main["Main"]
Join["Endless join bot work"]
subgraph ConfigReading
direction LR
ConfigJsonParsing["Parsing to Json"]
ConfigParsing["Parsing to global config"]
ConfigJsonParsing --&gt; ConfigParsing
@@ -738,18 +740,62 @@
BotConstructorCalling["Calling of PlaguBot constructor"]
subgraph BotStart
direction TB
BotStartKoinAppInit["Initialization of koin app"]
subgraph BotStartSetupDI
sample
direction LR
subgraph BotStartSetupDIPutDefaults["Put defaults in DI"]
direction LR
BotStartSetupDIPutDefaultsConfig["Config"]
BotStartSetupDIPutDefaultsPluginsList["Plugins list"]
BotStartSetupDIPutDefaultsDatabaseConfig["Database Config"]
BotStartSetupDIPutDefaultsDefaultJson["Default Json"]
BotStartSetupDIPutDefaultsPlagubot["PlaguBot itself"]
BotStartSetupDIPutDefaultsTelegramBot["TelegramBot"]
end
BotStartSetupDIIncludes["`Synchronous (in queue) registration of all plugins __setupDI__ modules`"]
BotStartSetupDIPutDefaults --&gt; BotStartSetupDIIncludes
end
BotStartKoinAppStart["`Starting of koin application. Since this step all modules from __setupDI__ of plugins will be available`"]
subgraph BotStartBehaviourContextInitialization["Initialization of behaviour context"]
direction TB
BotStartBehaviourContextInitializationStatesManager["`Get from DI or create default **DefaultStatesManagerRepo**`"]
BotStartBehaviourContextInitializationStatesManagerRepo["`Get from DI or create default **StatesManagerRepo**`"]
BotStartBehaviourContextInitializationStatesManagerUsedCondition{"Is the default one used?"}
BotStartBehaviourContextInitializationOnStartConflictsResolver["Getting of all OnStartContextsConflictResolver"]
BotStartBehaviourContextInitializationOnUpdateConflictsResolver["Getting of all OnUpdateContextsConflictResolver"]
BotStartBehaviourContextInitializationStateHandlingErrorHandler["`Get from DI or create default **StateHandlingErrorHandler**`"]
subgraph BotStartBehaviourContextInitializationSetupPlugins["Plugins bot functionality init"]
BotStartBehaviourContextInitializationSetupPluginsSetupBotPlugin["`Call **setupBotPlugin** for each plugin`"]
end
BotStartBehaviourContextInitializationStatesManager --&gt; BotStartBehaviourContextInitializationStatesManagerUsedCondition
BotStartBehaviourContextInitializationStatesManagerUsedCondition --"Yes"--&gt; BotStartBehaviourContextInitializationStatesManagerRepo
BotStartBehaviourContextInitializationStatesManagerUsedCondition --"No"--&gt; BotStartBehaviourContextInitializationStateHandlingErrorHandler
BotStartBehaviourContextInitializationStatesManagerRepo --&gt; BotStartBehaviourContextInitializationOnStartConflictsResolver
BotStartBehaviourContextInitializationOnStartConflictsResolver --&gt; BotStartBehaviourContextInitializationOnUpdateConflictsResolver
BotStartBehaviourContextInitializationOnUpdateConflictsResolver --&gt; BotStartBehaviourContextInitializationStateHandlingErrorHandler
BotStartBehaviourContextInitializationStateHandlingErrorHandler --&gt; BotStartBehaviourContextInitializationSetupPlugins
end
BotStartDeleteWebhook["Delete webhooks"]
BotStartStartLongPolling["Start long polling"]
BotStartKoinAppInit --&gt; BotStartSetupDI
BotStartSetupDI --&gt; BotStartKoinAppStart
BotStartKoinAppStart --&gt; BotStartBehaviourContextInitialization
BotStartBehaviourContextInitialization --&gt; BotStartDeleteWebhook
BotStartDeleteWebhook --&gt; BotStartStartLongPolling
end
main --&gt; ConfigReading
ConfigReading --&gt; BotConstructorCalling
BotConstructorCalling --&gt; BotStart
BotStart --&gt; Join
</div>
</article>
</div>