Merge branch '1.0.0' into #133

This commit is contained in:
Sven Heidemann 2023-02-21 22:45:30 +01:00
commit b9d33c5fd0
10 changed files with 87 additions and 120 deletions

View File

@ -25,10 +25,10 @@ class ModuleList:
DataModule, DataModule,
GraphQLModule, GraphQLModule,
PermissionModule, PermissionModule,
LevelModule,
DatabaseModule, DatabaseModule,
AutoRoleModule, AutoRoleModule,
BaseModule, BaseModule,
LevelModule,
ApiModule, ApiModule,
TechnicianModule, TechnicianModule,
# has to be last! # has to be last!

View File

@ -69,11 +69,11 @@ class ApiKey(TableABC):
return str( return str(
f""" f"""
INSERT INTO `ApiKeys` ( INSERT INTO `ApiKeys` (
`Identifier`, `Key`, `CreatorId`, `CreatedAt`, `LastModifiedAt` `Identifier`, `Key`, {"" if self._creator is None else "`CreatorId`,"} `CreatedAt`, `LastModifiedAt`
) VALUES ( ) VALUES (
'{self._identifier}', '{self._identifier}',
'{self._key}', '{self._key}',
{"NULL" if self._creator is None else self._creator.id}, {"" if self._creator is None else f"{self._creator.id},"}
'{self._created_at}', '{self._created_at}',
'{self._modified_at}' '{self._modified_at}'
); );
@ -87,6 +87,7 @@ class ApiKey(TableABC):
UPDATE `ApiKeys` UPDATE `ApiKeys`
SET `Identifier` = '{self._identifier}', SET `Identifier` = '{self._identifier}',
`Key` = '{self._key}', `Key` = '{self._key}',
{"" if self._creator is None else f"`CreatorId` = {self._creator.id},"}
`LastModifiedAt` = '{self._modified_at}' `LastModifiedAt` = '{self._modified_at}'
WHERE `Id` = {self._id}; WHERE `Id` = {self._id};
""" """

View File

@ -215,30 +215,30 @@ class AuthUser(TableABC):
`EMail`, `EMail`,
`Password`, `Password`,
`PasswordSalt`, `PasswordSalt`,
`RefreshToken`, {"" if self._refresh_token is None else f"`RefreshToken`,"}
`ConfirmationId`, {"" if self._confirmation_id is None else f"`ConfirmationId`,"}
`ForgotPasswordId`, {"" if self._forgot_password_id is None else f"`ForgotPasswordId`,"}
`OAuthId`, {"" if self._oauth_id is None else f"`OAuthId`,"}
`RefreshTokenExpiryTime`, `RefreshTokenExpiryTime`,
`AuthRole`, `AuthRole`,
`CreatedAt`, `CreatedAt`,
`LastModifiedAt` `LastModifiedAt`
) VALUES ( ) VALUES (
{self._auth_user_id}, {self._auth_user_id},
'{self._first_name}', '{self._first_name}',
'{self._last_name}', '{self._last_name}',
'{self._email}', '{self._email}',
'{self._password}', '{self._password}',
'{self._password_salt}', '{self._password_salt}',
'{"NULL" if self._refresh_token is None else self._refresh_token}', {"" if self._refresh_token is None else f"'{self._refresh_token}',"}
'{"NULL" if self._confirmation_id is None else self._confirmation_id}', {"" if self._confirmation_id is None else f"'{self._confirmation_id}',"}
'{"NULL" if self._forgot_password_id is None else self._forgot_password_id}', {"" if self._forgot_password_id is None else f"'{self._forgot_password_id}',"}
'{"NULL" if self._oauth_id is None else self._oauth_id}', {"" if self._oauth_id is None else f"'{self._oauth_id}',"}
'{self._refresh_token_expire_time.isoformat()}', '{self._refresh_token_expire_time.isoformat()}',
{self._auth_role_id.value}, {self._auth_role_id.value},
'{self._created_at}', '{self._created_at}',
'{self._modified_at}' '{self._modified_at}'
) )
""" """
) )
@ -252,10 +252,10 @@ class AuthUser(TableABC):
`EMail` = '{self._email}', `EMail` = '{self._email}',
`Password` = '{self._password}', `Password` = '{self._password}',
`PasswordSalt` = '{self._password_salt}', `PasswordSalt` = '{self._password_salt}',
`RefreshToken` = '{'null' if self._refresh_token is None else f'{self._refresh_token}'}', {'' if self._refresh_token is None else f"`RefreshToken` = '{self._refresh_token}',"}
`ConfirmationId` = '{'null' if self._confirmation_id is None else f'{self._confirmation_id}'}', {'' if self._confirmation_id is None else f"'`ConfirmationId` = '{self._confirmation_id}',"}
`ForgotPasswordId` = '{'null' if self._forgot_password_id is None else f'{self._forgot_password_id}'}', {'' if self._forgot_password_id is None else f"`ForgotPasswordId` = '{self._forgot_password_id}',"}
`OAuthId` = '{'null' if self._oauth_id is None else f'{self._oauth_id}'}', {'' if self._oauth_id is None else f"`OAuthId` = '{self._oauth_id}',"}
`RefreshTokenExpiryTime` = '{self._refresh_token_expire_time.isoformat()}', `RefreshTokenExpiryTime` = '{self._refresh_token_expire_time.isoformat()}',
`AuthRole` = {self._auth_role_id.value}, `AuthRole` = {self._auth_role_id.value},
`LastModifiedAt` = '{self._modified_at}' `LastModifiedAt` = '{self._modified_at}'

View File

@ -150,11 +150,11 @@ class User(TableABC):
return str( return str(
f""" f"""
INSERT INTO `Users` ( INSERT INTO `Users` (
`DiscordId`, `XP`, `MinecraftId`, `ServerId`, `CreatedAt`, `LastModifiedAt` `DiscordId`, `XP`, {"" if self._minecraft_id is None else "`MinecraftId`,"} `ServerId`, `CreatedAt`, `LastModifiedAt`
) VALUES ( ) VALUES (
{self._discord_id}, {self._discord_id},
{self._xp}, {self._xp},
'{self._minecraft_id}', {"" if self._minecraft_id is None else f"'{self._minecraft_id}',"}
{self._server.id}, {self._server.id},
'{self._created_at}', '{self._created_at}',
'{self._modified_at}' '{self._modified_at}'
@ -168,7 +168,7 @@ class User(TableABC):
f""" f"""
UPDATE `Users` UPDATE `Users`
SET `XP` = {self._xp}, SET `XP` = {self._xp},
`MinecraftId` = {'null' if self.minecraft_id is None else f'{self._minecraft_id}'}, {"" if self._minecraft_id is None else f"`MinecraftId` = '{self._minecraft_id}',"}
`LastModifiedAt` = '{self._modified_at}' `LastModifiedAt` = '{self._modified_at}'
WHERE `UserId` = {self._user_id}; WHERE `UserId` = {self._user_id};
""" """

View File

@ -98,42 +98,28 @@ class UserJoinedGameServer(TableABC):
@property @property
def insert_string(self) -> str: def insert_string(self) -> str:
if self._leaved_on is not None: return str(
return str( f"""
f""" INSERT INTO `UserJoinedGameServer` (
INSERT INTO `UserJoinedGameServer` ( `UserId`, `GameServer`, `JoinedOn`, {"" if self._leaved_on is None else "`LeavedOn`,"} `CreatedAt`, `LastModifiedAt`
`UserId`, `GameServer`, `JoinedOn`, `LeavedOn`, `CreatedAt`, `LastModifiedAt` ) VALUES (
) VALUES ( {self._user.id},
{self._user.id}, '{self._game_server}',
'{self._game_server}', '{self._joined_on}',
'{self._joined_on}', {"" if self._leaved_on is None else f"'{self._leaved_on}',"}
'{self._leaved_on}', '{self._created_at}',
'{self._created_at}', '{self._modified_at}'
'{self._modified_at}' );
); """
""" )
)
else:
return str(
f"""
INSERT INTO `UserJoinedGameServer` (
`UserId`, `GameServer`, `JoinedOn`, `CreatedAt`, `LastModifiedAt`
) VALUES (
{self._user.id},
'{self._game_server}',
'{self._joined_on}',
'{self._created_at}',
'{self._modified_at}'
);
"""
)
@property @property
def udpate_string(self) -> str: def udpate_string(self) -> str:
return str( return str(
f""" f"""
UPDATE `UserJoinedGameServer` UPDATE `UserJoinedGameServer`
SET `LeavedOn` = '{self._leaved_on}', SET
{"" if self._leaved_on is None else f"`LeavedOn` = '{self._leaved_on}',"}
`LastModifiedAt` = '{self._modified_at}' `LastModifiedAt` = '{self._modified_at}'
WHERE `Id` = {self._id}; WHERE `Id` = {self._id};
""" """

View File

@ -97,40 +97,27 @@ class UserJoinedServer(TableABC):
@property @property
def insert_string(self) -> str: def insert_string(self) -> str:
if self._leaved_on is not None: return str(
return str( f"""
f""" INSERT INTO `UserJoinedServers` (
INSERT INTO `UserJoinedServers` ( `UserId`, `JoinedOn`, {"" if self._leaved_on is None else "`LeavedOn`,"} `CreatedAt`, `LastModifiedAt`
`UserId`, `JoinedOn`, `LeavedOn`, `CreatedAt`, `LastModifiedAt` ) VALUES (
) VALUES ( {self._user.id},
{self._user.id}, '{self._joined_on}',
'{self._joined_on}', {"" if self._leaved_on is None else f"'{self._leaved_on}',"}
'{self._leaved_on}', '{self._created_at}',
'{self._created_at}', '{self._modified_at}'
'{self._modified_at}' );
); """
""" )
)
else:
return str(
f"""
INSERT INTO `UserJoinedServers` (
`UserId`, `JoinedOn`, `CreatedAt`, `LastModifiedAt`
) VALUES (
{self._user.id},
'{self._joined_on}',
'{self._created_at}',
'{self._modified_at}'
);
"""
)
@property @property
def udpate_string(self) -> str: def udpate_string(self) -> str:
return str( return str(
f""" f"""
UPDATE `UserJoinedServers` UPDATE `UserJoinedServers`
SET `LeavedOn` = '{self._leaved_on}', SET
{"" if self._leaved_on is None else f"`LeavedOn` = '{self._leaved_on}',"}
`LastModifiedAt` = '{self._modified_at}' `LastModifiedAt` = '{self._modified_at}'
WHERE `UserId` = {self._user.id}; WHERE `UserId` = {self._user.id};
""" """

View File

@ -105,42 +105,28 @@ class UserJoinedVoiceChannel(TableABC):
@property @property
def insert_string(self) -> str: def insert_string(self) -> str:
if self._leaved_on is not None: return str(
return str( f"""
f""" INSERT INTO `UserJoinedVoiceChannel` (
INSERT INTO `UserJoinedVoiceChannel` ( `UserId`, `DiscordChannelId`, `JoinedOn`, {"" if self._leaved_on is None else "`LeavedOn`,"} `CreatedAt`, `LastModifiedAt`
`UserId`, `DiscordChannelId`, `JoinedOn`, `LeavedOn`, `CreatedAt`, `LastModifiedAt` ) VALUES (
) VALUES ( {self._user.id},
{self._user.id}, {self._channel_id},
{self._channel_id}, '{self._joined_on}',
'{self._joined_on}', {"" if self._leaved_on is None else f"'{self._leaved_on}',"}
'{self._leaved_on}', '{self._created_at}',
'{self._created_at}', '{self._modified_at}'
'{self._modified_at}' );
); """
""" )
)
else:
return str(
f"""
INSERT INTO `UserJoinedVoiceChannel` (
`UserId`, `DiscordChannelId`, `JoinedOn`, `CreatedAt`, `LastModifiedAt`
) VALUES (
{self._user.id},
{self._channel_id},
'{self._joined_on}',
'{self._created_at}',
'{self._modified_at}'
);
"""
)
@property @property
def udpate_string(self) -> str: def udpate_string(self) -> str:
return str( return str(
f""" f"""
UPDATE `UserJoinedVoiceChannel` UPDATE `UserJoinedVoiceChannel`
SET `LeavedOn` = '{self._leaved_on}', SET
{"" if self._leaved_on is None else f"`LeavedOn` = '{self._leaved_on}',"}
`LastModifiedAt` = '{self._modified_at}' `LastModifiedAt` = '{self._modified_at}'
WHERE `JoinId` = {self._join_id}; WHERE `JoinId` = {self._join_id};
""" """

View File

@ -52,6 +52,9 @@ class BaseReactionHandler:
__name__, __name__,
f"{log_msg} to message {LogMessageHelper.get_log_string(message)}", f"{log_msg} to message {LogMessageHelper.get_log_string(message)}",
) )
if member == message.author:
self._logger.debug(__name__, f"Skipping reaction handling")
return
except Exception as e: except Exception as e:
self._logger.error(__name__, f"Getting message for reaction logging failed", e) self._logger.error(__name__, f"Getting message for reaction logging failed", e)
self._logger.info(__name__, f"{log_msg} to message {payload.message_id}") self._logger.info(__name__, f"{log_msg} to message {payload.message_id}")

View File

@ -375,8 +375,6 @@ class DatabaseOnReadyEvent(OnReadyABC):
async def on_ready(self): async def on_ready(self):
self._logger.debug(__name__, f"Module {type(self)} started") self._logger.debug(__name__, f"Module {type(self)} started")
await self._seeder.seed()
self._check_known_users() self._check_known_users()
self._check_servers() self._check_servers()
self._check_clients() self._check_clients()
@ -385,5 +383,7 @@ class DatabaseOnReadyEvent(OnReadyABC):
self._check_user_joins_vc() self._check_user_joins_vc()
self._check_user_joined_gs() self._check_user_joined_gs()
await self._seeder.seed()
self._validate_init_time() self._validate_init_time()
self._logger.trace(__name__, f"Module {type(self)} stopped") self._logger.trace(__name__, f"Module {type(self)} stopped")

View File

@ -1,4 +1,5 @@
import discord import discord
from cpl_core.database.context import DatabaseContextABC
from cpl_discord.container import Guild from cpl_discord.container import Guild
from cpl_discord.service import DiscordBotServiceABC from cpl_discord.service import DiscordBotServiceABC
from discord import Permissions, Colour from discord import Permissions, Colour
@ -21,6 +22,7 @@ class LevelSeeder(DataSeederABC):
level_repo: LevelRepositoryService, level_repo: LevelRepositoryService,
servers: ServerRepositoryABC, servers: ServerRepositoryABC,
level: LevelService, level: LevelService,
db: DatabaseContextABC,
bot: DiscordBotServiceABC, bot: DiscordBotServiceABC,
): ):
DataSeederABC.__init__(self) DataSeederABC.__init__(self)
@ -29,6 +31,7 @@ class LevelSeeder(DataSeederABC):
self._levels = level_repo self._levels = level_repo
self._servers = servers self._servers = servers
self._level = level self._level = level
self._db = db
self._bot = bot self._bot = bot
self._level_header = levels.level_header self._level_header = levels.level_header
@ -51,6 +54,7 @@ class LevelSeeder(DataSeederABC):
if levels is None or levels.where(lambda l: l.name == level.name).first_or_default() is None: if levels is None or levels.where(lambda l: l.name == level.name).first_or_default() is None:
self._levels.add_level(level) self._levels.add_level(level)
self._logger.debug(__name__, f"Saved level {level.name}") self._logger.debug(__name__, f"Saved level {level.name}")
self._db.save_changes()
except discord.errors.Forbidden as e: except discord.errors.Forbidden as e:
self._logger.error(__name__, f"Creating level failed", e) self._logger.error(__name__, f"Creating level failed", e)
level.permissions = 0 level.permissions = 0