Compare commits
	
		
			25 Commits
		
	
	
		
			0a0401dd87
			...
			9be4e344f6
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9be4e344f6 | |||
| ebc782e266 | |||
| 887a46fa7f | |||
| 0cc8d6f2c7 | |||
| 3546d38f75 | |||
| 376cb76036 | |||
| 8e8da46a54 | |||
| 94e003312d | |||
| fe42d46a38 | |||
| 4c0a4bc1ae | |||
| 4161d3a38a | |||
| 4a763e4e03 | |||
| 9783424066 | |||
| 290b5f38a7 | |||
| 5bfd04722c | |||
| 12f956f4c3 | |||
| 0b767fcb68 | |||
| a303108da2 | |||
| 5e9cca5b1d | |||
| d1c79c95b2 | |||
| 378d2c3dc9 | |||
| a8ea9f5e49 | |||
| 957a54ccf3 | |||
| 0037a30c11 | |||
| 77e079d91c | 
| @@ -16,6 +16,7 @@ | |||||||
|       "level": "src/modules/level/level.json", |       "level": "src/modules/level/level.json", | ||||||
|       "permission": "src/modules/permission/permission.json", |       "permission": "src/modules/permission/permission.json", | ||||||
|       "technician": "src/modules/technician/technician.json", |       "technician": "src/modules/technician/technician.json", | ||||||
|  |       "short-role-name": "src/modules/_short_role_name/modules/short-role-name.json", | ||||||
|       "checks": "tools/checks/checks.json", |       "checks": "tools/checks/checks.json", | ||||||
|       "get-version": "tools/get_version/get-version.json", |       "get-version": "tools/get_version/get-version.json", | ||||||
|       "post-build": "tools/post_build/post-build.json", |       "post-build": "tools/post_build/post-build.json", | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -4,12 +4,12 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
|     "Description": "Keksdose bot", |     "Description": "sh-edraft.de Discord bot", | ||||||
|     "LongDescription": "Discord bot  for the Keksdose discord Server", |     "LongDescription": "Discord bot for customers of sh-edraft.de", | ||||||
|     "URL": "https://www.sh-edraft.de", |     "URL": "https://www.sh-edraft.de", | ||||||
|     "CopyrightDate": "2022 - 2023", |     "CopyrightDate": "2022 - 2023", | ||||||
|     "CopyrightName": "sh-edraft.de", |     "CopyrightName": "sh-edraft.de", | ||||||
| @@ -68,6 +68,7 @@ | |||||||
|       "../modules/database/database.json", |       "../modules/database/database.json", | ||||||
|       "../modules/level/level.json", |       "../modules/level/level.json", | ||||||
|       "../modules/permission/permission.json", |       "../modules/permission/permission.json", | ||||||
|  |       "../modules/short_role_name/short-role-name.json", | ||||||
|       "../modules/technician/technician.json" |       "../modules/technician/technician.json" | ||||||
|     ] |     ] | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot.extension" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -13,6 +13,7 @@ from modules.config.config_module import ConfigModule | |||||||
| from modules.database.database_module import DatabaseModule | from modules.database.database_module import DatabaseModule | ||||||
| from modules.level.level_module import LevelModule | from modules.level.level_module import LevelModule | ||||||
| from modules.permission.permission_module import PermissionModule | from modules.permission.permission_module import PermissionModule | ||||||
|  | from modules.short_role_name.short_role_name_module import ShortRoleNameModule | ||||||
| from modules.technician.technician_module import TechnicianModule | from modules.technician.technician_module import TechnicianModule | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -35,6 +36,7 @@ class ModuleList: | |||||||
|                 ApiModule, |                 ApiModule, | ||||||
|                 TechnicianModule, |                 TechnicianModule, | ||||||
|                 AchievementsModule, |                 AchievementsModule, | ||||||
|  |                 ShortRoleNameModule, | ||||||
|                 # has to be last! |                 # has to be last! | ||||||
|                 BootLogModule, |                 BootLogModule, | ||||||
|                 CoreExtensionModule, |                 CoreExtensionModule, | ||||||
|   | |||||||
| @@ -13,9 +13,11 @@ from bot_data.migration.config_feature_flags_migration import ConfigFeatureFlags | |||||||
| from bot_data.migration.config_migration import ConfigMigration | from bot_data.migration.config_migration import ConfigMigration | ||||||
| from bot_data.migration.db_history_migration import DBHistoryMigration | from bot_data.migration.db_history_migration import DBHistoryMigration | ||||||
| from bot_data.migration.default_role_migration import DefaultRoleMigration | from bot_data.migration.default_role_migration import DefaultRoleMigration | ||||||
|  | from bot_data.migration.fix_updates_migration import FixUpdatesMigration | ||||||
| from bot_data.migration.initial_migration import InitialMigration | from bot_data.migration.initial_migration import InitialMigration | ||||||
| from bot_data.migration.level_migration import LevelMigration | from bot_data.migration.level_migration import LevelMigration | ||||||
| from bot_data.migration.remove_stats_migration import RemoveStatsMigration | from bot_data.migration.remove_stats_migration import RemoveStatsMigration | ||||||
|  | from bot_data.migration.short_role_name_migration import ShortRoleNameMigration | ||||||
| from bot_data.migration.stats_migration import StatsMigration | from bot_data.migration.stats_migration import StatsMigration | ||||||
| from bot_data.migration.user_joined_game_server_migration import UserJoinedGameServerMigration | from bot_data.migration.user_joined_game_server_migration import UserJoinedGameServerMigration | ||||||
| from bot_data.migration.user_message_count_per_hour_migration import ( | from bot_data.migration.user_message_count_per_hour_migration import ( | ||||||
| @@ -50,3 +52,5 @@ class StartupMigrationExtension(StartupExtensionABC): | |||||||
|         services.add_transient(MigrationABC, ConfigMigration)  # 19.07.2023 #127 - 1.1.0 |         services.add_transient(MigrationABC, ConfigMigration)  # 19.07.2023 #127 - 1.1.0 | ||||||
|         services.add_transient(MigrationABC, ConfigFeatureFlagsMigration)  # 15.08.2023 #334 - 1.1.0 |         services.add_transient(MigrationABC, ConfigFeatureFlagsMigration)  # 15.08.2023 #334 - 1.1.0 | ||||||
|         services.add_transient(MigrationABC, DefaultRoleMigration)  # 24.09.2023 #360 - 1.1.3 |         services.add_transient(MigrationABC, DefaultRoleMigration)  # 24.09.2023 #360 - 1.1.3 | ||||||
|  |         services.add_transient(MigrationABC, ShortRoleNameMigration)  # 28.09.2023 #378 - 1.1.7 | ||||||
|  |         services.add_transient(MigrationABC, FixUpdatesMigration)  # 28.09.2023 #378 - 1.1.7 | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.abc" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "", |     "Author": "", | ||||||
|     "AuthorEmail": "", |     "AuthorEmail": "", | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.configuration" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.controller" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.event" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.exception" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.filter" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.filter.discord" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.logging" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.model" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.model.discord" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.route" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.service" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_api.transformer" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.abc" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.configuration" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -16,9 +16,11 @@ class FeatureFlagsEnum(Enum): | |||||||
|     level_module = "LevelModule" |     level_module = "LevelModule" | ||||||
|     moderator_module = "ModeratorModule" |     moderator_module = "ModeratorModule" | ||||||
|     permission_module = "PermissionModule" |     permission_module = "PermissionModule" | ||||||
|  |     short_role_name_module = "ShortRoleNameModule" | ||||||
|     # features |     # features | ||||||
|     api_only = "ApiOnly" |     api_only = "ApiOnly" | ||||||
|     presence = "Presence" |     presence = "Presence" | ||||||
|     version_in_presence = "VersionInPresence" |     version_in_presence = "VersionInPresence" | ||||||
|     game_server = "GameServer" |     game_server = "GameServer" | ||||||
|     sync_xp = "SyncXp" |     sync_xp = "SyncXp" | ||||||
|  |     short_role_name = "ShortRoleName" | ||||||
|   | |||||||
| @@ -18,12 +18,14 @@ class FeatureFlagsSettings(ConfigurationModelABC): | |||||||
|         FeatureFlagsEnum.moderator_module.value: False,  # 02.10.2022 #48 |         FeatureFlagsEnum.moderator_module.value: False,  # 02.10.2022 #48 | ||||||
|         FeatureFlagsEnum.permission_module.value: True,  # 02.10.2022 #48 |         FeatureFlagsEnum.permission_module.value: True,  # 02.10.2022 #48 | ||||||
|         FeatureFlagsEnum.config_module.value: True,  # 19.07.2023 #127 |         FeatureFlagsEnum.config_module.value: True,  # 19.07.2023 #127 | ||||||
|  |         FeatureFlagsEnum.short_role_name_module.value: True,  # 28.09.2023 #378 | ||||||
|         # features |         # features | ||||||
|         FeatureFlagsEnum.api_only.value: False,  # 13.10.2022 #70 |         FeatureFlagsEnum.api_only.value: False,  # 13.10.2022 #70 | ||||||
|         FeatureFlagsEnum.presence.value: True,  # 03.10.2022 #56 |         FeatureFlagsEnum.presence.value: True,  # 03.10.2022 #56 | ||||||
|         FeatureFlagsEnum.version_in_presence.value: False,  # 21.03.2023 #253 |         FeatureFlagsEnum.version_in_presence.value: False,  # 21.03.2023 #253 | ||||||
|         FeatureFlagsEnum.game_server.value: False,  # 25.09.2023 #366 |         FeatureFlagsEnum.game_server.value: False,  # 25.09.2023 #366 | ||||||
|         FeatureFlagsEnum.sync_xp.value: False,  # 25.09.2023 #366 |         FeatureFlagsEnum.sync_xp.value: False,  # 25.09.2023 #366 | ||||||
|  |         FeatureFlagsEnum.short_role_name.value: False,  # 28.09.2023 #378 | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     def __init__(self, **kwargs: dict): |     def __init__(self, **kwargs: dict): | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.core_extension" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.events" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.exception" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.helper" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.logging" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.pipes" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_core.service" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -24,7 +24,6 @@ from bot_data.model.server_config import ServerConfig | |||||||
| from bot_data.model.user import User | from bot_data.model.user import User | ||||||
| from bot_data.model.user_joined_server import UserJoinedServer | from bot_data.model.user_joined_server import UserJoinedServer | ||||||
| from bot_data.model.user_joined_voice_channel import UserJoinedVoiceChannel | from bot_data.model.user_joined_voice_channel import UserJoinedVoiceChannel | ||||||
| from bot_data.service.seeder_service import SeederService |  | ||||||
| from bot_data.service.user_repository_service import ServerRepositoryABC | from bot_data.service.user_repository_service import ServerRepositoryABC | ||||||
| from modules.achievements.achievement_service import AchievementService | from modules.achievements.achievement_service import AchievementService | ||||||
|  |  | ||||||
| @@ -34,7 +33,6 @@ class DataIntegrityService: | |||||||
|         self, |         self, | ||||||
|         config: ConfigurationABC, |         config: ConfigurationABC, | ||||||
|         logger: DatabaseLogger, |         logger: DatabaseLogger, | ||||||
|         seeder: SeederService, |  | ||||||
|         bot: DiscordBotServiceABC, |         bot: DiscordBotServiceABC, | ||||||
|         db_context: DatabaseContextABC, |         db_context: DatabaseContextABC, | ||||||
|         server_repo: ServerRepositoryABC, |         server_repo: ServerRepositoryABC, | ||||||
| @@ -51,7 +49,6 @@ class DataIntegrityService: | |||||||
|         self._config = config |         self._config = config | ||||||
|  |  | ||||||
|         self._logger = logger |         self._logger = logger | ||||||
|         self._seeder = seeder |  | ||||||
|         self._bot = bot |         self._bot = bot | ||||||
|         self._db_context = db_context |         self._db_context = db_context | ||||||
|         self._servers = server_repo |         self._servers = server_repo | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_data" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_data.abc" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,13 +1,20 @@ | |||||||
|  | import os | ||||||
| from abc import ABC, abstractmethod | from abc import ABC, abstractmethod | ||||||
|  |  | ||||||
|  | from cpl_core.dependency_injection import ServiceProviderABC | ||||||
|  | from mysql.connector.cursor import MySQLCursorBuffered | ||||||
|  |  | ||||||
|  | from bot_data.db_context import DBContext | ||||||
|  |  | ||||||
|  |  | ||||||
| class MigrationABC(ABC): | class MigrationABC(ABC): | ||||||
|     name = None |     name = None | ||||||
|     prio = 0 |     prio = 0 | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def __init__(self): |     @ServiceProviderABC.inject | ||||||
|         pass |     def __init__(self, db: DBContext): | ||||||
|  |         self._cursor: MySQLCursorBuffered = db.cursor | ||||||
|  |  | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def upgrade(self): |     def upgrade(self): | ||||||
| @@ -16,3 +23,10 @@ class MigrationABC(ABC): | |||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def downgrade(self): |     def downgrade(self): | ||||||
|         pass |         pass | ||||||
|  |  | ||||||
|  |     def _exec(self, self_file: str, file: str): | ||||||
|  |         path = f"{os.path.dirname(os.path.realpath(self_file))}/db_history_scripts" | ||||||
|  |         sql = open(f"{path}/{file}").read() | ||||||
|  |  | ||||||
|  |         for statement in sql.split("\n\n"): | ||||||
|  |             self._cursor.execute(statement + ";") | ||||||
|   | |||||||
							
								
								
									
										39
									
								
								kdb-bot/src/bot_data/abc/short_role_name_repository_abc.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								kdb-bot/src/bot_data/abc/short_role_name_repository_abc.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | |||||||
|  | from abc import ABC, abstractmethod | ||||||
|  |  | ||||||
|  | from cpl_query.extension import List | ||||||
|  |  | ||||||
|  | from bot_data.model.short_role_name import ShortRoleName | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameRepositoryABC(ABC): | ||||||
|  |     @abstractmethod | ||||||
|  |     def __init__(self): | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     @abstractmethod | ||||||
|  |     def get_short_role_names(self) -> List[ShortRoleName]: | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     @abstractmethod | ||||||
|  |     def get_short_role_name_by_id(self, id: int) -> ShortRoleName: | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     @abstractmethod | ||||||
|  |     def find_short_role_names_by_role_id(self, role_id: int) -> List[ShortRoleName]: | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     @abstractmethod | ||||||
|  |     def get_short_role_names_by_server_id(self, id: int) -> List[ShortRoleName]: | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     @abstractmethod | ||||||
|  |     def add_short_role_name(self, short_role_name: ShortRoleName): | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     @abstractmethod | ||||||
|  |     def update_short_role_name(self, short_role_name: ShortRoleName): | ||||||
|  |         pass | ||||||
|  |  | ||||||
|  |     @abstractmethod | ||||||
|  |     def delete_short_role_name(self, short_role_name: ShortRoleName): | ||||||
|  |         pass | ||||||
| @@ -4,7 +4,7 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
|   | |||||||
| @@ -16,6 +16,7 @@ from bot_data.abc.known_user_repository_abc import KnownUserRepositoryABC | |||||||
| from bot_data.abc.level_repository_abc import LevelRepositoryABC | from bot_data.abc.level_repository_abc import LevelRepositoryABC | ||||||
| from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC | from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC | ||||||
| from bot_data.abc.server_repository_abc import ServerRepositoryABC | from bot_data.abc.server_repository_abc import ServerRepositoryABC | ||||||
|  | from bot_data.abc.short_role_name_repository_abc import ShortRoleNameRepositoryABC | ||||||
| from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC | from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC | ||||||
| from bot_data.abc.user_game_ident_repository_abc import UserGameIdentRepositoryABC | from bot_data.abc.user_game_ident_repository_abc import UserGameIdentRepositoryABC | ||||||
| from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameServerRepositoryABC | from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameServerRepositoryABC | ||||||
| @@ -41,6 +42,7 @@ from bot_data.service.seeder_service import SeederService | |||||||
| from bot_data.service.server_config_repository_service import ServerConfigRepositoryService | from bot_data.service.server_config_repository_service import ServerConfigRepositoryService | ||||||
| from bot_data.service.server_config_seeder import ServerConfigSeeder | from bot_data.service.server_config_seeder import ServerConfigSeeder | ||||||
| from bot_data.service.server_repository_service import ServerRepositoryService | from bot_data.service.server_repository_service import ServerRepositoryService | ||||||
|  | from bot_data.service.short_role_name_repository_service import ShortRoleNameRepositoryService | ||||||
| from bot_data.service.technician_config_repository_service import TechnicianConfigRepositoryService | from bot_data.service.technician_config_repository_service import TechnicianConfigRepositoryService | ||||||
| from bot_data.service.technician_config_seeder import TechnicianConfigSeeder | from bot_data.service.technician_config_seeder import TechnicianConfigSeeder | ||||||
| from bot_data.service.user_game_ident_repository_service import UserGameIdentRepositoryService | from bot_data.service.user_game_ident_repository_service import UserGameIdentRepositoryService | ||||||
| @@ -89,6 +91,7 @@ class DataModule(ModuleABC): | |||||||
|         services.add_transient(AchievementRepositoryABC, AchievementRepositoryService) |         services.add_transient(AchievementRepositoryABC, AchievementRepositoryService) | ||||||
|         services.add_transient(TechnicianConfigRepositoryABC, TechnicianConfigRepositoryService) |         services.add_transient(TechnicianConfigRepositoryABC, TechnicianConfigRepositoryService) | ||||||
|         services.add_transient(ServerConfigRepositoryABC, ServerConfigRepositoryService) |         services.add_transient(ServerConfigRepositoryABC, ServerConfigRepositoryService) | ||||||
|  |         services.add_transient(ShortRoleNameRepositoryABC, ShortRoleNameRepositoryService) | ||||||
|  |  | ||||||
|         services.add_transient(SeederService) |         services.add_transient(SeederService) | ||||||
|         services.add_transient(DataSeederABC, TechnicianConfigSeeder) |         services.add_transient(DataSeederABC, TechnicianConfigSeeder) | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_data.migration" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,5 +1,3 @@ | |||||||
| import os |  | ||||||
|  |  | ||||||
| from bot_core.logging.database_logger import DatabaseLogger | from bot_core.logging.database_logger import DatabaseLogger | ||||||
| from bot_data.abc.migration_abc import MigrationABC | from bot_data.abc.migration_abc import MigrationABC | ||||||
| from bot_data.db_context import DBContext | from bot_data.db_context import DBContext | ||||||
| @@ -12,26 +10,18 @@ class ConfigMigration(MigrationABC): | |||||||
|         MigrationABC.__init__(self) |         MigrationABC.__init__(self) | ||||||
|         self._logger = logger |         self._logger = logger | ||||||
|         self._db = db |         self._db = db | ||||||
|         self._cursor = db.cursor |  | ||||||
|  |  | ||||||
|     def _exec(self, file: str): |  | ||||||
|         path = f"{os.path.dirname(os.path.realpath(__file__))}/db_history_scripts" |  | ||||||
|         sql = open(f"{path}/{file}").read() |  | ||||||
|  |  | ||||||
|         for statement in sql.split("\n\n"): |  | ||||||
|             self._cursor.execute(statement + ";") |  | ||||||
|  |  | ||||||
|     def upgrade(self): |     def upgrade(self): | ||||||
|         self._logger.debug(__name__, "Running upgrade") |         self._logger.debug(__name__, "Running upgrade") | ||||||
|         self._server_upgrade() |         self._server_upgrade() | ||||||
|         self._technician_upgrade() |         self._technician_upgrade() | ||||||
|  |  | ||||||
|         self._exec("config/server.sql") |         self._exec(__file__, "config/server.sql") | ||||||
|         self._exec("config/server_afk_channels.sql") |         self._exec(__file__, "config/server_afk_channels.sql") | ||||||
|         self._exec("config/server_team_roles.sql") |         self._exec(__file__, "config/server_team_roles.sql") | ||||||
|         self._exec("config/technician.sql") |         self._exec(__file__, "config/technician.sql") | ||||||
|         self._exec("config/technician_ids.sql") |         self._exec(__file__, "config/technician_ids.sql") | ||||||
|         self._exec("config/technician_ping_urls.sql") |         self._exec(__file__, "config/technician_ping_urls.sql") | ||||||
|  |  | ||||||
|     def _server_upgrade(self): |     def _server_upgrade(self): | ||||||
|         self._cursor.execute( |         self._cursor.execute( | ||||||
|   | |||||||
| @@ -1,5 +1,3 @@ | |||||||
| import os |  | ||||||
|  |  | ||||||
| from bot_core.logging.database_logger import DatabaseLogger | from bot_core.logging.database_logger import DatabaseLogger | ||||||
| from bot_data.abc.migration_abc import MigrationABC | from bot_data.abc.migration_abc import MigrationABC | ||||||
| from bot_data.db_context import DBContext | from bot_data.db_context import DBContext | ||||||
| @@ -15,33 +13,26 @@ class DBHistoryMigration(MigrationABC): | |||||||
|         self._db = db |         self._db = db | ||||||
|         self._cursor = db.cursor |         self._cursor = db.cursor | ||||||
|  |  | ||||||
|     def _exec(self, file: str): |  | ||||||
|         path = f"{os.path.dirname(os.path.realpath(__file__))}/db_history_scripts" |  | ||||||
|         sql = open(f"{path}/{file}").read() |  | ||||||
|  |  | ||||||
|         for statement in sql.split("\n\n"): |  | ||||||
|             self._cursor.execute(statement + ";") |  | ||||||
|  |  | ||||||
|     def upgrade(self): |     def upgrade(self): | ||||||
|         self._logger.debug(__name__, "Running upgrade") |         self._logger.debug(__name__, "Running upgrade") | ||||||
|  |  | ||||||
|         self._exec("api_keys.sql") |         self._exec(__file__, "api_keys.sql") | ||||||
|         self._exec("auth_users.sql") |         self._exec(__file__, "auth_users.sql") | ||||||
|         self._exec("auth_user_users_relation.sql") |         self._exec(__file__, "auth_user_users_relation.sql") | ||||||
|         self._exec("auto_role_rules.sql") |         self._exec(__file__, "auto_role_rules.sql") | ||||||
|         self._exec("auto_roles.sql") |         self._exec(__file__, "auto_roles.sql") | ||||||
|         self._exec("clients.sql") |         self._exec(__file__, "clients.sql") | ||||||
|         self._exec("game_servers.sql") |         self._exec(__file__, "game_servers.sql") | ||||||
|         self._exec("known_users.sql") |         self._exec(__file__, "known_users.sql") | ||||||
|         self._exec("levels.sql") |         self._exec(__file__, "levels.sql") | ||||||
|         self._exec("servers.sql") |         self._exec(__file__, "servers.sql") | ||||||
|         self._exec("user_game_idents.sql") |         self._exec(__file__, "user_game_idents.sql") | ||||||
|         self._exec("user_joined_game_servers.sql") |         self._exec(__file__, "user_joined_game_servers.sql") | ||||||
|         self._exec("user_joined_servers.sql") |         self._exec(__file__, "user_joined_servers.sql") | ||||||
|         self._exec("user_joined_voice_channel.sql") |         self._exec(__file__, "user_joined_voice_channel.sql") | ||||||
|         self._exec("user_message_count_per_hour.sql") |         self._exec(__file__, "user_message_count_per_hour.sql") | ||||||
|         self._exec("users.sql") |         self._exec(__file__, "users.sql") | ||||||
|         self._exec("user_warnings.sql") |         self._exec(__file__, "user_warnings.sql") | ||||||
|  |  | ||||||
|         self._logger.debug(__name__, "Finished history upgrade") |         self._logger.debug(__name__, "Finished history upgrade") | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,23 +1,25 @@ | |||||||
| CREATE TABLE IF NOT EXISTS `CFG_ServerHistory` | CREATE TABLE IF NOT EXISTS `CFG_ServerHistory` | ||||||
| ( | ( | ||||||
|     `Id`    BIGINT(20)  NOT NULL, |     `Id`                      BIGINT(20)  NOT NULL, | ||||||
|     `MessageDeleteTimer` BIGINT NOT NULL DEFAULT 6, |     `MessageDeleteTimer`      BIGINT      NOT NULL DEFAULT 6, | ||||||
|     `NotificationChatId` BIGINT NOT NULL, |     `NotificationChatId`      BIGINT      NOT NULL, | ||||||
|     `MaxVoiceStateHours` BIGINT NOT NULL DEFAULT 6, |     `MaxVoiceStateHours`      BIGINT      NOT NULL DEFAULT 6, | ||||||
|     `XpPerMessage` BIGINT NOT NULL DEFAULT 1, |     `XpPerMessage`            BIGINT      NOT NULL DEFAULT 1, | ||||||
|     `XpPerReaction` BIGINT NOT NULL DEFAULT 1, |     `XpPerReaction`           BIGINT      NOT NULL DEFAULT 1, | ||||||
|     `MaxMessageXpPerHour` BIGINT NOT NULL DEFAULT 20, |     `MaxMessageXpPerHour`     BIGINT      NOT NULL DEFAULT 20, | ||||||
|     `XpPerOntimeHour` BIGINT NOT NULL DEFAULT 10, |     `XpPerOntimeHour`         BIGINT      NOT NULL DEFAULT 10, | ||||||
|     `XpPerEventParticipation` BIGINT NOT NULL DEFAULT 10, |     `XpPerEventParticipation` BIGINT      NOT NULL DEFAULT 10, | ||||||
|     `XpPerAchievement` BIGINT NOT NULL DEFAULT 10, |     `XpPerAchievement`        BIGINT      NOT NULL DEFAULT 10, | ||||||
|     `AFKCommandChannelId` BIGINT NOT NULL, |     `AFKCommandChannelId`     BIGINT      NOT NULL, | ||||||
|     `HelpVoiceChannelId` BIGINT NOT NULL, |     `HelpVoiceChannelId`      BIGINT      NOT NULL, | ||||||
|     `TeamChannelId` BIGINT NOT NULL, |     `TeamChannelId`           BIGINT      NOT NULL, | ||||||
|     `LoginMessageChannelId` BIGINT NOT NULL, |     `LoginMessageChannelId`   BIGINT      NOT NULL, | ||||||
|     `ServerId` BIGINT NOT NULL, |     `DefaultRoleId`           BIGINT      NULL, | ||||||
|     `Deleted` BOOL DEFAULT FALSE, |     `FeatureFlags`            JSON        NULL     DEFAULT ('{}'), | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |     `ServerId`                BIGINT      NOT NULL, | ||||||
|     `DateTo` DATETIME(6) NOT NULL |     `Deleted`                 BOOL                 DEFAULT FALSE, | ||||||
|  |     `DateFrom`                DATETIME(6) NOT NULL, | ||||||
|  |     `DateTo`                  DATETIME(6) NOT NULL | ||||||
| ); | ); | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_ServerUpdate`; | DROP TRIGGER IF EXISTS `TR_CFG_ServerUpdate`; | ||||||
| @@ -27,44 +29,44 @@ CREATE TRIGGER `TR_CFG_ServerUpdate` | |||||||
|     ON `CFG_Server` |     ON `CFG_Server` | ||||||
|     FOR EACH ROW |     FOR EACH ROW | ||||||
| BEGIN | BEGIN | ||||||
|     INSERT INTO `CFG_ServerHistory` ( |     INSERT INTO `CFG_ServerHistory` (`Id`, | ||||||
|         `Id`, |                                      `MessageDeleteTimer`, | ||||||
|         `MessageDeleteTimer`, |                                      `NotificationChatId`, | ||||||
|         `NotificationChatId`, |                                      `MaxVoiceStateHours`, | ||||||
|         `MaxVoiceStateHours`, |                                      `XpPerMessage`, | ||||||
|         `XpPerMessage`, |                                      `XpPerReaction`, | ||||||
|         `XpPerReaction`, |                                      `MaxMessageXpPerHour`, | ||||||
|         `MaxMessageXpPerHour`, |                                      `XpPerOntimeHour`, | ||||||
|         `XpPerOntimeHour`, |                                      `XpPerEventParticipation`, | ||||||
|         `XpPerEventParticipation`, |                                      `XpPerAchievement`, | ||||||
|         `XpPerAchievement`, |                                      `AFKCommandChannelId`, | ||||||
|         `AFKCommandChannelId`, |                                      `HelpVoiceChannelId`, | ||||||
|         `HelpVoiceChannelId`, |                                      `TeamChannelId`, | ||||||
|         `TeamChannelId`, |                                      `LoginMessageChannelId`, | ||||||
|         `LoginMessageChannelId`, |                                      `DefaultRoleId`, | ||||||
|         `ServerId`, |                                      `FeatureFlags`, | ||||||
|         `DateFrom`, |                                      `ServerId`, | ||||||
|         `DateTo` |                                      `DateFrom`, | ||||||
|     ) |                                      `DateTo`) | ||||||
|     VALUES ( |     VALUES (OLD.Id, | ||||||
|         OLD.Id, |             OLD.MessageDeleteTimer, | ||||||
|         OLD.MessageDeleteTimer, |             OLD.NotificationChatId, | ||||||
|         OLD.NotificationChatId, |             OLD.MaxVoiceStateHours, | ||||||
|         OLD.MaxVoiceStateHours, |             OLD.XpPerMessage, | ||||||
|         OLD.XpPerMessage, |             OLD.XpPerReaction, | ||||||
|         OLD.XpPerReaction, |             OLD.MaxMessageXpPerHour, | ||||||
|         OLD.MaxMessageXpPerHour, |             OLD.XpPerOntimeHour, | ||||||
|         OLD.XpPerOntimeHour, |             OLD.XpPerEventParticipation, | ||||||
|         OLD.XpPerEventParticipation, |             OLD.XpPerAchievement, | ||||||
|         OLD.XpPerAchievement, |             OLD.AFKCommandChannelId, | ||||||
|         OLD.AFKCommandChannelId, |             OLD.HelpVoiceChannelId, | ||||||
|         OLD.HelpVoiceChannelId, |             OLD.TeamChannelId, | ||||||
|         OLD.TeamChannelId, |             OLD.LoginMessageChannelId, | ||||||
|         OLD.LoginMessageChannelId, |             OLD.DefaultRoleId, | ||||||
|         OLD.ServerId, |             OLD.FeatureFlags, | ||||||
|         OLD.LastModifiedAt, |             OLD.ServerId, | ||||||
|         CURRENT_TIMESTAMP(6) |             OLD.LastModifiedAt, | ||||||
|     ); |             CURRENT_TIMESTAMP(6)); | ||||||
| END; | END; | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_ServerDelete`; | DROP TRIGGER IF EXISTS `TR_CFG_ServerDelete`; | ||||||
| @@ -74,44 +76,44 @@ CREATE TRIGGER `TR_CFG_ServerDelete` | |||||||
|     ON `CFG_Server` |     ON `CFG_Server` | ||||||
|     FOR EACH ROW |     FOR EACH ROW | ||||||
| BEGIN | BEGIN | ||||||
|     INSERT INTO `CFG_ServerHistory` ( |     INSERT INTO `CFG_ServerHistory` (`Id`, | ||||||
|         `Id`, |                                      `MessageDeleteTimer`, | ||||||
|         `MessageDeleteTimer`, |                                      `NotificationChatId`, | ||||||
|         `NotificationChatId`, |                                      `MaxVoiceStateHours`, | ||||||
|         `MaxVoiceStateHours`, |                                      `XpPerMessage`, | ||||||
|         `XpPerMessage`, |                                      `XpPerReaction`, | ||||||
|         `XpPerReaction`, |                                      `MaxMessageXpPerHour`, | ||||||
|         `MaxMessageXpPerHour`, |                                      `XpPerOntimeHour`, | ||||||
|         `XpPerOntimeHour`, |                                      `XpPerEventParticipation`, | ||||||
|         `XpPerEventParticipation`, |                                      `XpPerAchievement`, | ||||||
|         `XpPerAchievement`, |                                      `AFKCommandChannelId`, | ||||||
|         `AFKCommandChannelId`, |                                      `HelpVoiceChannelId`, | ||||||
|         `HelpVoiceChannelId`, |                                      `TeamChannelId`, | ||||||
|         `TeamChannelId`, |                                      `LoginMessageChannelId`, | ||||||
|         `LoginMessageChannelId`, |                                      `DefaultRoleId`, | ||||||
|         `ServerId`, |                                      `ServerId`, | ||||||
|         `Deleted`, |                                      `FeatureFlags`, | ||||||
|         `DateFrom`, |                                      `Deleted`, | ||||||
|         `DateTo` |                                      `DateFrom`, | ||||||
|     ) |                                      `DateTo`) | ||||||
|     VALUES ( |     VALUES (OLD.Id, | ||||||
|         OLD.Id, |             OLD.MessageDeleteTimer, | ||||||
|         OLD.MessageDeleteTimer, |             OLD.NotificationChatId, | ||||||
|         OLD.NotificationChatId, |             OLD.MaxVoiceStateHours, | ||||||
|         OLD.MaxVoiceStateHours, |             OLD.XpPerMessage, | ||||||
|         OLD.XpPerMessage, |             OLD.XpPerReaction, | ||||||
|         OLD.XpPerReaction, |             OLD.MaxMessageXpPerHour, | ||||||
|         OLD.MaxMessageXpPerHour, |             OLD.XpPerOntimeHour, | ||||||
|         OLD.XpPerOntimeHour, |             OLD.XpPerEventParticipation, | ||||||
|         OLD.XpPerEventParticipation, |             OLD.XpPerAchievement, | ||||||
|         OLD.XpPerAchievement, |             OLD.AFKCommandChannelId, | ||||||
|         OLD.AFKCommandChannelId, |             OLD.HelpVoiceChannelId, | ||||||
|         OLD.HelpVoiceChannelId, |             OLD.TeamChannelId, | ||||||
|         OLD.TeamChannelId, |             OLD.LoginMessageChannelId, | ||||||
|         OLD.LoginMessageChannelId, |             OLD.DefaultRoleId, | ||||||
|         OLD.ServerId, |             OLD.FeatureFlags, | ||||||
|         TRUE, |             OLD.ServerId, | ||||||
|         OLD.LastModifiedAt, |             TRUE, | ||||||
|         CURRENT_TIMESTAMP(6) |             OLD.LastModifiedAt, | ||||||
|     ); |             CURRENT_TIMESTAMP(6)); | ||||||
| END; | END; | ||||||
| @@ -1,13 +1,14 @@ | |||||||
| CREATE TABLE IF NOT EXISTS `CFG_TechnicianHistory` | CREATE TABLE IF NOT EXISTS `CFG_TechnicianHistory` | ||||||
| ( | ( | ||||||
|     `Id`    BIGINT(20)  NOT NULL, |     `Id`                      BIGINT(20)   NOT NULL, | ||||||
|     `HelpCommandReferenceUrl` VARCHAR(255) NOT NULL, |     `HelpCommandReferenceUrl` VARCHAR(255) NOT NULL, | ||||||
|     `WaitForRestart` BIGINT NOT NULL DEFAULT 8, |     `WaitForRestart`          BIGINT       NOT NULL DEFAULT 8, | ||||||
|     `WaitForShutdown` BIGINT NOT NULL DEFAULT 8, |     `WaitForShutdown`         BIGINT       NOT NULL DEFAULT 8, | ||||||
|     `CacheMaxMessages` BIGINT NOT NULL DEFAULT 1000000, |     `CacheMaxMessages`        BIGINT       NOT NULL DEFAULT 1000000, | ||||||
|     `Deleted` BOOL DEFAULT FALSE, |     `FeatureFlags`            JSON         NULL     DEFAULT ('{}'), | ||||||
|     `DateFrom` DATETIME(6) NOT NULL, |     `Deleted`                 BOOL                  DEFAULT FALSE, | ||||||
|     `DateTo` DATETIME(6) NOT NULL |     `DateFrom`                DATETIME(6)  NOT NULL, | ||||||
|  |     `DateTo`                  DATETIME(6)  NOT NULL | ||||||
| ); | ); | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_TechnicianUpdate`; | DROP TRIGGER IF EXISTS `TR_CFG_TechnicianUpdate`; | ||||||
| @@ -17,24 +18,22 @@ CREATE TRIGGER `TR_CFG_TechnicianUpdate` | |||||||
|     ON `CFG_Technician` |     ON `CFG_Technician` | ||||||
|     FOR EACH ROW |     FOR EACH ROW | ||||||
| BEGIN | BEGIN | ||||||
|     INSERT INTO `CFG_TechnicianHistory` ( |     INSERT INTO `CFG_TechnicianHistory` (`Id`, | ||||||
|         `Id`, |                                          `HelpCommandReferenceUrl`, | ||||||
|         `HelpCommandReferenceUrl`, |                                          `WaitForRestart`, | ||||||
|         `WaitForRestart`, |                                          `WaitForShutdown`, | ||||||
|         `WaitForShutdown`, |                                          `CacheMaxMessages`, | ||||||
|         `CacheMaxMessages`, |                                          `FeatureFlags`, | ||||||
|         `DateFrom`, |                                          `DateFrom`, | ||||||
|         `DateTo` |                                          `DateTo`) | ||||||
|     ) |     VALUES (OLD.Id, | ||||||
|     VALUES ( |             OLD.HelpCommandReferenceUrl, | ||||||
|         OLD.Id, |             OLD.WaitForRestart, | ||||||
|         OLD.HelpCommandReferenceUrl, |             OLD.WaitForShutdown, | ||||||
|         OLD.WaitForRestart, |             OLD.CacheMaxMessages, | ||||||
|         OLD.WaitForShutdown, |             OLD.FeatureFlags, | ||||||
|         OLD.CacheMaxMessages, |             OLD.LastModifiedAt, | ||||||
|         OLD.LastModifiedAt, |             CURRENT_TIMESTAMP(6)); | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; | END; | ||||||
|  |  | ||||||
| DROP TRIGGER IF EXISTS `TR_CFG_TechnicianDelete`; | DROP TRIGGER IF EXISTS `TR_CFG_TechnicianDelete`; | ||||||
| @@ -44,24 +43,22 @@ CREATE TRIGGER `TR_CFG_TechnicianDelete` | |||||||
|     ON `CFG_Technician` |     ON `CFG_Technician` | ||||||
|     FOR EACH ROW |     FOR EACH ROW | ||||||
| BEGIN | BEGIN | ||||||
|     INSERT INTO `CFG_TechnicianHistory` ( |     INSERT INTO `CFG_TechnicianHistory` (`Id`, | ||||||
|         `Id`, |                                          `HelpCommandReferenceUrl`, | ||||||
|         `HelpCommandReferenceUrl`, |                                          `WaitForRestart`, | ||||||
|         `WaitForRestart`, |                                          `WaitForShutdown`, | ||||||
|         `WaitForShutdown`, |                                          `CacheMaxMessages`, | ||||||
|         `CacheMaxMessages`, |                                          `FeatureFlags`, | ||||||
|         `Deleted`, |                                          `Deleted`, | ||||||
|         `DateFrom`, |                                          `DateFrom`, | ||||||
|         `DateTo` |                                          `DateTo`) | ||||||
|     ) |     VALUES (OLD.Id, | ||||||
|     VALUES ( |             OLD.HelpCommandReferenceUrl, | ||||||
|         OLD.Id, |             OLD.WaitForRestart, | ||||||
|         OLD.HelpCommandReferenceUrl, |             OLD.WaitForShutdown, | ||||||
|         OLD.WaitForRestart, |             OLD.CacheMaxMessages, | ||||||
|         OLD.WaitForShutdown, |             OLD.FeatureFlags, | ||||||
|         OLD.CacheMaxMessages, |             TRUE, | ||||||
|         TRUE, |             OLD.LastModifiedAt, | ||||||
|         OLD.LastModifiedAt, |             CURRENT_TIMESTAMP(6)); | ||||||
|         CURRENT_TIMESTAMP(6) |  | ||||||
|     ); |  | ||||||
| END; | END; | ||||||
| @@ -0,0 +1,38 @@ | |||||||
|  | CREATE TABLE IF NOT EXISTS `ShortRoleNamesHistory` | ||||||
|  | ( | ||||||
|  |     `Id`            BIGINT(20)               NOT NULL, | ||||||
|  |     `ShortName`     VARCHAR(64) DEFAULT NULL, | ||||||
|  |     `DiscordRoleId` BIGINT(20)               NOT NULL, | ||||||
|  |     `Position`      ENUM ('Before', 'After') NOT NULL, | ||||||
|  |     `ServerId`      BIGINT(20)  DEFAULT NULL, | ||||||
|  |     `Deleted`       BOOL        DEFAULT FALSE, | ||||||
|  |     `DateFrom`      DATETIME(6)              NOT NULL, | ||||||
|  |     `DateTo`        DATETIME(6)              NOT NULL | ||||||
|  | ); | ||||||
|  |  | ||||||
|  | DROP TRIGGER IF EXISTS `TR_ShortRoleNamesUpdate`; | ||||||
|  |  | ||||||
|  | CREATE TRIGGER `TR_ShortRoleNamesUpdate` | ||||||
|  |     AFTER UPDATE | ||||||
|  |     ON `ShortRoleNames` | ||||||
|  |     FOR EACH ROW | ||||||
|  | BEGIN | ||||||
|  |     INSERT INTO `ShortRoleNamesHistory` (`Id`, `ShortName`, `DiscordRoleId`, `Position`, `ServerId`, `DateFrom`, | ||||||
|  |                                          `DateTo`) | ||||||
|  |     VALUES (OLD.Id, OLD.ShortName, OLD.DiscordRoleId, OLD.Position, OLD.ServerId, OLD.LastModifiedAt, | ||||||
|  |             CURRENT_TIMESTAMP(6)); | ||||||
|  | END; | ||||||
|  |  | ||||||
|  | DROP TRIGGER IF EXISTS `TR_ShortRoleNamesDelete`; | ||||||
|  |  | ||||||
|  | CREATE TRIGGER `TR_ShortRoleNamesDelete` | ||||||
|  |     AFTER DELETE | ||||||
|  |     ON `ShortRoleNames` | ||||||
|  |     FOR EACH ROW | ||||||
|  | BEGIN | ||||||
|  |     INSERT INTO `ShortRoleNamesHistory` (`Id`, `ShortName`, `DiscordRoleId`, `Position`, `ServerId`, `Deleted`, | ||||||
|  |                                          `DateFrom`, | ||||||
|  |                                          `DateTo`) | ||||||
|  |     VALUES (OLD.Id, OLD.ShortName, OLD.DiscordRoleId, OLD.Position, OLD.ServerId, TRUE, OLD.LastModifiedAt, | ||||||
|  |             CURRENT_TIMESTAMP(6)); | ||||||
|  | END; | ||||||
							
								
								
									
										51
									
								
								kdb-bot/src/bot_data/migration/fix_updates_migration.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								kdb-bot/src/bot_data/migration/fix_updates_migration.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | |||||||
|  | from bot_core.logging.database_logger import DatabaseLogger | ||||||
|  | from bot_data.abc.migration_abc import MigrationABC | ||||||
|  | from bot_data.db_context import DBContext | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class FixUpdatesMigration(MigrationABC): | ||||||
|  |     name = "1.1.7_FixUpdatesMigration" | ||||||
|  |  | ||||||
|  |     def __init__(self, logger: DatabaseLogger, db: DBContext): | ||||||
|  |         MigrationABC.__init__(self) | ||||||
|  |         self._logger = logger | ||||||
|  |         self._db = db | ||||||
|  |         self._cursor = db.cursor | ||||||
|  |  | ||||||
|  |     def upgrade(self): | ||||||
|  |         self._logger.debug(__name__, "Running upgrade") | ||||||
|  |  | ||||||
|  |         self._cursor.execute( | ||||||
|  |             str( | ||||||
|  |                 f""" | ||||||
|  |                     ALTER TABLE CFG_ServerHistory | ||||||
|  |                     ADD DefaultRoleId BIGINT NULL AFTER LoginMessageChannelId; | ||||||
|  |                 """ | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         self._cursor.execute( | ||||||
|  |             str( | ||||||
|  |                 """ALTER TABLE CFG_TechnicianHistory ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER CacheMaxMessages;""" | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         self._cursor.execute( | ||||||
|  |             str( | ||||||
|  |                 """ALTER TABLE CFG_ServerHistory ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER LoginMessageChannelId;""" | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         self._exec(__file__, "config/server.sql") | ||||||
|  |         self._exec(__file__, "config/technician.sql") | ||||||
|  |  | ||||||
|  |     def downgrade(self): | ||||||
|  |         self._cursor.execute( | ||||||
|  |             str( | ||||||
|  |                 f""" | ||||||
|  |                     ALTER TABLE CFG_ServerHistory DROP COLUMN DefaultRoleId; | ||||||
|  |                 """ | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |         self._cursor.execute("ALTER TABLE CFG_TechnicianHistory DROP COLUMN FeatureFlags;") | ||||||
|  |         self._cursor.execute("ALTER TABLE CFG_ServerHistory DROP COLUMN FeatureFlags;") | ||||||
							
								
								
									
										40
									
								
								kdb-bot/src/bot_data/migration/short_role_name_migration.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								kdb-bot/src/bot_data/migration/short_role_name_migration.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | |||||||
|  | from bot_core.logging.database_logger import DatabaseLogger | ||||||
|  | from bot_data.abc.migration_abc import MigrationABC | ||||||
|  | from bot_data.db_context import DBContext | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameMigration(MigrationABC): | ||||||
|  |     name = "1.1.7_ShortRoleNameMigration" | ||||||
|  |  | ||||||
|  |     def __init__(self, logger: DatabaseLogger, db: DBContext): | ||||||
|  |         MigrationABC.__init__(self) | ||||||
|  |         self._logger = logger | ||||||
|  |         self._db = db | ||||||
|  |         self._cursor = db.cursor | ||||||
|  |  | ||||||
|  |     def upgrade(self): | ||||||
|  |         self._logger.debug(__name__, "Running upgrade") | ||||||
|  |  | ||||||
|  |         self._cursor.execute( | ||||||
|  |             str( | ||||||
|  |                 f""" | ||||||
|  |                     CREATE TABLE IF NOT EXISTS `ShortRoleNames` ( | ||||||
|  |                         `Id` BIGINT NOT NULL AUTO_INCREMENT, | ||||||
|  |                         `ShortName` VARCHAR(255) NOT NULL, | ||||||
|  |                         `DiscordRoleId` BIGINT NOT NULL, | ||||||
|  |                         `Position` ENUM('before', 'after') NOT NULL, | ||||||
|  |                         `ServerId` BIGINT, | ||||||
|  |                         `CreatedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6), | ||||||
|  |                         `LastModifiedAt` DATETIME(6) NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6), | ||||||
|  |                         PRIMARY KEY(`Id`), | ||||||
|  |                         FOREIGN KEY (`ServerId`) REFERENCES `Servers`(`ServerId`) | ||||||
|  |                     ); | ||||||
|  |                 """ | ||||||
|  |             ) | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         self._exec(__file__, "short_rule_names.sql") | ||||||
|  |  | ||||||
|  |     def downgrade(self): | ||||||
|  |         self._cursor.execute("DROP TABLE `ShortRoleNames`;") | ||||||
|  |         self._cursor.execute("DROP TABLE `ShortRoleNamesHistory`;") | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_data.model" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,9 +1,11 @@ | |||||||
| import json | import json | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
|  | from typing import Optional | ||||||
|  |  | ||||||
| from cpl_core.configuration import ConfigurationModelABC | from cpl_core.configuration import ConfigurationModelABC | ||||||
| from cpl_core.database import TableABC | from cpl_core.database import TableABC | ||||||
| from cpl_query.extension import List | from cpl_query.extension import List | ||||||
|  | from discord import Guild | ||||||
|  |  | ||||||
| from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | ||||||
| from bot_data.model.server import Server | from bot_data.model.server import Server | ||||||
| @@ -26,7 +28,7 @@ class ServerConfig(TableABC, ConfigurationModelABC): | |||||||
|         help_voice_channel_id: int, |         help_voice_channel_id: int, | ||||||
|         team_channel_id: int, |         team_channel_id: int, | ||||||
|         login_message_channel_id: int, |         login_message_channel_id: int, | ||||||
|         default_role_id: int, |         default_role_id: Optional[int], | ||||||
|         feature_flags: dict[FeatureFlagsEnum], |         feature_flags: dict[FeatureFlagsEnum], | ||||||
|         server: Server, |         server: Server, | ||||||
|         afk_channel_ids: List[int], |         afk_channel_ids: List[int], | ||||||
| @@ -59,6 +61,29 @@ class ServerConfig(TableABC, ConfigurationModelABC): | |||||||
|         self._created_at = created_at if created_at is not None else self._created_at |         self._created_at = created_at if created_at is not None else self._created_at | ||||||
|         self._modified_at = modified_at if modified_at is not None else self._modified_at |         self._modified_at = modified_at if modified_at is not None else self._modified_at | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def new(guild: Guild, server: Server) -> "ServerConfig": | ||||||
|  |         return ServerConfig( | ||||||
|  |             6, | ||||||
|  |             guild.system_channel.id, | ||||||
|  |             6, | ||||||
|  |             1, | ||||||
|  |             1, | ||||||
|  |             20, | ||||||
|  |             10, | ||||||
|  |             10, | ||||||
|  |             10, | ||||||
|  |             guild.system_channel.id, | ||||||
|  |             guild.system_channel.id, | ||||||
|  |             guild.system_channel.id, | ||||||
|  |             guild.system_channel.id, | ||||||
|  |             None, | ||||||
|  |             {}, | ||||||
|  |             server, | ||||||
|  |             List(int), | ||||||
|  |             List(int), | ||||||
|  |         ) | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def id(self) -> int: |     def id(self) -> int: | ||||||
|         return self._id |         return self._id | ||||||
| @@ -264,7 +289,7 @@ class ServerConfig(TableABC, ConfigurationModelABC): | |||||||
|                     {self._help_voice_channel_id}, |                     {self._help_voice_channel_id}, | ||||||
|                     {self._team_channel_id}, |                     {self._team_channel_id}, | ||||||
|                     {self._login_message_channel_id}, |                     {self._login_message_channel_id}, | ||||||
|                     {self._default_role_id}, |                     {"NULL" if self._default_role_id is None else self._default_role_id}, | ||||||
|                     '{json.dumps(self._feature_flags)}', |                     '{json.dumps(self._feature_flags)}', | ||||||
|                     {self._server.id} |                     {self._server.id} | ||||||
|                 ); |                 ); | ||||||
| @@ -289,7 +314,7 @@ class ServerConfig(TableABC, ConfigurationModelABC): | |||||||
|                 `HelpVoiceChannelId` = {self._help_voice_channel_id}, |                 `HelpVoiceChannelId` = {self._help_voice_channel_id}, | ||||||
|                 `TeamChannelId` = {self._team_channel_id}, |                 `TeamChannelId` = {self._team_channel_id}, | ||||||
|                 `LoginMessageChannelId` = {self._login_message_channel_id}, |                 `LoginMessageChannelId` = {self._login_message_channel_id}, | ||||||
|                 `DefaultRoleId` = {self._default_role_id}, |                 `DefaultRoleId` = {"NULL" if self._default_role_id is None else self._default_role_id}, | ||||||
|                 `FeatureFlags` = '{json.dumps(self._feature_flags)}', |                 `FeatureFlags` = '{json.dumps(self._feature_flags)}', | ||||||
|                 `ServerId` = {self._server.id} |                 `ServerId` = {self._server.id} | ||||||
|                 WHERE `Id` = {self._id}; |                 WHERE `Id` = {self._id}; | ||||||
|   | |||||||
							
								
								
									
										140
									
								
								kdb-bot/src/bot_data/model/short_role_name.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								kdb-bot/src/bot_data/model/short_role_name.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,140 @@ | |||||||
|  | from datetime import datetime | ||||||
|  |  | ||||||
|  | from cpl_core.database import TableABC | ||||||
|  | from cpl_core.dependency_injection import ServiceProviderABC | ||||||
|  | from cpl_discord.service import DiscordBotServiceABC | ||||||
|  |  | ||||||
|  | from bot_data.model.server import Server | ||||||
|  | from bot_data.model.short_role_name_position_enum import ShortRoleNamePositionEnum | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleName(TableABC): | ||||||
|  |     def __init__( | ||||||
|  |         self, | ||||||
|  |         short_name: str, | ||||||
|  |         discord_role_id: int, | ||||||
|  |         position: ShortRoleNamePositionEnum, | ||||||
|  |         server: Server, | ||||||
|  |         created_at: datetime = None, | ||||||
|  |         modified_at: datetime = None, | ||||||
|  |         id=0, | ||||||
|  |     ): | ||||||
|  |         self._id = id | ||||||
|  |         self._short_name = short_name | ||||||
|  |         self._discord_role_id = discord_role_id | ||||||
|  |         self._position = position | ||||||
|  |         self._server = server | ||||||
|  |  | ||||||
|  |         TableABC.__init__(self) | ||||||
|  |         self._created_at = created_at if created_at is not None else self._created_at | ||||||
|  |         self._modified_at = modified_at if modified_at is not None else self._modified_at | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def id(self) -> int: | ||||||
|  |         return self._id | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def short_name(self) -> str: | ||||||
|  |         return self._short_name | ||||||
|  |  | ||||||
|  |     @short_name.setter | ||||||
|  |     def short_name(self, value: str): | ||||||
|  |         self._short_name = value | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def role_id(self) -> int: | ||||||
|  |         return self._discord_role_id | ||||||
|  |  | ||||||
|  |     @role_id.setter | ||||||
|  |     def role_id(self, value: int): | ||||||
|  |         self._discord_role_id = value | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     @ServiceProviderABC.inject | ||||||
|  |     def role_name(self, bot: DiscordBotServiceABC) -> str: | ||||||
|  |         guild = bot.get_guild(self._server.discord_id) | ||||||
|  |         return guild.get_role(self.role_id).name | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def position(self) -> ShortRoleNamePositionEnum: | ||||||
|  |         return self._position | ||||||
|  |  | ||||||
|  |     @position.setter | ||||||
|  |     def position(self, value: ShortRoleNamePositionEnum): | ||||||
|  |         self._position = value | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def server(self) -> Server: | ||||||
|  |         return self._server | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def get_select_all_string() -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             SELECT * FROM `ShortRoleNames`; | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def get_select_by_id_string(id: int) -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             SELECT * FROM `ShortRoleNames` | ||||||
|  |             WHERE `Id` = {id}; | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def get_select_by_role_id_string(id: int) -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             SELECT * FROM `ShortRoleNames` | ||||||
|  |             WHERE `DiscordRoleId` = {id}; | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def get_select_by_server_id_string(id: int) -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             SELECT * FROM `ShortRoleNames` | ||||||
|  |             WHERE `ServerId` = {id}; | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def insert_string(self) -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             INSERT INTO `ShortRoleNames` ( | ||||||
|  |                 `ShortName`, `DiscordRoleId`, `Position`, `ServerId` | ||||||
|  |             ) VALUES ( | ||||||
|  |                 '{self._short_name}', | ||||||
|  |                 {self._discord_role_id}, | ||||||
|  |                 '{self._position}', | ||||||
|  |                 {self._server.id} | ||||||
|  |             ); | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def udpate_string(self) -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             UPDATE `ShortRoleNames` | ||||||
|  |             SET `ShortName` = '{self._short_name}', | ||||||
|  |             `DiscordRoleId` = {self._discord_role_id}, | ||||||
|  |             `Position` = '{self._position}', | ||||||
|  |             `ServerId` = {self._server.id} | ||||||
|  |             WHERE `Id` = {self._id}; | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def delete_string(self) -> str: | ||||||
|  |         return str( | ||||||
|  |             f""" | ||||||
|  |             DELETE FROM `ShortRoleNames` | ||||||
|  |             WHERE `Id` = {self._id}; | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
							
								
								
									
										56
									
								
								kdb-bot/src/bot_data/model/short_role_name_history.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								kdb-bot/src/bot_data/model/short_role_name_history.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,56 @@ | |||||||
|  | from cpl_core.dependency_injection import ServiceProviderABC | ||||||
|  | from cpl_discord.service import DiscordBotServiceABC | ||||||
|  |  | ||||||
|  | from bot_data.abc.history_table_abc import HistoryTableABC | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameHistory(HistoryTableABC): | ||||||
|  |     def __init__( | ||||||
|  |         self, | ||||||
|  |         name: str, | ||||||
|  |         discord_role_id: int, | ||||||
|  |         server: int, | ||||||
|  |         deleted: bool, | ||||||
|  |         date_from: str, | ||||||
|  |         date_to: str, | ||||||
|  |         id=0, | ||||||
|  |     ): | ||||||
|  |         HistoryTableABC.__init__(self) | ||||||
|  |         self._id = id | ||||||
|  |         self._name = name | ||||||
|  |         self._discord_role_id = discord_role_id | ||||||
|  |         self._server = server | ||||||
|  |  | ||||||
|  |         self._deleted = deleted | ||||||
|  |         self._date_from = date_from | ||||||
|  |         self._date_to = date_to | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def id(self) -> int: | ||||||
|  |         return self._id | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def name(self) -> str: | ||||||
|  |         return self._name | ||||||
|  |  | ||||||
|  |     @name.setter | ||||||
|  |     def name(self, value: str): | ||||||
|  |         self._name = value | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def role_id(self) -> int: | ||||||
|  |         return self._discord_role_id | ||||||
|  |  | ||||||
|  |     @role_id.setter | ||||||
|  |     def role_id(self, value: int): | ||||||
|  |         self._discord_role_id = value | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     @ServiceProviderABC.inject | ||||||
|  |     def role_name(self, bot: DiscordBotServiceABC) -> str: | ||||||
|  |         guild = bot.get_guild(self._server.discord_id) | ||||||
|  |         return guild.get_role(self.role_id).name | ||||||
|  |  | ||||||
|  |     @property | ||||||
|  |     def server(self) -> int: | ||||||
|  |         return self._server | ||||||
| @@ -0,0 +1,6 @@ | |||||||
|  | from enum import Enum | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNamePositionEnum(Enum): | ||||||
|  |     before = "before" | ||||||
|  |     after = "after" | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_data.service" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -34,30 +34,12 @@ class ServerConfigSeeder(DataSeederABC): | |||||||
|                 if self._server_config.does_server_config_exists(server.id): |                 if self._server_config.does_server_config_exists(server.id): | ||||||
|                     continue |                     continue | ||||||
|  |  | ||||||
|                 config = ServerConfig( |                 config = ServerConfig.new(guild, server) | ||||||
|                     6, |  | ||||||
|                     guild.system_channel.id, |  | ||||||
|                     6, |  | ||||||
|                     1, |  | ||||||
|                     1, |  | ||||||
|                     20, |  | ||||||
|                     10, |  | ||||||
|                     10, |  | ||||||
|                     10, |  | ||||||
|                     guild.system_channel.id, |  | ||||||
|                     guild.system_channel.id, |  | ||||||
|                     guild.system_channel.id, |  | ||||||
|                     guild.system_channel.id, |  | ||||||
|                     {}, |  | ||||||
|                     server, |  | ||||||
|                     [], |  | ||||||
|                     [], |  | ||||||
|                 ) |  | ||||||
|  |  | ||||||
|                 self._server_config.add_server_config(config) |                 self._server_config.add_server_config(config) | ||||||
|  |  | ||||||
|                 self._db.save_changes() |                 self._db.save_changes() | ||||||
|                 self._logger.debug(__name__, "Seeded technician config") |                 self._logger.debug(__name__, "Seeded server config") | ||||||
|  |  | ||||||
|         except Exception as e: |         except Exception as e: | ||||||
|             self._logger.error(__name__, f"Seeding technician config failed", e) |             self._logger.error(__name__, f"Seeding server config failed", e) | ||||||
|   | |||||||
| @@ -0,0 +1,95 @@ | |||||||
|  | from typing import Optional | ||||||
|  |  | ||||||
|  | from cpl_core.database.context import DatabaseContextABC | ||||||
|  | from cpl_query.extension import List | ||||||
|  |  | ||||||
|  | from bot_core.logging.database_logger import DatabaseLogger | ||||||
|  | from bot_data.abc.server_repository_abc import ServerRepositoryABC | ||||||
|  | from bot_data.abc.short_role_name_repository_abc import ShortRoleNameRepositoryABC | ||||||
|  | from bot_data.model.short_role_name import ShortRoleName | ||||||
|  | from bot_data.model.short_role_name_position_enum import ShortRoleNamePositionEnum | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameRepositoryService(ShortRoleNameRepositoryABC): | ||||||
|  |     def __init__( | ||||||
|  |         self, | ||||||
|  |         logger: DatabaseLogger, | ||||||
|  |         db_context: DatabaseContextABC, | ||||||
|  |         servers: ServerRepositoryABC, | ||||||
|  |     ): | ||||||
|  |         self._logger = logger | ||||||
|  |         self._context = db_context | ||||||
|  |  | ||||||
|  |         self._servers = servers | ||||||
|  |  | ||||||
|  |         ShortRoleNameRepositoryABC.__init__(self) | ||||||
|  |  | ||||||
|  |     @staticmethod | ||||||
|  |     def _get_value_from_result(value: any) -> Optional[any]: | ||||||
|  |         if isinstance(value, str) and "NULL" in value: | ||||||
|  |             return None | ||||||
|  |  | ||||||
|  |         return value | ||||||
|  |  | ||||||
|  |     def _short_role_name_from_result(self, sql_result: tuple) -> ShortRoleName: | ||||||
|  |         return ShortRoleName( | ||||||
|  |             self._get_value_from_result(sql_result[1]),  # name | ||||||
|  |             int(self._get_value_from_result(sql_result[2])),  # role_id | ||||||
|  |             ShortRoleNamePositionEnum(self._get_value_from_result(sql_result[3])),  # position | ||||||
|  |             self._servers.get_server_by_id(sql_result[4]),  # server | ||||||
|  |             self._get_value_from_result(sql_result[5]),  # created_at | ||||||
|  |             self._get_value_from_result(sql_result[6]),  # modified_at | ||||||
|  |             id=self._get_value_from_result(sql_result[0]),  # id | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     def get_short_role_names(self) -> List[ShortRoleName]: | ||||||
|  |         short_role_names = List(ShortRoleName) | ||||||
|  |         self._logger.trace(__name__, f"Send SQL command: {ShortRoleName.get_select_all_string()}") | ||||||
|  |         results = self._context.select(ShortRoleName.get_select_all_string()) | ||||||
|  |         for result in results: | ||||||
|  |             self._logger.trace(__name__, f"Get short_role_name with id {result[0]}") | ||||||
|  |             short_role_names.append(self._short_role_name_from_result(result)) | ||||||
|  |  | ||||||
|  |         return short_role_names | ||||||
|  |  | ||||||
|  |     def get_short_role_name_by_id(self, id: int) -> ShortRoleName: | ||||||
|  |         self._logger.trace(__name__, f"Send SQL command: {ShortRoleName.get_select_by_id_string(id)}") | ||||||
|  |         result = self._context.select(ShortRoleName.get_select_by_id_string(id))[0] | ||||||
|  |  | ||||||
|  |         return self._short_role_name_from_result(result) | ||||||
|  |  | ||||||
|  |     def find_short_role_names_by_role_id(self, role_id: int) -> List[ShortRoleName]: | ||||||
|  |         short_role_names = List(ShortRoleName) | ||||||
|  |         self._logger.trace(__name__, f"Send SQL command: {ShortRoleName.get_select_by_role_id_string(role_id)}") | ||||||
|  |         results = self._context.select(ShortRoleName.get_select_by_role_id_string(role_id)) | ||||||
|  |         for result in results: | ||||||
|  |             self._logger.trace(__name__, f"Get short_role_name with id {result[0]}") | ||||||
|  |             short_role_names.append(self._short_role_name_from_result(result)) | ||||||
|  |  | ||||||
|  |         return short_role_names | ||||||
|  |  | ||||||
|  |     def get_short_role_names_by_server_id(self, server_id: int) -> List[ShortRoleName]: | ||||||
|  |         short_role_names = List(ShortRoleName) | ||||||
|  |         self._logger.trace( | ||||||
|  |             __name__, | ||||||
|  |             f"Send SQL command: {ShortRoleName.get_select_by_server_id_string(server_id)}", | ||||||
|  |         ) | ||||||
|  |         results = self._context.select(ShortRoleName.get_select_by_server_id_string(server_id)) | ||||||
|  |  | ||||||
|  |         for result in results: | ||||||
|  |             self._logger.trace(__name__, f"Get short_role_name with id {result[0]}") | ||||||
|  |             short_role_names.append(self._short_role_name_from_result(result)) | ||||||
|  |  | ||||||
|  |         return short_role_names | ||||||
|  |  | ||||||
|  |     def add_short_role_name(self, short_role_name: ShortRoleName): | ||||||
|  |         self._logger.trace(__name__, f"Send SQL command: {short_role_name.insert_string}") | ||||||
|  |         self._context.cursor.execute(short_role_name.insert_string) | ||||||
|  |  | ||||||
|  |     def update_short_role_name(self, short_role_name: ShortRoleName): | ||||||
|  |         self._logger.trace(__name__, f"Send SQL command: {short_role_name.udpate_string}") | ||||||
|  |         self._context.cursor.execute(short_role_name.udpate_string) | ||||||
|  |  | ||||||
|  |     def delete_short_role_name(self, short_role_name: ShortRoleName): | ||||||
|  |         self._logger.trace(__name__, f"Send SQL command: {short_role_name.delete_string}") | ||||||
|  |         self._context.cursor.execute(short_role_name.delete_string) | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_graphql" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_graphql.abc" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -20,6 +20,7 @@ from bot_data.model.known_user import KnownUser | |||||||
| from bot_data.model.level import Level | from bot_data.model.level import Level | ||||||
| from bot_data.model.server import Server | from bot_data.model.server import Server | ||||||
| from bot_data.model.server_config import ServerConfig | from bot_data.model.server_config import ServerConfig | ||||||
|  | from bot_data.model.short_role_name import ShortRoleName | ||||||
| from bot_data.model.user import User | from bot_data.model.user import User | ||||||
| from bot_data.model.user_joined_game_server import UserJoinedGameServer | from bot_data.model.user_joined_game_server import UserJoinedGameServer | ||||||
| from bot_data.model.user_joined_server import UserJoinedServer | from bot_data.model.user_joined_server import UserJoinedServer | ||||||
| @@ -184,6 +185,16 @@ class QueryABC(ObjectType): | |||||||
|                     access = True |                     access = True | ||||||
|                     break |                     break | ||||||
|  |  | ||||||
|  |         elif type(element) == ShortRoleName: | ||||||
|  |             element: ShortRoleName = element | ||||||
|  |             for u in user.users: | ||||||
|  |                 u: User = u | ||||||
|  |                 guild = bot.get_guild(u.server.discord_id) | ||||||
|  |                 member = guild.get_member(u.discord_id) | ||||||
|  |                 if permissions.is_member_moderator(member) and u.server.id == element.server.id: | ||||||
|  |                     access = True | ||||||
|  |                     break | ||||||
|  |  | ||||||
|         elif type(element) == dict and "key" in element and element["key"] in [e.value for e in FeatureFlagsEnum]: |         elif type(element) == dict and "key" in element and element["key"] in [e.value for e in FeatureFlagsEnum]: | ||||||
|             for u in user.users: |             for u in user.users: | ||||||
|                 u: User = u |                 u: User = u | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_graphql.filter" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
							
								
								
									
										70
									
								
								kdb-bot/src/bot_graphql/filter/short_role_name_filter.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								kdb-bot/src/bot_graphql/filter/short_role_name_filter.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | |||||||
|  | from cpl_discord.service import DiscordBotServiceABC | ||||||
|  | from cpl_query.extension import List | ||||||
|  |  | ||||||
|  | from bot_data.model.short_role_name import ShortRoleName | ||||||
|  | from bot_data.model.short_role_name_position_enum import ShortRoleNamePositionEnum | ||||||
|  | from bot_data.model.user import User | ||||||
|  | from bot_graphql.abc.filter_abc import FilterABC | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameFilter(FilterABC): | ||||||
|  |     def __init__(self, bot: DiscordBotServiceABC): | ||||||
|  |         FilterABC.__init__(self) | ||||||
|  |         self._bot = bot | ||||||
|  |  | ||||||
|  |         self._id = None | ||||||
|  |         self._short_name = None | ||||||
|  |         self._role_id = None | ||||||
|  |         self._role_name = None | ||||||
|  |         self._position = None | ||||||
|  |         self._server = None | ||||||
|  |  | ||||||
|  |     def from_dict(self, values: dict): | ||||||
|  |         if "id" in values: | ||||||
|  |             self._id = int(values["id"]) | ||||||
|  |  | ||||||
|  |         if "shortName" in values: | ||||||
|  |             self._short_name = values["shortName"] | ||||||
|  |  | ||||||
|  |         if "roleId" in values: | ||||||
|  |             self._role_id = int(values["roleId"]) | ||||||
|  |  | ||||||
|  |         if "roleName" in values: | ||||||
|  |             self._role_name = values["roleName"] | ||||||
|  |  | ||||||
|  |         if "position" in values: | ||||||
|  |             self._position = ShortRoleNamePositionEnum(values["position"]) | ||||||
|  |  | ||||||
|  |         if "server" in values: | ||||||
|  |             from bot_graphql.filter.server_filter import ServerFilter | ||||||
|  |  | ||||||
|  |             self._server: ServerFilter = self._services.get_service(ServerFilter) | ||||||
|  |             self._server.from_dict(values["server"]) | ||||||
|  |  | ||||||
|  |     def filter(self, query: List[User]) -> List[User]: | ||||||
|  |         if self._id is not None: | ||||||
|  |             query = query.where(lambda x: x.id == self._id) | ||||||
|  |  | ||||||
|  |         if self._short_name is not None: | ||||||
|  |             query = query.where(lambda x: x.short_name == self._short_name or self._short_name in x.short_name) | ||||||
|  |  | ||||||
|  |         if self._role_id is not None: | ||||||
|  |             query = query.where(lambda x: x.role_id == self._role_id) | ||||||
|  |  | ||||||
|  |         if self._role_name is not None and self._role_id is not None: | ||||||
|  |  | ||||||
|  |             def get_role_name(x: ShortRoleName): | ||||||
|  |                 guild = self._bot.get_guild(x.server.discord_id) | ||||||
|  |                 name = guild.get_role(x.role_id).name | ||||||
|  |                 return name == self._role_name or self._role_name in name | ||||||
|  |  | ||||||
|  |             query = query.where(get_role_name) | ||||||
|  |  | ||||||
|  |         if self._position is not None: | ||||||
|  |             query = query.where(lambda x: x.position.value == self._position.value) | ||||||
|  |  | ||||||
|  |         if self._server is not None: | ||||||
|  |             servers = self._server.filter(query.select(lambda x: x.server)).select(lambda x: x.id) | ||||||
|  |             query = query.where(lambda x: x.server.id in servers) | ||||||
|  |  | ||||||
|  |         return query | ||||||
| @@ -5,6 +5,7 @@ type Mutation { | |||||||
|     user: UserMutation |     user: UserMutation | ||||||
|     userJoinedGameServer: UserJoinedGameServerMutation |     userJoinedGameServer: UserJoinedGameServerMutation | ||||||
|     achievement: AchievementMutation |     achievement: AchievementMutation | ||||||
|  |     shortRoleName: ShortRoleNameMutation | ||||||
|     technicianConfig: TechnicianConfigMutation |     technicianConfig: TechnicianConfigMutation | ||||||
|     serverConfig: ServerConfigMutation |     serverConfig: ServerConfigMutation | ||||||
| } | } | ||||||
| @@ -37,6 +37,10 @@ type Query { | |||||||
|     achievementAttributes: [AchievementAttribute] |     achievementAttributes: [AchievementAttribute] | ||||||
|     achievementOperators: [String] |     achievementOperators: [String] | ||||||
|  |  | ||||||
|  |     shortRoleNameCount: Int | ||||||
|  |     shortRoleNames(filter: ShortRoleNameFilter, page: Page, sort: Sort): [ShortRoleName] | ||||||
|  |     shortRoleNamePositions: [String] | ||||||
|  |  | ||||||
|     technicianConfig: TechnicianConfig |     technicianConfig: TechnicianConfig | ||||||
|     possibleFeatureFlags: [String] |     possibleFeatureFlags: [String] | ||||||
|     discord: Discord |     discord: Discord | ||||||
|   | |||||||
| @@ -31,7 +31,11 @@ type Server implements TableWithHistoryQuery { | |||||||
|     achievementCount: Int |     achievementCount: Int | ||||||
|     achievements(filter: AchievementFilter, page: Page, sort: Sort): [Achievement] |     achievements(filter: AchievementFilter, page: Page, sort: Sort): [Achievement] | ||||||
|  |  | ||||||
|  |     shortRoleNameCount: Int | ||||||
|  |     shortRoleNames(filter: ShortRoleNameFilter, page: Page, sort: Sort): [ShortRoleName] | ||||||
|  |  | ||||||
|     config: ServerConfig |     config: ServerConfig | ||||||
|  |     hasFeatureFlag(flag: String): FeatureFlag | ||||||
|  |  | ||||||
|     createdAt: String |     createdAt: String | ||||||
|     modifiedAt: String |     modifiedAt: String | ||||||
|   | |||||||
							
								
								
									
										50
									
								
								kdb-bot/src/bot_graphql/graphql/shortRoleName.gql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								kdb-bot/src/bot_graphql/graphql/shortRoleName.gql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | |||||||
|  | type ShortRoleName implements TableWithHistoryQuery { | ||||||
|  |     id: ID | ||||||
|  |     shortName: String | ||||||
|  |     roleId: String | ||||||
|  |     roleName: String | ||||||
|  |     position: String | ||||||
|  |  | ||||||
|  |     server: Server | ||||||
|  |  | ||||||
|  |     createdAt: String | ||||||
|  |     modifiedAt: String | ||||||
|  |  | ||||||
|  |     history: [ShortRoleNameHistory] | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type ShortRoleNameHistory implements HistoryTableQuery { | ||||||
|  |     id: ID | ||||||
|  |     shortName: String | ||||||
|  |     roleId: String | ||||||
|  |     position: String | ||||||
|  |  | ||||||
|  |     server: ID | ||||||
|  |  | ||||||
|  |     deleted: Boolean | ||||||
|  |     dateFrom: String | ||||||
|  |     dateTo: String | ||||||
|  | } | ||||||
|  |  | ||||||
|  | input ShortRoleNameFilter { | ||||||
|  |     id: ID | ||||||
|  |     shortName: String | ||||||
|  |     roleId: String | ||||||
|  |     roleName: String | ||||||
|  |     position: String | ||||||
|  | } | ||||||
|  |  | ||||||
|  | type ShortRoleNameMutation { | ||||||
|  |     createShortRoleName(input: ShortRoleNameInput!): ShortRoleName | ||||||
|  |     updateShortRoleName(input: ShortRoleNameInput!): ShortRoleName | ||||||
|  |     deleteShortRoleName(id: ID): ShortRoleName | ||||||
|  | } | ||||||
|  |  | ||||||
|  | input ShortRoleNameInput { | ||||||
|  |     id: ID | ||||||
|  |     shortName: String | ||||||
|  |     roleId: String | ||||||
|  |     roleName: String | ||||||
|  |     position: String | ||||||
|  |     serverId: ID | ||||||
|  | } | ||||||
| @@ -5,7 +5,6 @@ from cpl_discord.service.discord_collection_abc import DiscordCollectionABC | |||||||
|  |  | ||||||
| from bot_core.abc.module_abc import ModuleABC | from bot_core.abc.module_abc import ModuleABC | ||||||
| from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | ||||||
| from bot_data.service.seeder_service import SeederService |  | ||||||
| from bot_graphql.abc.filter_abc import FilterABC | from bot_graphql.abc.filter_abc import FilterABC | ||||||
| from bot_graphql.abc.query_abc import QueryABC | from bot_graphql.abc.query_abc import QueryABC | ||||||
| from bot_graphql.filter.achievement_filter import AchievementFilter | from bot_graphql.filter.achievement_filter import AchievementFilter | ||||||
| @@ -14,6 +13,7 @@ from bot_graphql.filter.auto_role_rule_filter import AutoRoleRuleFilter | |||||||
| from bot_graphql.filter.client_filter import ClientFilter | from bot_graphql.filter.client_filter import ClientFilter | ||||||
| from bot_graphql.filter.level_filter import LevelFilter | from bot_graphql.filter.level_filter import LevelFilter | ||||||
| from bot_graphql.filter.server_filter import ServerFilter | from bot_graphql.filter.server_filter import ServerFilter | ||||||
|  | from bot_graphql.filter.short_role_name_filter import ShortRoleNameFilter | ||||||
| from bot_graphql.filter.user_filter import UserFilter | from bot_graphql.filter.user_filter import UserFilter | ||||||
| from bot_graphql.filter.user_joined_game_server_filter import UserJoinedGameServerFilter | from bot_graphql.filter.user_joined_game_server_filter import UserJoinedGameServerFilter | ||||||
| from bot_graphql.filter.user_joined_server_filter import UserJoinedServerFilter | from bot_graphql.filter.user_joined_server_filter import UserJoinedServerFilter | ||||||
| @@ -25,6 +25,7 @@ from bot_graphql.mutations.auto_role_mutation import AutoRoleMutation | |||||||
| from bot_graphql.mutations.auto_role_rule_mutation import AutoRoleRuleMutation | from bot_graphql.mutations.auto_role_rule_mutation import AutoRoleRuleMutation | ||||||
| from bot_graphql.mutations.level_mutation import LevelMutation | from bot_graphql.mutations.level_mutation import LevelMutation | ||||||
| from bot_graphql.mutations.server_config_mutation import ServerConfigMutation | from bot_graphql.mutations.server_config_mutation import ServerConfigMutation | ||||||
|  | from bot_graphql.mutations.short_role_name_mutation import ShortRoleNameMutation | ||||||
| from bot_graphql.mutations.technician_config_mutation import TechnicianConfigMutation | from bot_graphql.mutations.technician_config_mutation import TechnicianConfigMutation | ||||||
| from bot_graphql.mutations.user_joined_game_server_mutation import UserJoinedGameServerMutation | from bot_graphql.mutations.user_joined_game_server_mutation import UserJoinedGameServerMutation | ||||||
| from bot_graphql.mutations.user_mutation import UserMutation | from bot_graphql.mutations.user_mutation import UserMutation | ||||||
| @@ -51,6 +52,8 @@ from bot_graphql.queries.level_query import LevelQuery | |||||||
| from bot_graphql.queries.server_config_query import ServerConfigQuery | from bot_graphql.queries.server_config_query import ServerConfigQuery | ||||||
| from bot_graphql.queries.server_history_query import ServerHistoryQuery | from bot_graphql.queries.server_history_query import ServerHistoryQuery | ||||||
| from bot_graphql.queries.server_query import ServerQuery | from bot_graphql.queries.server_query import ServerQuery | ||||||
|  | from bot_graphql.queries.short_role_name_history_query import ShortRoleNameHistoryQuery | ||||||
|  | from bot_graphql.queries.short_role_name_query import ShortRoleNameQuery | ||||||
| from bot_graphql.queries.technician_config_history_query import TechnicianConfigHistoryQuery | from bot_graphql.queries.technician_config_history_query import TechnicianConfigHistoryQuery | ||||||
| from bot_graphql.queries.technician_config_query import TechnicianConfigQuery | from bot_graphql.queries.technician_config_query import TechnicianConfigQuery | ||||||
| from bot_graphql.queries.technician_id_config_history_query import TechnicianIdConfigHistoryQuery | from bot_graphql.queries.technician_id_config_history_query import TechnicianIdConfigHistoryQuery | ||||||
| @@ -110,6 +113,8 @@ class GraphQLModule(ModuleABC): | |||||||
|         services.add_transient(QueryABC, UserJoinedVoiceChannelQuery) |         services.add_transient(QueryABC, UserJoinedVoiceChannelQuery) | ||||||
|         services.add_transient(QueryABC, UserJoinedGameServerHistoryQuery) |         services.add_transient(QueryABC, UserJoinedGameServerHistoryQuery) | ||||||
|         services.add_transient(QueryABC, UserJoinedGameServerQuery) |         services.add_transient(QueryABC, UserJoinedGameServerQuery) | ||||||
|  |         services.add_transient(QueryABC, ShortRoleNameHistoryQuery) | ||||||
|  |         services.add_transient(QueryABC, ShortRoleNameQuery) | ||||||
|  |  | ||||||
|         services.add_transient(QueryABC, DiscordQuery) |         services.add_transient(QueryABC, DiscordQuery) | ||||||
|         services.add_transient(QueryABC, GuildQuery) |         services.add_transient(QueryABC, GuildQuery) | ||||||
| @@ -129,6 +134,7 @@ class GraphQLModule(ModuleABC): | |||||||
|         services.add_transient(FilterABC, UserJoinedServerFilter) |         services.add_transient(FilterABC, UserJoinedServerFilter) | ||||||
|         services.add_transient(FilterABC, UserJoinedVoiceChannelFilter) |         services.add_transient(FilterABC, UserJoinedVoiceChannelFilter) | ||||||
|         services.add_transient(FilterABC, UserJoinedGameServerFilter) |         services.add_transient(FilterABC, UserJoinedGameServerFilter) | ||||||
|  |         services.add_transient(FilterABC, ShortRoleNameFilter) | ||||||
|  |  | ||||||
|         # mutations |         # mutations | ||||||
|         services.add_transient(QueryABC, AutoRoleMutation) |         services.add_transient(QueryABC, AutoRoleMutation) | ||||||
| @@ -136,8 +142,7 @@ class GraphQLModule(ModuleABC): | |||||||
|         services.add_transient(QueryABC, LevelMutation) |         services.add_transient(QueryABC, LevelMutation) | ||||||
|         services.add_transient(QueryABC, UserMutation) |         services.add_transient(QueryABC, UserMutation) | ||||||
|         services.add_transient(QueryABC, AchievementMutation) |         services.add_transient(QueryABC, AchievementMutation) | ||||||
|  |         services.add_transient(QueryABC, ShortRoleNameMutation) | ||||||
|         services.add_transient(QueryABC, UserJoinedGameServerMutation) |         services.add_transient(QueryABC, UserJoinedGameServerMutation) | ||||||
|         services.add_transient(QueryABC, TechnicianConfigMutation) |         services.add_transient(QueryABC, TechnicianConfigMutation) | ||||||
|         services.add_transient(QueryABC, ServerConfigMutation) |         services.add_transient(QueryABC, ServerConfigMutation) | ||||||
|  |  | ||||||
|         services.add_transient(SeederService) |  | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_graphql.model" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ from bot_graphql.mutations.auto_role_mutation import AutoRoleMutation | |||||||
| from bot_graphql.mutations.auto_role_rule_mutation import AutoRoleRuleMutation | from bot_graphql.mutations.auto_role_rule_mutation import AutoRoleRuleMutation | ||||||
| from bot_graphql.mutations.level_mutation import LevelMutation | from bot_graphql.mutations.level_mutation import LevelMutation | ||||||
| from bot_graphql.mutations.server_config_mutation import ServerConfigMutation | from bot_graphql.mutations.server_config_mutation import ServerConfigMutation | ||||||
|  | from bot_graphql.mutations.short_role_name_mutation import ShortRoleNameMutation | ||||||
| from bot_graphql.mutations.technician_config_mutation import TechnicianConfigMutation | from bot_graphql.mutations.technician_config_mutation import TechnicianConfigMutation | ||||||
| from bot_graphql.mutations.user_joined_game_server_mutation import UserJoinedGameServerMutation | from bot_graphql.mutations.user_joined_game_server_mutation import UserJoinedGameServerMutation | ||||||
| from bot_graphql.mutations.user_mutation import UserMutation | from bot_graphql.mutations.user_mutation import UserMutation | ||||||
| @@ -21,6 +22,7 @@ class Mutation(MutationType): | |||||||
|         user_joined_game_server: UserJoinedGameServerMutation, |         user_joined_game_server: UserJoinedGameServerMutation, | ||||||
|         technician_config: TechnicianConfigMutation, |         technician_config: TechnicianConfigMutation, | ||||||
|         server_config: ServerConfigMutation, |         server_config: ServerConfigMutation, | ||||||
|  |         short_role_name_mutation: ShortRoleNameMutation, | ||||||
|     ): |     ): | ||||||
|         MutationType.__init__(self) |         MutationType.__init__(self) | ||||||
|  |  | ||||||
| @@ -30,5 +32,6 @@ class Mutation(MutationType): | |||||||
|         self.set_field("user", lambda *_: user_mutation) |         self.set_field("user", lambda *_: user_mutation) | ||||||
|         self.set_field("achievement", lambda *_: achievement_mutation) |         self.set_field("achievement", lambda *_: achievement_mutation) | ||||||
|         self.set_field("userJoinedGameServer", lambda *_: user_joined_game_server) |         self.set_field("userJoinedGameServer", lambda *_: user_joined_game_server) | ||||||
|  |         self.set_field("shortRoleName", lambda *_: short_role_name_mutation) | ||||||
|         self.set_field("technicianConfig", lambda *_: technician_config) |         self.set_field("technicianConfig", lambda *_: technician_config) | ||||||
|         self.set_field("serverConfig", lambda *_: server_config) |         self.set_field("serverConfig", lambda *_: server_config) | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_graphql.mutations" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -0,0 +1,85 @@ | |||||||
|  | from cpl_core.database.context import DatabaseContextABC | ||||||
|  | from cpl_discord.service import DiscordBotServiceABC | ||||||
|  |  | ||||||
|  | from bot_data.abc.server_repository_abc import ServerRepositoryABC | ||||||
|  | from bot_data.abc.short_role_name_repository_abc import ShortRoleNameRepositoryABC | ||||||
|  | from bot_data.model.short_role_name import ShortRoleName | ||||||
|  | from bot_data.model.user_role_enum import UserRoleEnum | ||||||
|  | from bot_graphql.abc.query_abc import QueryABC | ||||||
|  | from modules.permission.service.permission_service import PermissionService | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameMutation(QueryABC): | ||||||
|  |     def __init__( | ||||||
|  |         self, | ||||||
|  |         servers: ServerRepositoryABC, | ||||||
|  |         short_role_names: ShortRoleNameRepositoryABC, | ||||||
|  |         bot: DiscordBotServiceABC, | ||||||
|  |         db: DatabaseContextABC, | ||||||
|  |         permissions: PermissionService, | ||||||
|  |     ): | ||||||
|  |         QueryABC.__init__(self, "ShortRoleNameMutation") | ||||||
|  |  | ||||||
|  |         self._servers = servers | ||||||
|  |         self._short_role_names = short_role_names | ||||||
|  |         self._bot = bot | ||||||
|  |         self._db = db | ||||||
|  |         self._permissions = permissions | ||||||
|  |  | ||||||
|  |         self.set_field("createShortRoleName", self.resolve_create_short_role_name) | ||||||
|  |         self.set_field("updateShortRoleName", self.resolve_update_short_role_name) | ||||||
|  |         self.set_field("deleteShortRoleName", self.resolve_delete_short_role_name) | ||||||
|  |  | ||||||
|  |     def resolve_create_short_role_name(self, *_, input: dict): | ||||||
|  |         server = self._servers.get_server_by_id(input["serverId"]) | ||||||
|  |         self._can_user_mutate_data(server, UserRoleEnum.admin) | ||||||
|  |  | ||||||
|  |         short_role_name = ShortRoleName( | ||||||
|  |             input["shortName"], | ||||||
|  |             int(input["roleId"]), | ||||||
|  |             input["position"], | ||||||
|  |             server, | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |         result = self._short_role_names.find_short_role_names_by_role_id(short_role_name.role_id) | ||||||
|  |         if result is not None: | ||||||
|  |             raise ValueError("Short name for role already exists") | ||||||
|  |  | ||||||
|  |         self._short_role_names.add_short_role_name(short_role_name) | ||||||
|  |         self._db.save_changes() | ||||||
|  |  | ||||||
|  |         def get_new_short_role_name(srn: ShortRoleName): | ||||||
|  |             return ( | ||||||
|  |                 srn.short_name == short_role_name.short_name | ||||||
|  |                 and srn.role_id == short_role_name.role_id | ||||||
|  |                 and srn.position.value == short_role_name.position | ||||||
|  |             ) | ||||||
|  |  | ||||||
|  |         return ( | ||||||
|  |             self._short_role_names.get_short_role_names_by_server_id(short_role_name.server.id) | ||||||
|  |             .where(get_new_short_role_name) | ||||||
|  |             .last() | ||||||
|  |         ) | ||||||
|  |  | ||||||
|  |     def resolve_update_short_role_name(self, *_, input: dict): | ||||||
|  |         short_role_name = self._short_role_names.get_short_role_name_by_id(input["id"]) | ||||||
|  |         self._can_user_mutate_data(short_role_name.server, UserRoleEnum.moderator) | ||||||
|  |  | ||||||
|  |         short_role_name.short_name = input["shortName"] if "shortName" in input else short_role_name.short_name | ||||||
|  |         short_role_name.role_id = input["roleId"] if "roleId" in input else short_role_name.role_id | ||||||
|  |         short_role_name.position = input["position"] if "position" in input else short_role_name.position | ||||||
|  |  | ||||||
|  |         self._short_role_names.update_short_role_name(short_role_name) | ||||||
|  |         self._db.save_changes() | ||||||
|  |  | ||||||
|  |         short_role_name = self._short_role_names.get_short_role_name_by_id(input["id"]) | ||||||
|  |         return short_role_name | ||||||
|  |  | ||||||
|  |     def resolve_delete_short_role_name(self, *_, id: int): | ||||||
|  |         short_role_name = self._short_role_names.get_short_role_name_by_id(id) | ||||||
|  |         self._can_user_mutate_data(short_role_name.server, UserRoleEnum.admin) | ||||||
|  |  | ||||||
|  |         self._short_role_names.delete_short_role_name(short_role_name) | ||||||
|  |         self._db.save_changes() | ||||||
|  |  | ||||||
|  |         return short_role_name | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_graphql.queries" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "bot_graphql.queries.discord" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | import discord | ||||||
| from cpl_discord.service import DiscordBotServiceABC | from cpl_discord.service import DiscordBotServiceABC | ||||||
| from cpl_query.extension import List | from cpl_query.extension import List | ||||||
| from discord import Guild | from discord import Guild | ||||||
| @@ -17,22 +18,24 @@ class GuildQuery(QueryABC): | |||||||
|         self.set_field("id", lambda g, *_: g.id) |         self.set_field("id", lambda g, *_: g.id) | ||||||
|         self.set_field("name", lambda g, *_: g.name) |         self.set_field("name", lambda g, *_: g.name) | ||||||
|         self.set_field("channels", self._resolve_channels) |         self.set_field("channels", self._resolve_channels) | ||||||
|         self.set_field("roles", lambda g, *_: g.roles) |         self.set_field("roles", lambda g, *_: g.roles.order_by(lambda x: x.position)) | ||||||
|         self.set_field("emojis", lambda g, *_: g.emojis) |         self.set_field( | ||||||
|  |             "emojis", lambda g, *_: List(discord.Emoji, g.emojis).order_by_descending(lambda x: x.created_at) | ||||||
|  |         ) | ||||||
|  |  | ||||||
|     def _resolve_channels(self, g: Guild, *_, filter=None): |     def _resolve_channels(self, g: Guild, *_, filter=None): | ||||||
|         users = List(any).extend(g.channels) |         channels = List(any).extend(g.channels) | ||||||
|  |  | ||||||
|         if filter is None: |         if filter is None: | ||||||
|             return users |             return channels | ||||||
|  |  | ||||||
|         if "id" in filter: |         if "id" in filter: | ||||||
|             users = users.where(lambda c: c.id == int(filter["id"])) |             channels = channels.where(lambda c: c.id == int(filter["id"])) | ||||||
|  |  | ||||||
|         if "name" in filter: |         if "name" in filter: | ||||||
|             users = users.where(lambda c: c.id == filter["name"]) |             channels = channels.where(lambda c: c.id == filter["name"]) | ||||||
|  |  | ||||||
|         if "type" in filter: |         if "type" in filter: | ||||||
|             users = users.where(lambda c: type(c).__name__ == filter["type"]) |             channels = channels.where(lambda c: type(c).__name__ == filter["type"]) | ||||||
|  |  | ||||||
|         return users |         return channels.order_by(lambda x: x.position) | ||||||
|   | |||||||
| @@ -1,28 +1,35 @@ | |||||||
|  | from cpl_core.configuration import ConfigurationABC | ||||||
| from cpl_core.database.context import DatabaseContextABC | from cpl_core.database.context import DatabaseContextABC | ||||||
| from cpl_discord.service import DiscordBotServiceABC | from cpl_discord.service import DiscordBotServiceABC | ||||||
|  |  | ||||||
|  | from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum | ||||||
|  | from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings | ||||||
| from bot_data.abc.achievement_repository_abc import AchievementRepositoryABC | from bot_data.abc.achievement_repository_abc import AchievementRepositoryABC | ||||||
| from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC | from bot_data.abc.auto_role_repository_abc import AutoRoleRepositoryABC | ||||||
| from bot_data.abc.client_repository_abc import ClientRepositoryABC | from bot_data.abc.client_repository_abc import ClientRepositoryABC | ||||||
| from bot_data.abc.game_server_repository_abc import GameServerRepositoryABC | from bot_data.abc.game_server_repository_abc import GameServerRepositoryABC | ||||||
| from bot_data.abc.level_repository_abc import LevelRepositoryABC | from bot_data.abc.level_repository_abc import LevelRepositoryABC | ||||||
| from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC | from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC | ||||||
|  | from bot_data.abc.short_role_name_repository_abc import ShortRoleNameRepositoryABC | ||||||
| from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC | from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC | ||||||
| from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC | from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC | ||||||
| from bot_data.abc.user_repository_abc import UserRepositoryABC | from bot_data.abc.user_repository_abc import UserRepositoryABC | ||||||
| from bot_data.model.server import Server | from bot_data.model.server import Server | ||||||
|  | from bot_data.model.server_config import ServerConfig | ||||||
| from bot_data.model.server_history import ServerHistory | from bot_data.model.server_history import ServerHistory | ||||||
| from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC | from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC | ||||||
| from bot_graphql.filter.achievement_filter import AchievementFilter | from bot_graphql.filter.achievement_filter import AchievementFilter | ||||||
| from bot_graphql.filter.auto_role_filter import AutoRoleFilter | from bot_graphql.filter.auto_role_filter import AutoRoleFilter | ||||||
| from bot_graphql.filter.client_filter import ClientFilter | from bot_graphql.filter.client_filter import ClientFilter | ||||||
| from bot_graphql.filter.level_filter import LevelFilter | from bot_graphql.filter.level_filter import LevelFilter | ||||||
|  | from bot_graphql.filter.short_role_name_filter import ShortRoleNameFilter | ||||||
| from bot_graphql.filter.user_filter import UserFilter | from bot_graphql.filter.user_filter import UserFilter | ||||||
|  |  | ||||||
|  |  | ||||||
| class ServerQuery(DataQueryWithHistoryABC): | class ServerQuery(DataQueryWithHistoryABC): | ||||||
|     def __init__( |     def __init__( | ||||||
|         self, |         self, | ||||||
|  |         config: ConfigurationABC, | ||||||
|         bot: DiscordBotServiceABC, |         bot: DiscordBotServiceABC, | ||||||
|         db: DatabaseContextABC, |         db: DatabaseContextABC, | ||||||
|         auto_roles: AutoRoleRepositoryABC, |         auto_roles: AutoRoleRepositoryABC, | ||||||
| @@ -33,10 +40,12 @@ class ServerQuery(DataQueryWithHistoryABC): | |||||||
|         ujs: UserJoinedServerRepositoryABC, |         ujs: UserJoinedServerRepositoryABC, | ||||||
|         ujvs: UserJoinedVoiceChannelRepositoryABC, |         ujvs: UserJoinedVoiceChannelRepositoryABC, | ||||||
|         achievements: AchievementRepositoryABC, |         achievements: AchievementRepositoryABC, | ||||||
|  |         short_role_names: ShortRoleNameRepositoryABC, | ||||||
|         server_configs: ServerConfigRepositoryABC, |         server_configs: ServerConfigRepositoryABC, | ||||||
|     ): |     ): | ||||||
|         DataQueryWithHistoryABC.__init__(self, "Server", "ServersHistory", ServerHistory, db) |         DataQueryWithHistoryABC.__init__(self, "Server", "ServersHistory", ServerHistory, db) | ||||||
|  |  | ||||||
|  |         self._config = config | ||||||
|         self._bot = bot |         self._bot = bot | ||||||
|         self._auto_roles = auto_roles |         self._auto_roles = auto_roles | ||||||
|         self._clients = clients |         self._clients = clients | ||||||
| @@ -64,7 +73,15 @@ class ServerQuery(DataQueryWithHistoryABC): | |||||||
|         self.add_collection( |         self.add_collection( | ||||||
|             "achievement", lambda server, *_: achievements.get_achievements_by_server_id(server.id), AchievementFilter |             "achievement", lambda server, *_: achievements.get_achievements_by_server_id(server.id), AchievementFilter | ||||||
|         ) |         ) | ||||||
|  |         self.add_collection( | ||||||
|  |             "shortRoleName", | ||||||
|  |             lambda server, *_: short_role_names.get_short_role_names_by_server_id(server.id), | ||||||
|  |             ShortRoleNameFilter, | ||||||
|  |         ) | ||||||
|         self.set_field("config", lambda server, *_: server_configs.get_server_config_by_server(server.id)) |         self.set_field("config", lambda server, *_: server_configs.get_server_config_by_server(server.id)) | ||||||
|  |         self.set_field( | ||||||
|  |             "hasFeatureFlag", lambda server, *_, **kwargs: self._resolve_has_feature_flag(server, *_, **kwargs) | ||||||
|  |         ) | ||||||
|  |  | ||||||
|     @staticmethod |     @staticmethod | ||||||
|     def resolve_id(server: Server, *_): |     def resolve_id(server: Server, *_): | ||||||
| @@ -81,3 +98,12 @@ class ServerQuery(DataQueryWithHistoryABC): | |||||||
|     @staticmethod |     @staticmethod | ||||||
|     def resolve_icon_url(server: Server, *_): |     def resolve_icon_url(server: Server, *_): | ||||||
|         return server.icon_url |         return server.icon_url | ||||||
|  |  | ||||||
|  |     def _resolve_has_feature_flag(self, server: Server, *_, **kwargs): | ||||||
|  |         settings: ServerConfig = self._config.get_configuration(f"ServerConfig_{server.discord_id}") | ||||||
|  |         if "flag" not in kwargs: | ||||||
|  |             return False | ||||||
|  |         return { | ||||||
|  |             "key": kwargs["flag"], | ||||||
|  |             "value": FeatureFlagsSettings.get_flag_from_dict(settings.feature_flags, FeatureFlagsEnum(kwargs["flag"])), | ||||||
|  |         } | ||||||
|   | |||||||
| @@ -0,0 +1,11 @@ | |||||||
|  | from bot_graphql.abc.history_query_abc import HistoryQueryABC | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameHistoryQuery(HistoryQueryABC): | ||||||
|  |     def __init__(self): | ||||||
|  |         HistoryQueryABC.__init__(self, "ShortRoleName") | ||||||
|  |  | ||||||
|  |         self.set_field("id", lambda x, *_: x.id) | ||||||
|  |         self.set_field("shortName", lambda x, *_: x.shortName) | ||||||
|  |         self.set_field("roleId", lambda x, *_: x.roleId) | ||||||
|  |         self.set_field("position", lambda x, *_: x.position.value) | ||||||
							
								
								
									
										18
									
								
								kdb-bot/src/bot_graphql/queries/short_role_name_query.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								kdb-bot/src/bot_graphql/queries/short_role_name_query.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | |||||||
|  | from cpl_core.database.context import DatabaseContextABC | ||||||
|  |  | ||||||
|  | from bot_data.model.short_role_name_history import ShortRoleNameHistory | ||||||
|  | from bot_graphql.abc.data_query_with_history_abc import DataQueryWithHistoryABC | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ShortRoleNameQuery(DataQueryWithHistoryABC): | ||||||
|  |     def __init__( | ||||||
|  |         self, | ||||||
|  |         db: DatabaseContextABC, | ||||||
|  |     ): | ||||||
|  |         DataQueryWithHistoryABC.__init__(self, "ShortRoleName", "ShortRoleNamesHistory", ShortRoleNameHistory, db) | ||||||
|  |  | ||||||
|  |         self.set_field("id", lambda x, *_: x.id) | ||||||
|  |         self.set_field("shortName", lambda x, *_: x.short_name) | ||||||
|  |         self.set_field("roleId", lambda x, *_: x.role_id) | ||||||
|  |         self.set_field("roleName", lambda x, *_: x.role_name) | ||||||
|  |         self.set_field("position", lambda x, *_: x.position.value) | ||||||
| @@ -9,11 +9,13 @@ from bot_data.abc.game_server_repository_abc import GameServerRepositoryABC | |||||||
| from bot_data.abc.known_user_repository_abc import KnownUserRepositoryABC | from bot_data.abc.known_user_repository_abc import KnownUserRepositoryABC | ||||||
| from bot_data.abc.level_repository_abc import LevelRepositoryABC | from bot_data.abc.level_repository_abc import LevelRepositoryABC | ||||||
| from bot_data.abc.server_repository_abc import ServerRepositoryABC | from bot_data.abc.server_repository_abc import ServerRepositoryABC | ||||||
|  | from bot_data.abc.short_role_name_repository_abc import ShortRoleNameRepositoryABC | ||||||
| from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC | from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC | ||||||
| from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameServerRepositoryABC | from bot_data.abc.user_joined_game_server_repository_abc import UserJoinedGameServerRepositoryABC | ||||||
| from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC | from bot_data.abc.user_joined_server_repository_abc import UserJoinedServerRepositoryABC | ||||||
| from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC | from bot_data.abc.user_joined_voice_channel_repository_abc import UserJoinedVoiceChannelRepositoryABC | ||||||
| from bot_data.abc.user_repository_abc import UserRepositoryABC | from bot_data.abc.user_repository_abc import UserRepositoryABC | ||||||
|  | from bot_data.model.short_role_name_position_enum import ShortRoleNamePositionEnum | ||||||
| from bot_graphql.abc.query_abc import QueryABC | from bot_graphql.abc.query_abc import QueryABC | ||||||
| from bot_graphql.filter.achievement_filter import AchievementFilter | from bot_graphql.filter.achievement_filter import AchievementFilter | ||||||
| from bot_graphql.filter.auto_role_filter import AutoRoleFilter | from bot_graphql.filter.auto_role_filter import AutoRoleFilter | ||||||
| @@ -21,6 +23,7 @@ from bot_graphql.filter.auto_role_rule_filter import AutoRoleRuleFilter | |||||||
| from bot_graphql.filter.client_filter import ClientFilter | from bot_graphql.filter.client_filter import ClientFilter | ||||||
| from bot_graphql.filter.level_filter import LevelFilter | from bot_graphql.filter.level_filter import LevelFilter | ||||||
| from bot_graphql.filter.server_filter import ServerFilter | from bot_graphql.filter.server_filter import ServerFilter | ||||||
|  | from bot_graphql.filter.short_role_name_filter import ShortRoleNameFilter | ||||||
| from bot_graphql.filter.user_filter import UserFilter | from bot_graphql.filter.user_filter import UserFilter | ||||||
| from bot_graphql.filter.user_joined_game_server_filter import UserJoinedGameServerFilter | from bot_graphql.filter.user_joined_game_server_filter import UserJoinedGameServerFilter | ||||||
| from bot_graphql.filter.user_joined_server_filter import UserJoinedServerFilter | from bot_graphql.filter.user_joined_server_filter import UserJoinedServerFilter | ||||||
| @@ -44,6 +47,7 @@ class Query(QueryABC): | |||||||
|         user_joined_game_server: UserJoinedGameServerRepositoryABC, |         user_joined_game_server: UserJoinedGameServerRepositoryABC, | ||||||
|         users: UserRepositoryABC, |         users: UserRepositoryABC, | ||||||
|         achievements: AchievementRepositoryABC, |         achievements: AchievementRepositoryABC, | ||||||
|  |         short_role_names: ShortRoleNameRepositoryABC, | ||||||
|         achievement_service: AchievementService, |         achievement_service: AchievementService, | ||||||
|         technician_config: TechnicianConfigRepositoryABC, |         technician_config: TechnicianConfigRepositoryABC, | ||||||
|     ): |     ): | ||||||
| @@ -71,9 +75,12 @@ class Query(QueryABC): | |||||||
|         ) |         ) | ||||||
|         self.add_collection("user", lambda *_: users.get_users(), UserFilter) |         self.add_collection("user", lambda *_: users.get_users(), UserFilter) | ||||||
|         self.add_collection("achievement", lambda *_: achievements.get_achievements(), AchievementFilter) |         self.add_collection("achievement", lambda *_: achievements.get_achievements(), AchievementFilter) | ||||||
|  |         self.add_collection("shortRoleName", lambda *_: short_role_names.get_short_role_names(), ShortRoleNameFilter) | ||||||
|  |  | ||||||
|         self.set_field("technicianConfig", lambda *_: technician_config.get_technician_config()) |         self.set_field("technicianConfig", lambda *_: technician_config.get_technician_config()) | ||||||
|  |  | ||||||
|         self.set_field("achievementAttributes", lambda *_: achievement_service.get_attributes()) |         self.set_field("achievementAttributes", lambda *_: achievement_service.get_attributes()) | ||||||
|         self.set_field("achievementOperators", lambda *_: achievement_service.get_operators()) |         self.set_field("achievementOperators", lambda *_: achievement_service.get_operators()) | ||||||
|  |         self.set_field("shortRoleNamePositions", lambda *_: [x.value for x in ShortRoleNamePositionEnum]) | ||||||
|         self.set_field("possibleFeatureFlags", lambda *_: [e.value for e in FeatureFlagsEnum]) |         self.set_field("possibleFeatureFlags", lambda *_: [e.value for e in FeatureFlagsEnum]) | ||||||
|         self.set_field("discord", lambda *_: Discord(bot.guilds, List(any).extend(bot.users))) |         self.set_field("discord", lambda *_: Discord(bot.guilds, List(any).extend(bot.users))) | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.achievements" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "Sven Heidemann", |     "Author": "Sven Heidemann", | ||||||
|     "AuthorEmail": "sven.heidemann@sh-edraft.de", |     "AuthorEmail": "sven.heidemann@sh-edraft.de", | ||||||
| @@ -16,10 +16,10 @@ | |||||||
|     "LicenseName": "MIT", |     "LicenseName": "MIT", | ||||||
|     "LicenseDescription": "MIT, see LICENSE for more details.", |     "LicenseDescription": "MIT, see LICENSE for more details.", | ||||||
|     "Dependencies": [ |     "Dependencies": [ | ||||||
|       "cpl-core>=1.1.1" |       "cpl-core>=1.1.7" | ||||||
|     ], |     ], | ||||||
|     "DevDependencies": [ |     "DevDependencies": [ | ||||||
|       "cpl-cli>=1.1.1" |       "cpl-cli>=1.1.7" | ||||||
|     ], |     ], | ||||||
|     "PythonVersion": ">=3.10.4", |     "PythonVersion": ">=3.10.4", | ||||||
|     "PythonPath": {}, |     "PythonPath": {}, | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.achievements.commands" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.achievements.events" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.achievements.model" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.auto_role" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "", |     "Author": "", | ||||||
|     "AuthorEmail": "", |     "AuthorEmail": "", | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.auto_role.command" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.auto_role.events" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.auto_role.helper" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
|     "Version": { |     "Version": { | ||||||
|       "Major": "1", |       "Major": "1", | ||||||
|       "Minor": "1", |       "Minor": "1", | ||||||
|       "Micro": "6" |       "Micro": "7" | ||||||
|     }, |     }, | ||||||
|     "Author": "", |     "Author": "", | ||||||
|     "AuthorEmail": "", |     "AuthorEmail": "", | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ from modules.base.command.unregister_group import UnregisterGroup | |||||||
| from modules.base.command.user_group import UserGroup | from modules.base.command.user_group import UserGroup | ||||||
| from modules.base.events.base_on_command_error_event import BaseOnCommandErrorEvent | from modules.base.events.base_on_command_error_event import BaseOnCommandErrorEvent | ||||||
| from modules.base.events.base_on_command_event import BaseOnCommandEvent | from modules.base.events.base_on_command_event import BaseOnCommandEvent | ||||||
|  | from modules.base.events.base_on_guild_join_event import BaseOnGuildJoinEvent | ||||||
| from modules.base.events.base_on_member_join_event import BaseOnMemberJoinEvent | from modules.base.events.base_on_member_join_event import BaseOnMemberJoinEvent | ||||||
| from modules.base.events.base_on_member_remove_event import BaseOnMemberRemoveEvent | from modules.base.events.base_on_member_remove_event import BaseOnMemberRemoveEvent | ||||||
| from modules.base.events.base_on_message_delete_event import BaseOnMessageDeleteEvent | from modules.base.events.base_on_message_delete_event import BaseOnMessageDeleteEvent | ||||||
| @@ -103,3 +104,7 @@ class BaseModule(ModuleABC): | |||||||
|             DiscordEventTypesEnum.on_scheduled_event_update.value, |             DiscordEventTypesEnum.on_scheduled_event_update.value, | ||||||
|             BaseOnScheduledEventUpdateEvent, |             BaseOnScheduledEventUpdateEvent, | ||||||
|         ) |         ) | ||||||
|  |         self._dc.add_event( | ||||||
|  |             DiscordEventTypesEnum.on_guild_join.value, | ||||||
|  |             BaseOnGuildJoinEvent, | ||||||
|  |         ) | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base.command" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base.events" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
							
								
								
									
										38
									
								
								kdb-bot/src/modules/base/events/base_on_guild_join_event.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								kdb-bot/src/modules/base/events/base_on_guild_join_event.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | from cpl_core.database.context import DatabaseContextABC | ||||||
|  | from cpl_core.logging import LoggerABC | ||||||
|  | from cpl_discord.events import OnGuildJoinABC | ||||||
|  | from cpl_discord.service import DiscordBotServiceABC | ||||||
|  | from discord import Guild | ||||||
|  |  | ||||||
|  | from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC | ||||||
|  | from bot_data.abc.server_repository_abc import ServerRepositoryABC | ||||||
|  | from bot_data.model.server import Server | ||||||
|  | from bot_data.service.seeder_service import SeederService | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class BaseOnGuildJoinEvent(OnGuildJoinABC): | ||||||
|  |     def __init__( | ||||||
|  |         self, | ||||||
|  |         logger: LoggerABC, | ||||||
|  |         bot: DiscordBotServiceABC, | ||||||
|  |         servers: ServerRepositoryABC, | ||||||
|  |         server_config: ServerConfigRepositoryABC, | ||||||
|  |         db: DatabaseContextABC, | ||||||
|  |         seeder: SeederService, | ||||||
|  |     ): | ||||||
|  |         OnGuildJoinABC.__init__(self) | ||||||
|  |  | ||||||
|  |         self._logger = logger | ||||||
|  |         self._bot = bot | ||||||
|  |         self._servers = servers | ||||||
|  |         self._server_config = server_config | ||||||
|  |         self._db = db | ||||||
|  |         self._seeder = seeder | ||||||
|  |  | ||||||
|  |     async def on_guild_join(self, guild: Guild): | ||||||
|  |         if self._servers.find_server_by_discord_id(guild.id) is None: | ||||||
|  |             self._servers.add_server(Server(guild.id)) | ||||||
|  |             self._db.save_changes() | ||||||
|  |  | ||||||
|  |         await self._seeder.seed() | ||||||
|  |         self._logger.debug(__name__, "Seeded technician config") | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base.forms" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base.helper" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base.model" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports: | # imports: | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base.service" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| """ | """ | ||||||
| bot Keksdose bot | bot sh-edraft.de Discord bot | ||||||
| ~~~~~~~~~~~~~~~~~~~ | ~~~~~~~~~~~~~~~~~~~ | ||||||
|  |  | ||||||
| Discord bot  for the Keksdose discord Server | Discord bot for customers of sh-edraft.de | ||||||
|  |  | ||||||
| :copyright: (c) 2022 - 2023 sh-edraft.de | :copyright: (c) 2022 - 2023 sh-edraft.de | ||||||
| :license: MIT, see LICENSE for more details. | :license: MIT, see LICENSE for more details. | ||||||
| @@ -15,7 +15,7 @@ __title__ = "modules.base.thread" | |||||||
| __author__ = "Sven Heidemann" | __author__ = "Sven Heidemann" | ||||||
| __license__ = "MIT" | __license__ = "MIT" | ||||||
| __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | __copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de" | ||||||
| __version__ = "1.1.6" | __version__ = "1.1.7" | ||||||
|  |  | ||||||
| from collections import namedtuple | from collections import namedtuple | ||||||
|  |  | ||||||
| @@ -23,4 +23,4 @@ from collections import namedtuple | |||||||
| # imports | # imports | ||||||
|  |  | ||||||
| VersionInfo = namedtuple("VersionInfo", "major minor micro") | VersionInfo = namedtuple("VersionInfo", "major minor micro") | ||||||
| version_info = VersionInfo(major="1", minor="1", micro="6") | version_info = VersionInfo(major="1", minor="1", micro="7") | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user