Compare commits
64 Commits
46b5757fd1
...
1.1.0
Author | SHA1 | Date | |
---|---|---|---|
6fa08ea828 | |||
296c6e8044 | |||
0541f3dfde | |||
052e0f976a | |||
f41dfc9be2 | |||
74437fdc20 | |||
df2b660b75 | |||
12f231aa41 | |||
2f3ae229c9 | |||
5bbed854a4 | |||
2321c12bc9 | |||
1cdfd1291f | |||
223946ad76 | |||
4ea1b5b94c | |||
919970d199 | |||
19ed164845 | |||
92001a45be | |||
78b761a672 | |||
7bfa39f459 | |||
d586cca672 | |||
efce172c01 | |||
0974325148 | |||
206754919f | |||
b49512e28d | |||
fa71759a20 | |||
9338e35504 | |||
2956dcb9c2 | |||
762bebf416 | |||
f3b5cef253 | |||
6869c5a671 | |||
352b44be0f | |||
5912708d3a | |||
45a3127696 | |||
10c20621a8 | |||
49e0e44461 | |||
ec6b080ba6 | |||
28944755ac | |||
7318239b2d | |||
cf66d246a9 | |||
41fe6faa52 | |||
685c96bb38 | |||
2c3e5268e4 | |||
2d5ce58612 | |||
fe3d67eff5 | |||
4cea31fce5 | |||
aa2c80ec12 | |||
e283a18def | |||
f5b2bec356 | |||
c2b32996fd | |||
195566a2b6 | |||
073c318671 | |||
caeec47b7c | |||
44f6b36347 | |||
4e32414f48 | |||
573c9c999e | |||
825fcff82d | |||
a95bf7bc6c | |||
0bc3bff58e | |||
c3b86fab6b | |||
906602134e | |||
30791f7529 | |||
456d939b47 | |||
1f47636e8d | |||
f4acc2669d |
@@ -11,7 +11,7 @@
|
||||
"auto-role": "src/modules/auto_role/auto-role.json",
|
||||
"base": "src/modules/base/base.json",
|
||||
"boot-log": "src/modules/boot_log/boot-log.json",
|
||||
"config": "src/modules/config/modules/config.json",
|
||||
"config": "src/modules/config/config.json",
|
||||
"database": "src/modules/database/database.json",
|
||||
"level": "src/modules/level/level.json",
|
||||
"permission": "src/modules/permission/permission.json",
|
||||
|
Submodule kdb-bot/docker updated: 62475d6546...3107817939
@@ -15,7 +15,7 @@ __title__ = "bot"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -71,7 +71,7 @@ class Application(DiscordBotApplicationABC):
|
||||
self._api.stop()
|
||||
|
||||
await self._bot.close()
|
||||
self._data_integrity.check_data_integrity(is_for_shutdown=True)
|
||||
await self._data_integrity.check_data_integrity(is_for_shutdown=True)
|
||||
self._logger.info(__name__, f"Stopped {DiscordBotService.__name__}")
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, "stop failed", e)
|
||||
|
@@ -3,8 +3,8 @@
|
||||
"Name": "bot",
|
||||
"Version": {
|
||||
"Major": "1",
|
||||
"Minor": "0",
|
||||
"Micro": "7"
|
||||
"Minor": "1",
|
||||
"Micro": "0"
|
||||
},
|
||||
"Author": "Sven Heidemann",
|
||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||
@@ -30,7 +30,8 @@
|
||||
"requests-oauthlib==1.3.1",
|
||||
"icmplib==3.0.3",
|
||||
"ariadne==0.20.1",
|
||||
"cryptography==41.0.2"
|
||||
"cryptography==41.0.2",
|
||||
"discord>=2.3.2"
|
||||
],
|
||||
"DevDependencies": [
|
||||
"cpl-cli==2023.4.0.post3",
|
||||
@@ -59,9 +60,11 @@
|
||||
"../bot_core/bot-core.json",
|
||||
"../bot_data/bot-data.json",
|
||||
"../bot_graphql/bot-graphql.json",
|
||||
"../modules/achievements/achievements.json",
|
||||
"../modules/auto_role/auto-role.json",
|
||||
"../modules/base/base.json",
|
||||
"../modules/boot_log/boot-log.json",
|
||||
"../modules/config/config.json",
|
||||
"../modules/database/database.json",
|
||||
"../modules/level/level.json",
|
||||
"../modules/permission/permission.json",
|
||||
|
Submodule kdb-bot/src/bot/config updated: 20adf415f9...23eafb2e21
@@ -15,7 +15,7 @@ __title__ = "bot.extension"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.abc"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -3,8 +3,8 @@
|
||||
"Name": "bot-api",
|
||||
"Version": {
|
||||
"Major": "1",
|
||||
"Minor": "0",
|
||||
"Micro": "7"
|
||||
"Minor": "1",
|
||||
"Micro": "0"
|
||||
},
|
||||
"Author": "",
|
||||
"AuthorEmail": "",
|
||||
|
Submodule kdb-bot/src/bot_api/config updated: 6d3f253f41...3d81c81c9e
@@ -15,7 +15,7 @@ __title__ = "bot_api.configuration"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.controller"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.event"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.exception"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.filter"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.filter.discord"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.logging"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.model"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.model.discord"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.route"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.service"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_api.transformer"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.abc"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -3,8 +3,8 @@
|
||||
"Name": "bot-core",
|
||||
"Version": {
|
||||
"Major": "1",
|
||||
"Minor": "0",
|
||||
"Micro": "7"
|
||||
"Minor": "1",
|
||||
"Micro": "0"
|
||||
},
|
||||
"Author": "Sven Heidemann",
|
||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.configuration"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.core_extension"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.events"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.exception"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.helper"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.logging"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.pipes"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_core.service"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -1,30 +1,50 @@
|
||||
from cpl_core.configuration import ConfigurationABC
|
||||
from cpl_core.dependency_injection import ServiceProviderABC
|
||||
|
||||
from bot_core.configuration.feature_flags_settings import FeatureFlagsSettings
|
||||
from bot_data.abc.server_config_repository_abc import ServerConfigRepositoryABC
|
||||
from bot_data.abc.technician_config_repository_abc import TechnicianConfigRepositoryABC
|
||||
from bot_data.model.server import Server
|
||||
from bot_data.model.technician_config import TechnicianConfig
|
||||
from bot_data.service.server_config_seeder import ServerConfigSeeder
|
||||
from bot_data.service.technician_config_seeder import TechnicianConfigSeeder
|
||||
from modules.permission.abc.permission_service_abc import PermissionServiceABC
|
||||
|
||||
|
||||
class ConfigService:
|
||||
def __init__(
|
||||
self,
|
||||
config: ConfigurationABC,
|
||||
services: ServiceProviderABC,
|
||||
technician_config_repo: TechnicianConfigRepositoryABC,
|
||||
server_config_repo: ServerConfigRepositoryABC,
|
||||
tech_seeder: TechnicianConfigSeeder,
|
||||
server_seeder: ServerConfigSeeder,
|
||||
):
|
||||
self._config = config
|
||||
self._services = services
|
||||
self._technician_config_repo = technician_config_repo
|
||||
self._server_config_repo = server_config_repo
|
||||
|
||||
def reload_technician_config(self):
|
||||
self._tech_seeder = tech_seeder
|
||||
self._server_seeder = server_seeder
|
||||
|
||||
async def reload_technician_config(self):
|
||||
if not self._technician_config_repo.does_technician_config_exists():
|
||||
await self._tech_seeder.seed()
|
||||
|
||||
technician_config = self._technician_config_repo.get_technician_config()
|
||||
self._config.add_configuration(TechnicianConfig, technician_config)
|
||||
self._config.add_configuration(FeatureFlagsSettings, FeatureFlagsSettings(**technician_config.feature_flags))
|
||||
|
||||
def reload_server_config(self, server: Server):
|
||||
async def reload_server_config(self, server: Server):
|
||||
if not self._server_config_repo.does_server_config_exists(server.id):
|
||||
await self._server_seeder.seed()
|
||||
|
||||
server_config = self._server_config_repo.get_server_config_by_server(server.id)
|
||||
self._config.add_configuration(
|
||||
f"{type(server_config).__name__}_{server_config.server.discord_id}", server_config
|
||||
)
|
||||
|
||||
permissions: PermissionServiceABC = self._services.get_service(PermissionServiceABC)
|
||||
permissions.on_ready()
|
||||
|
@@ -291,7 +291,7 @@ class DataIntegrityService:
|
||||
self._user_joins_vc.update_user_joined_voice_channel(join)
|
||||
|
||||
if self._is_for_shutdown:
|
||||
user.xp = round(join.time * settings.xp_per_ontime_hour)
|
||||
user.xp += round(join.time * settings.xp_per_ontime_hour)
|
||||
self._users.update_user(user)
|
||||
|
||||
self._db_context.save_changes()
|
||||
@@ -356,14 +356,14 @@ class DataIntegrityService:
|
||||
|
||||
self._user_joined_gs.update_user_joined_game_server(join)
|
||||
if self._is_for_shutdown:
|
||||
user.xp = round(join.time * settings.xp_per_ontime_hour)
|
||||
user.xp += round(join.time * settings.xp_per_ontime_hour)
|
||||
self._users.update_user(user)
|
||||
|
||||
self._db_context.save_changes()
|
||||
except Exception as e:
|
||||
self._logger.error(__name__, f"Cannot get UserJoinedGameServer", e)
|
||||
|
||||
def _check_for_user_achievements(self):
|
||||
async def _check_for_user_achievements(self):
|
||||
self._logger.debug(__name__, f"Start checking UserGotAchievement table")
|
||||
|
||||
for guild in self._bot.guilds:
|
||||
@@ -380,9 +380,9 @@ class DataIntegrityService:
|
||||
if user is None:
|
||||
self._logger.fatal(__name__, f"User not found in database: {member.id}")
|
||||
|
||||
self._bot.loop.create_task(self._achievements.validate_achievements_for_user(user))
|
||||
await self._achievements.validate_achievements_for_user(user)
|
||||
|
||||
def check_data_integrity(self, is_for_shutdown=False):
|
||||
async def check_data_integrity(self, is_for_shutdown=False):
|
||||
if is_for_shutdown != self._is_for_shutdown:
|
||||
self._is_for_shutdown = is_for_shutdown
|
||||
|
||||
@@ -393,4 +393,4 @@ class DataIntegrityService:
|
||||
self._check_user_joins()
|
||||
self._check_user_joins_vc()
|
||||
self._check_user_joined_gs()
|
||||
self._check_for_user_achievements()
|
||||
await self._check_for_user_achievements()
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_data"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_data.abc"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -3,8 +3,8 @@
|
||||
"Name": "bot-data",
|
||||
"Version": {
|
||||
"Major": "1",
|
||||
"Minor": "0",
|
||||
"Micro": "7"
|
||||
"Minor": "1",
|
||||
"Micro": "0"
|
||||
},
|
||||
"Author": "Sven Heidemann",
|
||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_data.migration"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -16,15 +16,11 @@ class ConfigFeatureFlagsMigration(MigrationABC):
|
||||
self._logger.debug(__name__, "Running upgrade")
|
||||
|
||||
self._cursor.execute(
|
||||
str(
|
||||
"""ALTER TABLE CFG_Technician ADD FeatureFlags JSON NULL DEFAULT JSON_OBJECT() AFTER CacheMaxMessages;"""
|
||||
)
|
||||
str("""ALTER TABLE CFG_Technician ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER CacheMaxMessages;""")
|
||||
)
|
||||
|
||||
self._cursor.execute(
|
||||
str(
|
||||
"""ALTER TABLE CFG_Server ADD FeatureFlags JSON NULL DEFAULT JSON_OBJECT() AFTER LoginMessageChannelId;"""
|
||||
)
|
||||
str("""ALTER TABLE CFG_Server ADD FeatureFlags JSON NULL DEFAULT ('{}') AFTER LoginMessageChannelId;""")
|
||||
)
|
||||
|
||||
def downgrade(self):
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_data.model"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -108,6 +108,15 @@ class Achievement(TableABC):
|
||||
"""
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def get_select_by_server_id_string(id: int) -> str:
|
||||
return str(
|
||||
f"""
|
||||
SELECT * FROM `Achievements`
|
||||
WHERE `ServerId` = {id};
|
||||
"""
|
||||
)
|
||||
|
||||
@property
|
||||
def insert_string(self) -> str:
|
||||
return str(
|
||||
|
@@ -15,8 +15,8 @@ class User(TableABC):
|
||||
self,
|
||||
dc_id: int,
|
||||
xp: int,
|
||||
message_count: int,
|
||||
reaction_count: int,
|
||||
message_count: int,
|
||||
server: Optional[Server],
|
||||
created_at: datetime = None,
|
||||
modified_at: datetime = None,
|
||||
@@ -25,8 +25,8 @@ class User(TableABC):
|
||||
self._user_id = id
|
||||
self._discord_id = dc_id
|
||||
self._xp = xp
|
||||
self._message_count = message_count
|
||||
self._reaction_count = reaction_count
|
||||
self._message_count = message_count
|
||||
self._server = server
|
||||
|
||||
TableABC.__init__(self)
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_data.service"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -65,8 +65,8 @@ class AchievementRepositoryService(AchievementRepositoryABC):
|
||||
|
||||
def get_achievements_by_server_id(self, server_id: int) -> List[Achievement]:
|
||||
achievements = List(Achievement)
|
||||
self._logger.trace(__name__, f"Send SQL command: {Achievement.get_select_by_id_string(server_id)}")
|
||||
results = self._context.select(Achievement.get_select_all_string())
|
||||
self._logger.trace(__name__, f"Send SQL command: {Achievement.get_select_by_server_id_string(server_id)}")
|
||||
results = self._context.select(Achievement.get_select_by_server_id_string(server_id))
|
||||
for result in results:
|
||||
self._logger.trace(__name__, f"Get user with id {result[0]}")
|
||||
achievements.append(self._from_result(result))
|
||||
|
@@ -74,14 +74,14 @@ class ServerConfigRepositoryService(ServerConfigRepositoryABC):
|
||||
)
|
||||
|
||||
def does_server_config_exists(self, server_id: int) -> bool:
|
||||
self._logger.trace(__name__, f"Send SQL command: {ServerConfig.get_select_by_id_string(server_id)}")
|
||||
result = self._context.select(ServerConfig.get_select_by_id_string(server_id))
|
||||
self._logger.trace(__name__, f"Send SQL command: {ServerConfig.get_select_by_server_id_string(server_id)}")
|
||||
result = self._context.select(ServerConfig.get_select_by_server_id_string(server_id))
|
||||
|
||||
return len(result) > 0
|
||||
|
||||
def get_server_config_by_server(self, server_id: int) -> ServerConfig:
|
||||
self._logger.trace(__name__, f"Send SQL command: {ServerConfig.get_select_by_id_string(server_id)}")
|
||||
result = self._context.select(ServerConfig.get_select_by_id_string(server_id))[0]
|
||||
self._logger.trace(__name__, f"Send SQL command: {ServerConfig.get_select_by_server_id_string(server_id)}")
|
||||
result = self._context.select(ServerConfig.get_select_by_server_id_string(server_id))[0]
|
||||
|
||||
return self._from_result(result)
|
||||
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_graphql"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_graphql.abc"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -3,8 +3,8 @@
|
||||
"Name": "bot-data",
|
||||
"Version": {
|
||||
"Major": "1",
|
||||
"Minor": "0",
|
||||
"Micro": "7"
|
||||
"Minor": "1",
|
||||
"Micro": "0"
|
||||
},
|
||||
"Author": "Sven Heidemann",
|
||||
"AuthorEmail": "sven.heidemann@sh-edraft.de",
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_graphql.filter"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
53
kdb-bot/src/bot_graphql/graphql/discord.gql
Normal file
53
kdb-bot/src/bot_graphql/graphql/discord.gql
Normal file
@@ -0,0 +1,53 @@
|
||||
type Discord {
|
||||
guilds(filter: GuildFilter): [Guild]
|
||||
users(filter: DiscordUserFilter): [DiscordUser]
|
||||
}
|
||||
|
||||
type Guild {
|
||||
id: ID
|
||||
name: String
|
||||
|
||||
channels(filter: ChannelFilter): [Channel]
|
||||
roles: [Role]
|
||||
emojis: [Emoji]
|
||||
}
|
||||
|
||||
input GuildFilter {
|
||||
id: ID
|
||||
name: String
|
||||
}
|
||||
|
||||
type Channel {
|
||||
id: String
|
||||
name: String
|
||||
type: String
|
||||
}
|
||||
|
||||
input ChannelFilter {
|
||||
id: String
|
||||
name: String
|
||||
type: String
|
||||
}
|
||||
|
||||
type Role {
|
||||
id: String
|
||||
name: String
|
||||
}
|
||||
|
||||
type DiscordUser {
|
||||
id: String
|
||||
name: String
|
||||
bot: Boolean
|
||||
}
|
||||
|
||||
input DiscordUserFilter {
|
||||
id: ID
|
||||
name: String
|
||||
bot: Boolean
|
||||
}
|
||||
|
||||
type Emoji {
|
||||
id: String
|
||||
name: String
|
||||
url: String
|
||||
}
|
@@ -38,7 +38,6 @@ type Query {
|
||||
achievementOperators: [String]
|
||||
|
||||
technicianConfig: TechnicianConfig
|
||||
|
||||
guilds(filter: GuildFilter): [Guild]
|
||||
possibleFeatureFlags: [String]
|
||||
discord: Discord
|
||||
}
|
@@ -37,6 +37,12 @@ from bot_graphql.queries.auto_role_rule_history_query import AutoRoleRuleHistory
|
||||
from bot_graphql.queries.auto_role_rule_query import AutoRoleRuleQuery
|
||||
from bot_graphql.queries.client_history_query import ClientHistoryQuery
|
||||
from bot_graphql.queries.client_query import ClientQuery
|
||||
from bot_graphql.queries.discord.channel_query import ChannelQuery
|
||||
from bot_graphql.queries.discord.discord_query import DiscordQuery
|
||||
from bot_graphql.queries.discord.discord_user_query import DiscordUserQuery
|
||||
from bot_graphql.queries.discord.emoji_query import EmojiQuery
|
||||
from bot_graphql.queries.discord.guild_query import GuildQuery
|
||||
from bot_graphql.queries.discord.role_query import RoleQuery
|
||||
from bot_graphql.queries.game_server_query import GameServerQuery
|
||||
from bot_graphql.queries.known_user_history_query import KnownUserHistoryQuery
|
||||
from bot_graphql.queries.known_user_query import KnownUserQuery
|
||||
@@ -105,6 +111,13 @@ class GraphQLModule(ModuleABC):
|
||||
services.add_transient(QueryABC, UserJoinedGameServerHistoryQuery)
|
||||
services.add_transient(QueryABC, UserJoinedGameServerQuery)
|
||||
|
||||
services.add_transient(QueryABC, DiscordQuery)
|
||||
services.add_transient(QueryABC, GuildQuery)
|
||||
services.add_transient(QueryABC, ChannelQuery)
|
||||
services.add_transient(QueryABC, RoleQuery)
|
||||
services.add_transient(QueryABC, EmojiQuery)
|
||||
services.add_transient(QueryABC, DiscordUserQuery)
|
||||
|
||||
# filters
|
||||
services.add_transient(FilterABC, AutoRoleFilter)
|
||||
services.add_transient(FilterABC, AutoRoleRuleFilter)
|
||||
|
26
kdb-bot/src/bot_graphql/model/__init__.py
Normal file
26
kdb-bot/src/bot_graphql/model/__init__.py
Normal file
@@ -0,0 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
bot Keksdose bot
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Discord bot for the Keksdose discord Server
|
||||
|
||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
||||
:license: MIT, see LICENSE for more details.
|
||||
|
||||
"""
|
||||
|
||||
__title__ = "bot_graphql.model"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
@@ -1,29 +0,0 @@
|
||||
type Guild {
|
||||
id: ID
|
||||
name: String
|
||||
|
||||
channels: [Channel]
|
||||
roles: [Role]
|
||||
emojis: [Emoji]
|
||||
}
|
||||
|
||||
input GuildFilter {
|
||||
id: ID
|
||||
}
|
||||
|
||||
type Channel {
|
||||
id: String
|
||||
name: String
|
||||
type: String
|
||||
}
|
||||
|
||||
type Role {
|
||||
id: String
|
||||
name: String
|
||||
}
|
||||
|
||||
type Emoji {
|
||||
id: String
|
||||
name: String
|
||||
url: String
|
||||
}
|
16
kdb-bot/src/bot_graphql/model/discord.py
Normal file
16
kdb-bot/src/bot_graphql/model/discord.py
Normal file
@@ -0,0 +1,16 @@
|
||||
from cpl_query.extension import List
|
||||
from discord import Guild, User
|
||||
|
||||
|
||||
class Discord:
|
||||
def __init__(self, guilds: List[Guild], users: List[User]):
|
||||
self._guilds = guilds
|
||||
self._users = users
|
||||
|
||||
@property
|
||||
def guilds(self) -> List[Guild]:
|
||||
return self._guilds
|
||||
|
||||
@property
|
||||
def users(self) -> List[User]:
|
||||
return self._users
|
@@ -15,7 +15,7 @@ __title__ = "bot_graphql.mutations"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -43,7 +43,7 @@ class ServerConfigMutation(QueryABC):
|
||||
if "id" not in input:
|
||||
raise ValueError("Id not set")
|
||||
|
||||
server_config = self._server_configs.get_server_config_by_server(input["id"])
|
||||
server_config = self._server_configs.get_server_config_by_id(int(input["id"]))
|
||||
self._can_user_mutate_data(Route.get_user().users[0].server, UserRoleEnum.technician)
|
||||
|
||||
server_config.message_delete_timer = (
|
||||
@@ -137,7 +137,7 @@ class ServerConfigMutation(QueryABC):
|
||||
return server_config
|
||||
|
||||
def _update_afk_channel_ids(self, new_config: ServerConfig):
|
||||
old_config = self._server_configs.get_server_config_by_id(new_config.server.id)
|
||||
old_config = self._server_configs.get_server_config_by_server(new_config.server.id)
|
||||
for channel_id in old_config.afk_channel_ids:
|
||||
if channel_id in new_config.afk_channel_ids:
|
||||
continue
|
||||
@@ -155,7 +155,7 @@ class ServerConfigMutation(QueryABC):
|
||||
)
|
||||
|
||||
def _update_team_role_ids(self, new_config: ServerConfig):
|
||||
old_config = self._server_configs.get_server_config_by_id(new_config.server.id)
|
||||
old_config = self._server_configs.get_server_config_by_server(new_config.server.id)
|
||||
for role_id in old_config.team_role_ids:
|
||||
if role_id.role_id in new_config.team_role_ids.select(lambda x: int(x.role_id)):
|
||||
continue
|
||||
@@ -174,5 +174,5 @@ class ServerConfigMutation(QueryABC):
|
||||
|
||||
self._server_configs.add_server_team_role_id_config(role_id)
|
||||
|
||||
self._config_service.reload_server_config(new_config.server)
|
||||
self._bot.loop.create_task(self._config_service.reload_server_config(new_config.server))
|
||||
self._permissions.on_ready()
|
||||
|
@@ -113,5 +113,5 @@ class TechnicianConfigMutation(QueryABC):
|
||||
|
||||
self._technician_configs.add_technician_id_config(TechnicianIdConfig(technician_id))
|
||||
|
||||
self._config_service.reload_technician_config()
|
||||
self._bot.loop.create_task(self._config_service.reload_technician_config())
|
||||
self._permissions.on_ready()
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_graphql.queries"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -40,7 +40,7 @@ class ClientQuery(DataQueryWithHistoryABC):
|
||||
|
||||
@staticmethod
|
||||
def resolve_received_message_count(client: Client, *_):
|
||||
return client.received_command_count
|
||||
return client.received_message_count
|
||||
|
||||
@staticmethod
|
||||
def resolve_deleted_message_count(client: Client, *_):
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "bot_graphql.queries.discord"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -1,10 +1,10 @@
|
||||
from bot_graphql.abc.data_query_abc import DataQueryABC
|
||||
from bot_graphql.abc.query_abc import QueryABC
|
||||
|
||||
|
||||
class ChannelQuery(DataQueryABC):
|
||||
class ChannelQuery(QueryABC):
|
||||
def __init__(self):
|
||||
DataQueryABC.__init__(self, "Channel")
|
||||
QueryABC.__init__(self, "Channel")
|
||||
|
||||
self.set_field("id", lambda c, *_: c.id)
|
||||
self.set_field("name", lambda c, *_: c.name)
|
||||
self.set_field("type", lambda c, *_: type(c))
|
||||
self.set_field("type", lambda c, *_: type(c).__name__)
|
||||
|
48
kdb-bot/src/bot_graphql/queries/discord/discord_query.py
Normal file
48
kdb-bot/src/bot_graphql/queries/discord/discord_query.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from cpl_discord.service import DiscordBotServiceABC
|
||||
from cpl_query.extension import List
|
||||
|
||||
from bot_graphql.abc.query_abc import QueryABC
|
||||
|
||||
|
||||
class DiscordQuery(QueryABC):
|
||||
def __init__(
|
||||
self,
|
||||
bot: DiscordBotServiceABC,
|
||||
):
|
||||
QueryABC.__init__(self, "Discord")
|
||||
|
||||
self._bot = bot
|
||||
|
||||
self.set_field("guilds", self._resolve_guilds)
|
||||
self.set_field("users", self._resolve_users)
|
||||
|
||||
def _resolve_guilds(self, *_, filter=None):
|
||||
guilds = self._bot.guilds
|
||||
|
||||
if filter is None:
|
||||
return guilds
|
||||
|
||||
if "id" in filter:
|
||||
guilds = self._bot.guilds.where(lambda g: g.id == int(filter["id"]))
|
||||
|
||||
if "name" in filter:
|
||||
guilds = self._bot.guilds.where(lambda g: g.name == filter["name"])
|
||||
|
||||
return guilds
|
||||
|
||||
def _resolve_users(self, *_, filter=None):
|
||||
users = List(any).extend(self._bot.users)
|
||||
|
||||
if filter is None:
|
||||
return users
|
||||
|
||||
if "id" in filter:
|
||||
users = users.where(lambda g: g.id == int(filter["id"]))
|
||||
|
||||
if "name" in filter:
|
||||
users = users.where(lambda g: g.name == filter["name"])
|
||||
|
||||
if "bot" in filter:
|
||||
users = users.where(lambda g: g.bot == bool(filter["bot"]))
|
||||
|
||||
return users
|
@@ -0,0 +1,10 @@
|
||||
from bot_graphql.abc.query_abc import QueryABC
|
||||
|
||||
|
||||
class DiscordUserQuery(QueryABC):
|
||||
def __init__(self):
|
||||
QueryABC.__init__(self, "DiscordUser")
|
||||
|
||||
self.set_field("id", lambda r, *_: r.id)
|
||||
self.set_field("name", lambda r, *_: r.name)
|
||||
self.set_field("bot", lambda r, *_: r.bot)
|
@@ -1,9 +1,9 @@
|
||||
from bot_graphql.abc.data_query_abc import DataQueryABC
|
||||
from bot_graphql.abc.query_abc import QueryABC
|
||||
|
||||
|
||||
class RoleQuery(DataQueryABC):
|
||||
class EmojiQuery(QueryABC):
|
||||
def __init__(self):
|
||||
DataQueryABC.__init__(self, "Emoji")
|
||||
QueryABC.__init__(self, "Emoji")
|
||||
|
||||
self.set_field("id", lambda e, *_: e.id)
|
||||
self.set_field("name", lambda e, *_: e.name)
|
||||
|
@@ -1,12 +1,38 @@
|
||||
from bot_graphql.abc.data_query_abc import DataQueryABC
|
||||
from cpl_discord.service import DiscordBotServiceABC
|
||||
from cpl_query.extension import List
|
||||
from discord import Guild
|
||||
|
||||
from bot_graphql.abc.query_abc import QueryABC
|
||||
|
||||
|
||||
class GuildQuery(DataQueryABC):
|
||||
def __init__(self):
|
||||
DataQueryABC.__init__(self, "Guild")
|
||||
class GuildQuery(QueryABC):
|
||||
def __init__(
|
||||
self,
|
||||
bot: DiscordBotServiceABC,
|
||||
):
|
||||
QueryABC.__init__(self, "Guild")
|
||||
|
||||
self._bot = bot
|
||||
|
||||
self.set_field("id", lambda g, *_: g.id)
|
||||
self.set_field("name", lambda g, *_: g.name)
|
||||
self.set_field("channels", lambda g, *_: g.channels)
|
||||
self.set_field("channels", self._resolve_channels)
|
||||
self.set_field("roles", lambda g, *_: g.roles)
|
||||
self.set_field("emojis", lambda g, *_: g.emojis)
|
||||
|
||||
def _resolve_channels(self, g: Guild, *_, filter=None):
|
||||
users = List(any).extend(g.channels)
|
||||
|
||||
if filter is None:
|
||||
return users
|
||||
|
||||
if "id" in filter:
|
||||
users = users.where(lambda c: c.id == int(filter["id"]))
|
||||
|
||||
if "name" in filter:
|
||||
users = users.where(lambda c: c.id == filter["name"])
|
||||
|
||||
if "type" in filter:
|
||||
users = users.where(lambda c: type(c).__name__ == filter["type"])
|
||||
|
||||
return users
|
||||
|
@@ -1,9 +1,9 @@
|
||||
from bot_graphql.abc.data_query_abc import DataQueryABC
|
||||
from bot_graphql.abc.query_abc import QueryABC
|
||||
|
||||
|
||||
class RoleQuery(DataQueryABC):
|
||||
class RoleQuery(QueryABC):
|
||||
def __init__(self):
|
||||
DataQueryABC.__init__(self, "Role")
|
||||
QueryABC.__init__(self, "Role")
|
||||
|
||||
self.set_field("id", lambda r, *_: r.id)
|
||||
self.set_field("name", lambda r, *_: r.name)
|
||||
|
@@ -1,4 +1,5 @@
|
||||
from cpl_discord.service import DiscordBotServiceABC
|
||||
from cpl_query.extension import List
|
||||
|
||||
from bot_core.configuration.feature_flags_enum import FeatureFlagsEnum
|
||||
from bot_data.abc.achievement_repository_abc import AchievementRepositoryABC
|
||||
@@ -24,6 +25,7 @@ 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_server_filter import UserJoinedServerFilter
|
||||
from bot_graphql.filter.user_joined_voice_channel_filter import UserJoinedVoiceChannelFilter
|
||||
from bot_graphql.model.discord import Discord
|
||||
from modules.achievements.achievement_service import AchievementService
|
||||
|
||||
|
||||
@@ -47,8 +49,6 @@ class Query(QueryABC):
|
||||
):
|
||||
QueryABC.__init__(self, "Query")
|
||||
|
||||
self._bot = bot
|
||||
|
||||
self.add_collection("autoRole", lambda *_: auto_roles.get_auto_roles(), AutoRoleFilter)
|
||||
self.add_collection("autoRoleRule", lambda *_: auto_roles.get_auto_role_rules(), AutoRoleRuleFilter)
|
||||
self.add_collection("client", lambda *_: clients.get_clients(), ClientFilter)
|
||||
@@ -73,13 +73,7 @@ class Query(QueryABC):
|
||||
self.add_collection("achievement", lambda *_: achievements.get_achievements(), AchievementFilter)
|
||||
self.set_field("technicianConfig", lambda *_: technician_config.get_technician_config())
|
||||
|
||||
self.set_field("guilds", self._resolve_guilds)
|
||||
self.set_field("achievementAttributes", lambda x, *_: achievement_service.get_attributes())
|
||||
self.set_field("achievementOperators", lambda x, *_: achievement_service.get_operators())
|
||||
self.set_field("possibleFeatureFlags", lambda x, *_: [e.value for e in FeatureFlagsEnum])
|
||||
|
||||
def _resolve_guilds(self, *_, filter=None):
|
||||
if filter is None or "id" not in filter:
|
||||
return self._bot.guilds
|
||||
|
||||
return self._bot.guilds.where(lambda g: g.id == int(filter["id"]))
|
||||
self.set_field("achievementAttributes", lambda *_: achievement_service.get_attributes())
|
||||
self.set_field("achievementOperators", lambda *_: achievement_service.get_operators())
|
||||
self.set_field("possibleFeatureFlags", lambda *_: [e.value for e in FeatureFlagsEnum])
|
||||
self.set_field("discord", lambda *_: Discord(bot.guilds, List(any).extend(bot.users)))
|
||||
|
@@ -10,7 +10,7 @@ from bot_graphql.query import Query
|
||||
|
||||
class Schema:
|
||||
def __init__(self, query: Query, mutation: Mutation, queries: list[QueryABC]):
|
||||
type_defs = load_schema_from_path(os.path.join(os.path.dirname(os.path.realpath(__file__)), "model/"))
|
||||
type_defs = load_schema_from_path(os.path.join(os.path.dirname(os.path.realpath(__file__)), "graphql/"))
|
||||
self._schema = make_executable_schema(type_defs, query, mutation, *queries)
|
||||
|
||||
@property
|
||||
|
@@ -1 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
bot Keksdose bot
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Discord bot for the Keksdose discord Server
|
||||
|
||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
||||
:license: MIT, see LICENSE for more details.
|
||||
|
||||
"""
|
||||
|
||||
__title__ = "modules.achievements"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -60,13 +60,20 @@ class AchievementService:
|
||||
self._operators = {
|
||||
"==": lambda value, expected_value: value == expected_value,
|
||||
"!=": lambda value, expected_value: value != expected_value,
|
||||
"<=": lambda value, expected_value: value <= expected_value,
|
||||
">=": lambda value, expected_value: value >= expected_value,
|
||||
"<": lambda value, expected_value: value < expected_value,
|
||||
">": lambda value, expected_value: value > expected_value,
|
||||
"<=": lambda value, expected_value: self._num(value) <= self._num(expected_value),
|
||||
">=": lambda value, expected_value: self._num(value) >= self._num(expected_value),
|
||||
"<": lambda value, expected_value: self._num(value) < self._num(expected_value),
|
||||
">": lambda value, expected_value: self._num(value) > self._num(expected_value),
|
||||
"contains": lambda value, expected_value: expected_value in value,
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def _num(s: str):
|
||||
try:
|
||||
return int(s)
|
||||
except ValueError:
|
||||
return float(s)
|
||||
|
||||
def add_achievement_attribute(self, atr: AchievementAttribute):
|
||||
self._attributes.add(atr)
|
||||
|
||||
|
@@ -16,10 +16,10 @@
|
||||
"LicenseName": "MIT",
|
||||
"LicenseDescription": "MIT, see LICENSE for more details.",
|
||||
"Dependencies": [
|
||||
"cpl-core>=2023.4.0.post2"
|
||||
"cpl-core>=1.1.0"
|
||||
],
|
||||
"DevDependencies": [
|
||||
"cpl-cli>=2023.4.0.post3"
|
||||
"cpl-cli>=1.1.0"
|
||||
],
|
||||
"PythonVersion": ">=3.10.4",
|
||||
"PythonPath": {},
|
||||
|
@@ -10,6 +10,9 @@ from modules.achievements.achievement_attribute_resolver import AchievementAttri
|
||||
from modules.achievements.achievement_service import AchievementService
|
||||
from modules.achievements.commands.achievements_group import AchievementGroup
|
||||
from modules.achievements.events.achievement_on_message_event import AchievementOnMessageEvent
|
||||
from modules.achievements.events.achievement_on_reaction_add_event import AchievementOnReactionAddEvent
|
||||
from modules.achievements.events.achievement_on_reaction_remove_event import AchievementOnReactionRemoveEvent
|
||||
from modules.achievements.events.achievement_on_voice_state_update_event import AchievementOnVoiceStateUpdateEvent
|
||||
|
||||
|
||||
class AchievementsModule(ModuleABC):
|
||||
@@ -26,3 +29,6 @@ class AchievementsModule(ModuleABC):
|
||||
self._dc.add_command(AchievementGroup)
|
||||
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_message.value, AchievementOnMessageEvent)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_reaction_add.value, AchievementOnReactionAddEvent)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_reaction_remove.value, AchievementOnReactionRemoveEvent)
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_voice_state_update.value, AchievementOnVoiceStateUpdateEvent)
|
||||
|
@@ -1 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
bot Keksdose bot
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Discord bot for the Keksdose discord Server
|
||||
|
||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
||||
:license: MIT, see LICENSE for more details.
|
||||
|
||||
"""
|
||||
|
||||
__title__ = "modules.achievements.commands"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -1 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
bot Keksdose bot
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Discord bot for the Keksdose discord Server
|
||||
|
||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
||||
:license: MIT, see LICENSE for more details.
|
||||
|
||||
"""
|
||||
|
||||
__title__ = "modules.achievements.events"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -53,6 +53,7 @@ class AchievementOnMessageEvent(OnMessageABC):
|
||||
user = self._users.get_user_by_discord_id_and_server_id(message.author.id, server.id)
|
||||
|
||||
user.message_count += 1
|
||||
self._users.update_user(user)
|
||||
self._db.save_changes()
|
||||
|
||||
await self._achievements.validate_achievements_for_user(user)
|
||||
|
@@ -0,0 +1,62 @@
|
||||
from typing import Union
|
||||
|
||||
import discord
|
||||
from cpl_core.configuration import ConfigurationABC
|
||||
from cpl_core.database.context import DatabaseContextABC
|
||||
from cpl_core.logging import LoggerABC
|
||||
from cpl_discord.events import OnReactionAddABC
|
||||
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.server_repository_abc import ServerRepositoryABC
|
||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
||||
from bot_data.model.server_config import ServerConfig
|
||||
from modules.achievements.achievement_service import AchievementService
|
||||
|
||||
|
||||
class AchievementOnReactionAddEvent(OnReactionAddABC):
|
||||
def __init__(
|
||||
self,
|
||||
config: ConfigurationABC,
|
||||
logger: LoggerABC,
|
||||
bot: DiscordBotServiceABC,
|
||||
achievements: AchievementService,
|
||||
db: DatabaseContextABC,
|
||||
servers: ServerRepositoryABC,
|
||||
users: UserRepositoryABC,
|
||||
):
|
||||
OnReactionAddABC.__init__(self)
|
||||
|
||||
self._config = config
|
||||
self._logger = logger
|
||||
self._bot = bot
|
||||
self._achievements = achievements
|
||||
self._db = db
|
||||
self._servers = servers
|
||||
self._users = users
|
||||
|
||||
async def on_reaction_add(self, reaction: discord.reaction.Reaction, user: Union[discord.Member, discord.User]):
|
||||
if not isinstance(user, discord.Member):
|
||||
return
|
||||
|
||||
if user.guild is None:
|
||||
return
|
||||
|
||||
if user.bot:
|
||||
return
|
||||
|
||||
server_config: ServerConfig = self._config.get_configuration(f"ServerConfig_{user.guild.id}")
|
||||
if not FeatureFlagsSettings.get_flag_from_dict(
|
||||
server_config.feature_flags, FeatureFlagsEnum.achievements_module
|
||||
):
|
||||
return
|
||||
|
||||
server = self._servers.get_server_by_discord_id(user.guild.id)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(user.id, server.id)
|
||||
|
||||
user.reaction_count += 1
|
||||
self._db.save_changes()
|
||||
self._users.update_user(user)
|
||||
|
||||
await self._achievements.validate_achievements_for_user(user)
|
@@ -0,0 +1,62 @@
|
||||
from typing import Union
|
||||
|
||||
import discord
|
||||
from cpl_core.configuration import ConfigurationABC
|
||||
from cpl_core.database.context import DatabaseContextABC
|
||||
from cpl_core.logging import LoggerABC
|
||||
from cpl_discord.events import OnReactionRemoveABC
|
||||
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.server_repository_abc import ServerRepositoryABC
|
||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
||||
from bot_data.model.server_config import ServerConfig
|
||||
from modules.achievements.achievement_service import AchievementService
|
||||
|
||||
|
||||
class AchievementOnReactionRemoveEvent(OnReactionRemoveABC):
|
||||
def __init__(
|
||||
self,
|
||||
config: ConfigurationABC,
|
||||
logger: LoggerABC,
|
||||
bot: DiscordBotServiceABC,
|
||||
achievements: AchievementService,
|
||||
db: DatabaseContextABC,
|
||||
servers: ServerRepositoryABC,
|
||||
users: UserRepositoryABC,
|
||||
):
|
||||
OnReactionRemoveABC.__init__(self)
|
||||
|
||||
self._config = config
|
||||
self._logger = logger
|
||||
self._bot = bot
|
||||
self._achievements = achievements
|
||||
self._db = db
|
||||
self._servers = servers
|
||||
self._users = users
|
||||
|
||||
async def on_reaction_remove(self, reaction: discord.reaction.Reaction, user: Union[discord.Member, discord.User]):
|
||||
if not isinstance(user, discord.Member):
|
||||
return
|
||||
|
||||
if user.guild is None:
|
||||
return
|
||||
|
||||
if user.bot:
|
||||
return
|
||||
|
||||
server_config: ServerConfig = self._config.get_configuration(f"ServerConfig_{user.guild.id}")
|
||||
if not FeatureFlagsSettings.get_flag_from_dict(
|
||||
server_config.feature_flags, FeatureFlagsEnum.achievements_module
|
||||
):
|
||||
return
|
||||
|
||||
server = self._servers.get_server_by_discord_id(user.guild.id)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(user.id, server.id)
|
||||
|
||||
user.reaction_count -= 1
|
||||
self._db.save_changes()
|
||||
self._users.update_user(user)
|
||||
|
||||
await self._achievements.validate_achievements_for_user(user)
|
@@ -0,0 +1,55 @@
|
||||
import discord
|
||||
from cpl_core.configuration import ConfigurationABC
|
||||
from cpl_core.database.context import DatabaseContextABC
|
||||
from cpl_core.logging import LoggerABC
|
||||
from cpl_discord.events import OnVoiceStateUpdateABC
|
||||
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.server_repository_abc import ServerRepositoryABC
|
||||
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
||||
from bot_data.model.server_config import ServerConfig
|
||||
from modules.achievements.achievement_service import AchievementService
|
||||
|
||||
|
||||
class AchievementOnVoiceStateUpdateEvent(OnVoiceStateUpdateABC):
|
||||
def __init__(
|
||||
self,
|
||||
config: ConfigurationABC,
|
||||
logger: LoggerABC,
|
||||
bot: DiscordBotServiceABC,
|
||||
achievements: AchievementService,
|
||||
db: DatabaseContextABC,
|
||||
servers: ServerRepositoryABC,
|
||||
users: UserRepositoryABC,
|
||||
):
|
||||
OnVoiceStateUpdateABC.__init__(self)
|
||||
|
||||
self._config = config
|
||||
self._logger = logger
|
||||
self._bot = bot
|
||||
self._achievements = achievements
|
||||
self._db = db
|
||||
self._servers = servers
|
||||
self._users = users
|
||||
|
||||
async def on_voice_state_update(
|
||||
self, member: discord.member.Member, before: discord.member.VoiceState, after: discord.member.VoiceState
|
||||
):
|
||||
if member.guild is None:
|
||||
return
|
||||
|
||||
if member.author.bot:
|
||||
return
|
||||
|
||||
server_config: ServerConfig = self._config.get_configuration(f"ServerConfig_{member.guild.id}")
|
||||
if not FeatureFlagsSettings.get_flag_from_dict(
|
||||
server_config.feature_flags, FeatureFlagsEnum.achievements_module
|
||||
):
|
||||
return
|
||||
|
||||
server = self._servers.get_server_by_discord_id(member.guild.id)
|
||||
user = self._users.get_user_by_discord_id_and_server_id(member.id, server.id)
|
||||
|
||||
await self._achievements.validate_achievements_for_user(user)
|
@@ -1 +1,26 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
bot Keksdose bot
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Discord bot for the Keksdose discord Server
|
||||
|
||||
:copyright: (c) 2022 - 2023 sh-edraft.de
|
||||
:license: MIT, see LICENSE for more details.
|
||||
|
||||
"""
|
||||
|
||||
__title__ = "modules.achievements.model"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
|
||||
# imports
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -15,7 +15,7 @@ __title__ = "modules.auto_role"
|
||||
__author__ = "Sven Heidemann"
|
||||
__license__ = "MIT"
|
||||
__copyright__ = "Copyright (c) 2022 - 2023 sh-edraft.de"
|
||||
__version__ = "1.0.7"
|
||||
__version__ = "1.1.0"
|
||||
|
||||
from collections import namedtuple
|
||||
|
||||
@@ -23,4 +23,4 @@ from collections import namedtuple
|
||||
# imports:
|
||||
|
||||
VersionInfo = namedtuple("VersionInfo", "major minor micro")
|
||||
version_info = VersionInfo(major="1", minor="0", micro="7")
|
||||
version_info = VersionInfo(major="1", minor="1", micro="0")
|
||||
|
@@ -3,8 +3,8 @@
|
||||
"Name": "auto-role",
|
||||
"Version": {
|
||||
"Major": "1",
|
||||
"Minor": "0",
|
||||
"Micro": "7"
|
||||
"Minor": "1",
|
||||
"Micro": "0"
|
||||
},
|
||||
"Author": "",
|
||||
"AuthorEmail": "",
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user