Formatted files with black
This commit is contained in:
@@ -17,9 +17,7 @@ class DatabaseExtension(ApplicationExtensionABC):
|
||||
pass
|
||||
|
||||
async def run(self, config: ConfigurationABC, services: ServiceProviderABC):
|
||||
feature_flags: FeatureFlagsSettings = config.get_configuration(
|
||||
FeatureFlagsSettings
|
||||
)
|
||||
feature_flags: FeatureFlagsSettings = config.get_configuration(FeatureFlagsSettings)
|
||||
if not feature_flags.get_flag(FeatureFlagsEnum.data_module):
|
||||
return
|
||||
logger: LoggerABC = services.get_service(DatabaseLogger)
|
||||
|
@@ -13,14 +13,10 @@ class DatabaseModule(ModuleABC):
|
||||
def __init__(self, dc: DiscordCollectionABC):
|
||||
ModuleABC.__init__(self, dc, FeatureFlagsEnum.database_module)
|
||||
|
||||
def configure_configuration(
|
||||
self, config: ConfigurationABC, env: ApplicationEnvironmentABC
|
||||
):
|
||||
def configure_configuration(self, config: ConfigurationABC, env: ApplicationEnvironmentABC):
|
||||
pass
|
||||
|
||||
def configure_services(
|
||||
self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC
|
||||
):
|
||||
def configure_services(self, services: ServiceCollectionABC, env: ApplicationEnvironmentABC):
|
||||
# commands
|
||||
# events
|
||||
self._dc.add_event(DiscordEventTypesEnum.on_ready.value, DatabaseOnReadyEvent)
|
||||
|
@@ -64,40 +64,29 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
try:
|
||||
start_time = self._config.get_configuration("Database_StartTime")
|
||||
init_time = round(
|
||||
(
|
||||
datetime.now()
|
||||
- datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S.%f")
|
||||
).total_seconds(),
|
||||
(datetime.now() - datetime.strptime(start_time, "%Y-%m-%d %H:%M:%S.%f")).total_seconds(),
|
||||
2,
|
||||
)
|
||||
self._config.add_configuration("Database_InitTime", str(init_time))
|
||||
self._logger.debug(__name__, f"Database Init time: {init_time}s")
|
||||
# print warning if initialisation took too long
|
||||
if init_time >= 30:
|
||||
self._logger.warn(
|
||||
__name__, "It takes too long to prepare the database!"
|
||||
)
|
||||
self._logger.warn(__name__, "It takes too long to prepare the database!")
|
||||
|
||||
# print error if initialisation took way too long
|
||||
elif init_time >= 90:
|
||||
self._logger.error(
|
||||
__name__, "It takes far too long to prepare the database!!!"
|
||||
)
|
||||
self._logger.error(__name__, "It takes far too long to prepare the database!!!")
|
||||
except Exception as e: #
|
||||
self._logger.error(__name__, "Database init time calculation failed", e)
|
||||
return
|
||||
|
||||
def _check_known_users(self):
|
||||
self._logger.debug(
|
||||
__name__, f"Start checking KnownUsers table, {len(self._bot.users)}"
|
||||
)
|
||||
self._logger.debug(__name__, f"Start checking KnownUsers table, {len(self._bot.users)}")
|
||||
for u in self._bot.users:
|
||||
u: discord.User = u
|
||||
try:
|
||||
if u.bot:
|
||||
self._logger.trace(
|
||||
__name__, f"User {u.id} is ignored, because its a bot"
|
||||
)
|
||||
self._logger.trace(__name__, f"User {u.id} is ignored, because its a bot")
|
||||
continue
|
||||
|
||||
user = self._known_users.find_user_by_discord_id(u.id)
|
||||
@@ -150,9 +139,7 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
try:
|
||||
server: Server = self._servers.find_server_by_discord_id(g.id)
|
||||
if server is None:
|
||||
self._logger.fatal(
|
||||
__name__, f"Server not found in database: {g.id}"
|
||||
)
|
||||
self._logger.fatal(__name__, f"Server not found in database: {g.id}")
|
||||
|
||||
client = self._clients.find_client_by_server_id(server.server_id)
|
||||
if client is not None:
|
||||
@@ -163,9 +150,7 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
f"Client for server {g.id} not found in database: {self._bot.user.id}",
|
||||
)
|
||||
self._logger.debug(__name__, f"Add client: {self._bot.user.id}")
|
||||
self._clients.add_client(
|
||||
Client(self._bot.user.id, 0, 0, 0, 0, 0, server)
|
||||
)
|
||||
self._clients.add_client(Client(self._bot.user.id, 0, 0, 0, 0, 0, server))
|
||||
self._db_context.save_changes()
|
||||
|
||||
client = self._clients.find_client_by_server_id(server.server_id)
|
||||
@@ -191,21 +176,15 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
try:
|
||||
server = self._servers.find_server_by_discord_id(g.id)
|
||||
if server is None:
|
||||
self._logger.fatal(
|
||||
__name__, f"Server not found in database: {g.id}"
|
||||
)
|
||||
self._logger.fatal(__name__, f"Server not found in database: {g.id}")
|
||||
|
||||
for u in g.members:
|
||||
u: Union[discord.Member, discord.User] = u
|
||||
if u.bot:
|
||||
self._logger.trace(
|
||||
__name__, f"User {u.id} is ignored, because its a bot"
|
||||
)
|
||||
self._logger.trace(__name__, f"User {u.id} is ignored, because its a bot")
|
||||
continue
|
||||
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
u.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(u.id, server.server_id)
|
||||
if user is not None:
|
||||
continue
|
||||
|
||||
@@ -229,30 +208,20 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
|
||||
server = self._servers.find_server_by_discord_id(guild.id)
|
||||
if server is None:
|
||||
self._logger.fatal(
|
||||
__name__, f"Server not found in database: {guild.id}"
|
||||
)
|
||||
self._logger.fatal(__name__, f"Server not found in database: {guild.id}")
|
||||
|
||||
try:
|
||||
for u in guild.members:
|
||||
u: discord.User = u
|
||||
if u.bot:
|
||||
self._logger.trace(
|
||||
__name__, f"User {u.id} is ignored, because its a bot"
|
||||
)
|
||||
self._logger.trace(__name__, f"User {u.id} is ignored, because its a bot")
|
||||
continue
|
||||
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
u.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(u.id, server.server_id)
|
||||
if user is None:
|
||||
self._logger.fatal(
|
||||
__name__, f"User not found in database: {u.id}"
|
||||
)
|
||||
self._logger.fatal(__name__, f"User not found in database: {u.id}")
|
||||
|
||||
join = self._user_joins.find_active_user_joined_server_by_user_id(
|
||||
user.user_id
|
||||
)
|
||||
join = self._user_joins.find_active_user_joined_server_by_user_id(user.user_id)
|
||||
if join is not None:
|
||||
continue
|
||||
|
||||
@@ -305,29 +274,19 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
|
||||
server = self._servers.find_server_by_discord_id(guild.id)
|
||||
if server is None:
|
||||
self._logger.fatal(
|
||||
__name__, f"Server not found in database: {guild.id}"
|
||||
)
|
||||
self._logger.fatal(__name__, f"Server not found in database: {guild.id}")
|
||||
|
||||
try:
|
||||
for member in guild.members:
|
||||
if member.bot:
|
||||
self._logger.trace(
|
||||
__name__, f"User {member.id} is ignored, because its a bot"
|
||||
)
|
||||
self._logger.trace(__name__, f"User {member.id} is ignored, because its a bot")
|
||||
continue
|
||||
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
if user is None:
|
||||
self._logger.fatal(
|
||||
__name__, f"User not found in database: {member.id}"
|
||||
)
|
||||
self._logger.fatal(__name__, f"User not found in database: {member.id}")
|
||||
|
||||
joins = self._user_joins_vc.find_active_user_joined_voice_channels_by_user_id(
|
||||
user.user_id
|
||||
)
|
||||
joins = self._user_joins_vc.find_active_user_joined_voice_channels_by_user_id(user.user_id)
|
||||
if joins is None or len(joins) == 0:
|
||||
continue
|
||||
|
||||
@@ -337,16 +296,12 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
f"Active UserJoinedVoiceChannel found in database: {guild.id}:{member.id}@{join.joined_on}",
|
||||
)
|
||||
join.leaved_on = datetime.now()
|
||||
settings: BaseServerSettings = self._config.get_configuration(
|
||||
f"BaseServerSettings_{guild.id}"
|
||||
)
|
||||
settings: BaseServerSettings = self._config.get_configuration(f"BaseServerSettings_{guild.id}")
|
||||
|
||||
if (
|
||||
(join.leaved_on - join.joined_on).total_seconds() / 60 / 60
|
||||
) > settings.max_voice_state_hours:
|
||||
join.leaved_on = join.joined_on + timedelta(
|
||||
hours=settings.max_voice_state_hours
|
||||
)
|
||||
join.leaved_on = join.joined_on + timedelta(hours=settings.max_voice_state_hours)
|
||||
|
||||
self._user_joins_vc.update_user_joined_voice_channel(join)
|
||||
# todo: maybe add XP
|
||||
@@ -354,25 +309,17 @@ class DatabaseOnReadyEvent(OnReadyABC):
|
||||
|
||||
for member in guild.members:
|
||||
if member.bot:
|
||||
self._logger.trace(
|
||||
__name__, f"User {member.id} is ignored, because its a bot"
|
||||
)
|
||||
self._logger.trace(__name__, f"User {member.id} is ignored, because its a bot")
|
||||
continue
|
||||
|
||||
if member.voice is None:
|
||||
continue
|
||||
|
||||
user = self._users.find_user_by_discord_id_and_server_id(
|
||||
member.id, server.server_id
|
||||
)
|
||||
user = self._users.find_user_by_discord_id_and_server_id(member.id, server.server_id)
|
||||
if user is None:
|
||||
self._logger.fatal(
|
||||
__name__, f"User not found in database: {member.id}"
|
||||
)
|
||||
self._logger.fatal(__name__, f"User not found in database: {member.id}")
|
||||
|
||||
join = UserJoinedVoiceChannel(
|
||||
user, member.voice.channel.id, datetime.now()
|
||||
)
|
||||
join = UserJoinedVoiceChannel(user, member.voice.channel.id, datetime.now())
|
||||
self._user_joins_vc.add_user_joined_voice_channel(join)
|
||||
self._db_context.save_changes()
|
||||
self._logger.warn(__name__, f"VS {member.voice}")
|
||||
|
Reference in New Issue
Block a user