Improved info commands
This commit is contained in:
parent
aa929de8d7
commit
6739b9744e
@ -10,6 +10,7 @@ from cpl_core.environment import ApplicationEnvironment
|
|||||||
|
|
||||||
from bot_core.abc.client_utils_service_abc import ClientUtilsServiceABC
|
from bot_core.abc.client_utils_service_abc import ClientUtilsServiceABC
|
||||||
from bot_core.abc.message_service_abc import MessageServiceABC
|
from bot_core.abc.message_service_abc import MessageServiceABC
|
||||||
|
from bot_core.pipes.date_time_offset_pipe import DateTimeOffsetPipe
|
||||||
from bot_core.service.client_utils_service import ClientUtilsService
|
from bot_core.service.client_utils_service import ClientUtilsService
|
||||||
from bot_core.service.message_service import MessageService
|
from bot_core.service.message_service import MessageService
|
||||||
from bot_data.abc.client_repository_abc import ClientRepositoryABC
|
from bot_data.abc.client_repository_abc import ClientRepositoryABC
|
||||||
@ -64,6 +65,9 @@ class Startup(StartupABC):
|
|||||||
services.add_transient(MessageServiceABC, MessageService)
|
services.add_transient(MessageServiceABC, MessageService)
|
||||||
services.add_transient(ClientUtilsServiceABC, ClientUtilsService)
|
services.add_transient(ClientUtilsServiceABC, ClientUtilsService)
|
||||||
|
|
||||||
|
# pipes
|
||||||
|
services.add_transient(DateTimeOffsetPipe)
|
||||||
|
|
||||||
# module services
|
# module services
|
||||||
services.add_singleton(PermissionServiceABC, PermissionService)
|
services.add_singleton(PermissionServiceABC, PermissionService)
|
||||||
|
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
"common": {
|
"common": {
|
||||||
"hello_world": "Hallo Welt",
|
"hello_world": "Hallo Welt",
|
||||||
"bot_has_no_permission_message": "Ey!!!\nWas soll das?\nIch habe keine Berechtigungen :(\nScheiß System...",
|
"bot_has_no_permission_message": "Ey!!!\nWas soll das?\nIch habe keine Berechtigungen :(\nScheiß System...",
|
||||||
"no_permission_message": "Nein!\nIch höre nicht auf dich ¯\\_(ツ)_/¯"
|
"no_permission_message": "Nein!\nIch höre nicht auf dich ¯\\_(ツ)_/¯",
|
||||||
|
"not_implemented_yet": "Ey Alter, das kann ich noch nicht..."
|
||||||
},
|
},
|
||||||
"modules": {
|
"modules": {
|
||||||
"base": {
|
"base": {
|
||||||
|
@ -1,26 +1 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# imports
|
||||||
|
|
||||||
"""
|
|
||||||
bot Keksdose bot
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
Discord bot for the Keksdose discord Server
|
|
||||||
|
|
||||||
:copyright: (c) 2022 sh-edraft.de
|
|
||||||
:license: MIT, see LICENSE for more details.
|
|
||||||
|
|
||||||
"""
|
|
||||||
|
|
||||||
__title__ = 'bot_core'
|
|
||||||
__author__ = 'Sven Heidemann'
|
|
||||||
__license__ = 'MIT'
|
|
||||||
__copyright__ = 'Copyright (c) 2022 sh-edraft.de'
|
|
||||||
__version__ = '1.0.0.dev1'
|
|
||||||
|
|
||||||
from collections import namedtuple
|
|
||||||
|
|
||||||
|
|
||||||
# imports:
|
|
||||||
|
|
||||||
VersionInfo = namedtuple('VersionInfo', 'major minor micro')
|
|
||||||
version_info = VersionInfo(major='1', minor='0', micro='0.dev1')
|
|
||||||
|
1
src/bot_core/pipes/__init__.py
Normal file
1
src/bot_core/pipes/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
# imports
|
11
src/bot_core/pipes/date_time_offset_pipe.py
Normal file
11
src/bot_core/pipes/date_time_offset_pipe.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
from cpl_core.pipes.pipe_abc import PipeABC
|
||||||
|
|
||||||
|
|
||||||
|
class DateTimeOffsetPipe(PipeABC):
|
||||||
|
|
||||||
|
def __init__(self): pass
|
||||||
|
|
||||||
|
def transform(self, value: datetime, *args):
|
||||||
|
return value.strftime('%Y-%m-%d %H:%M')
|
@ -5,7 +5,6 @@ from cpl_core.configuration import ConfigurationABC
|
|||||||
from cpl_core.logging import LoggerABC
|
from cpl_core.logging import LoggerABC
|
||||||
from cpl_discord.command import DiscordCommandABC
|
from cpl_discord.command import DiscordCommandABC
|
||||||
from cpl_discord.service import DiscordBotServiceABC
|
from cpl_discord.service import DiscordBotServiceABC
|
||||||
from cpl_query.extension import List
|
|
||||||
from cpl_translation import TranslatePipe
|
from cpl_translation import TranslatePipe
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from discord.ext.commands import Context
|
from discord.ext.commands import Context
|
||||||
@ -13,10 +12,6 @@ from discord.ext.commands import Context
|
|||||||
import bot
|
import bot
|
||||||
from bot_core.abc.client_utils_service_abc import ClientUtilsServiceABC
|
from bot_core.abc.client_utils_service_abc import ClientUtilsServiceABC
|
||||||
from bot_core.abc.message_service_abc import MessageServiceABC
|
from bot_core.abc.message_service_abc import MessageServiceABC
|
||||||
from bot_core.model.embed_description import EmbedDescription
|
|
||||||
from bot_core.model.embed_description_field import EmbedDescriptionField
|
|
||||||
from bot_core.service.embed_service import EmbedService
|
|
||||||
from modules.base.configuration.base_server_settings import BaseServerSettings
|
|
||||||
|
|
||||||
|
|
||||||
class InfoCommand(DiscordCommandABC):
|
class InfoCommand(DiscordCommandABC):
|
||||||
|
@ -5,20 +5,16 @@ from cpl_core.configuration import ConfigurationABC
|
|||||||
from cpl_core.logging import LoggerABC
|
from cpl_core.logging import LoggerABC
|
||||||
from cpl_discord.command import DiscordCommandABC
|
from cpl_discord.command import DiscordCommandABC
|
||||||
from cpl_discord.service import DiscordBotServiceABC
|
from cpl_discord.service import DiscordBotServiceABC
|
||||||
from cpl_query.extension import List
|
|
||||||
from cpl_translation import TranslatePipe
|
from cpl_translation import TranslatePipe
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
from discord.ext.commands import Context
|
from discord.ext.commands import Context
|
||||||
|
|
||||||
from bot_core.abc.client_utils_service_abc import ClientUtilsServiceABC
|
from bot_core.abc.client_utils_service_abc import ClientUtilsServiceABC
|
||||||
from bot_core.abc.message_service_abc import MessageServiceABC
|
from bot_core.abc.message_service_abc import MessageServiceABC
|
||||||
from bot_core.model.embed_description import EmbedDescription
|
from bot_core.pipes.date_time_offset_pipe import DateTimeOffsetPipe
|
||||||
from bot_core.model.embed_description_field import EmbedDescriptionField
|
|
||||||
from bot_core.service.embed_service import EmbedService
|
|
||||||
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
from bot_data.abc.server_repository_abc import ServerRepositoryABC
|
||||||
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_repository_abc import UserRepositoryABC
|
from bot_data.abc.user_repository_abc import UserRepositoryABC
|
||||||
from modules.base.configuration.base_server_settings import BaseServerSettings
|
|
||||||
from modules.permission.abc.permission_service_abc import PermissionServiceABC
|
from modules.permission.abc.permission_service_abc import PermissionServiceABC
|
||||||
|
|
||||||
|
|
||||||
@ -35,7 +31,8 @@ class UserInfoCommand(DiscordCommandABC):
|
|||||||
servers: ServerRepositoryABC,
|
servers: ServerRepositoryABC,
|
||||||
users: UserRepositoryABC,
|
users: UserRepositoryABC,
|
||||||
user_joined_servers: UserJoinedServerRepositoryABC,
|
user_joined_servers: UserJoinedServerRepositoryABC,
|
||||||
translate: TranslatePipe
|
translate: TranslatePipe,
|
||||||
|
date: DateTimeOffsetPipe
|
||||||
):
|
):
|
||||||
DiscordCommandABC.__init__(self)
|
DiscordCommandABC.__init__(self)
|
||||||
|
|
||||||
@ -49,6 +46,7 @@ class UserInfoCommand(DiscordCommandABC):
|
|||||||
self._users = users
|
self._users = users
|
||||||
self._user_joined_servers = user_joined_servers
|
self._user_joined_servers = user_joined_servers
|
||||||
self._t = translate
|
self._t = translate
|
||||||
|
self._date = date
|
||||||
|
|
||||||
self._logger.trace(__name__, f'Loaded command service: {type(self).__name__}')
|
self._logger.trace(__name__, f'Loaded command service: {type(self).__name__}')
|
||||||
|
|
||||||
@ -70,15 +68,15 @@ class UserInfoCommand(DiscordCommandABC):
|
|||||||
joins = self._user_joined_servers.get_user_joined_servers_by_user_id(user.user_id)
|
joins = self._user_joined_servers.get_user_joined_servers_by_user_id(user.user_id)
|
||||||
|
|
||||||
embed = discord.Embed(
|
embed = discord.Embed(
|
||||||
title=self._t.transform('modules.base.user_info.title'),
|
title=member.name,
|
||||||
description=self._t.transform('modules.base.user_info.description'),
|
description=member.name,
|
||||||
color=int('ef9d0d', 16)
|
color=int('ef9d0d', 16)
|
||||||
)
|
)
|
||||||
|
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.id'), value=member.id)
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.id'), value=member.id)
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.name'), value=member.name)
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.name'), value=member.name)
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.discord_join'), value=member.created_at, inline=False)
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.discord_join'), value=self._date.transform(member.created_at), inline=False)
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.last_join'), value=member.joined_at, inline=False)
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.last_join'), value=self._date.transform(member.joined_at), inline=False)
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.xp'), value=str(user.xp))
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.xp'), value=str(user.xp))
|
||||||
|
|
||||||
roles = ''
|
roles = ''
|
||||||
@ -88,7 +86,7 @@ class UserInfoCommand(DiscordCommandABC):
|
|||||||
|
|
||||||
joins_string = ''
|
joins_string = ''
|
||||||
for join in joins:
|
for join in joins:
|
||||||
joins_string += f'{join.joined_on}\n'
|
joins_string += f'{self._date.transform(join.joined_on)}\n'
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.joins'), value=joins_string)
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.joins'), value=joins_string)
|
||||||
|
|
||||||
lefts_string = ''
|
lefts_string = ''
|
||||||
@ -97,9 +95,9 @@ class UserInfoCommand(DiscordCommandABC):
|
|||||||
if lefts_string == '':
|
if lefts_string == '':
|
||||||
lefts_string = '/'
|
lefts_string = '/'
|
||||||
continue
|
continue
|
||||||
lefts_string += f'{join.leaved_on}\n'
|
lefts_string += f'{self._date.transform(join.leaved_on)}\n'
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.lefts'), value=lefts_string)
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.lefts'), value=lefts_string)
|
||||||
embed.add_field(name=self._t.transform('modules.base.user_info.fields.warnings'), value='Not Implemented yet', inline=False)
|
embed.add_field(name=self._t.transform('modules.base.user_info.fields.warnings'), value=self._t.transform('common.not_implemented_yet'), inline=False)
|
||||||
|
|
||||||
await self._message_service.send_ctx_msg(ctx, embed, wait_before_delete=wait)
|
await self._message_service.send_ctx_msg(ctx, embed, wait_before_delete=wait)
|
||||||
self._logger.trace(__name__, f'Finished user-info command')
|
self._logger.trace(__name__, f'Finished user-info command')
|
||||||
|
Loading…
Reference in New Issue
Block a user