Compare commits

..

No commits in common. "fd1245fb4f2eb856948170920346d5021d1ee964" and "a46fbcd9fcd578162f8c33e332bab69c4e0efe6c" have entirely different histories.

2 changed files with 2 additions and 38 deletions

View File

@ -1,4 +1,3 @@
import discord
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_translation import TranslatePipe from cpl_translation import TranslatePipe
@ -9,10 +8,6 @@ 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.helper.command_checks import CommandChecks from bot_core.helper.command_checks import CommandChecks
from bot_core.logging.command_logger import CommandLogger from bot_core.logging.command_logger import CommandLogger
from bot_data.abc.server_repository_abc import ServerRepositoryABC
from modules.base.abc.base_helper_abc import BaseHelperABC
from modules.base.configuration.base_server_settings import BaseServerSettings
from modules.permission.abc.permission_service_abc import PermissionServiceABC
class PingCommand(DiscordCommandABC): class PingCommand(DiscordCommandABC):
@ -23,10 +18,7 @@ class PingCommand(DiscordCommandABC):
message_service: MessageServiceABC, message_service: MessageServiceABC,
bot: DiscordBotServiceABC, bot: DiscordBotServiceABC,
client_utils: ClientUtilsServiceABC, client_utils: ClientUtilsServiceABC,
translate: TranslatePipe, translate: TranslatePipe
permissions: PermissionServiceABC,
base_helper: BaseHelperABC,
servers: ServerRepositoryABC,
): ):
DiscordCommandABC.__init__(self) DiscordCommandABC.__init__(self)
@ -35,34 +27,13 @@ class PingCommand(DiscordCommandABC):
self._bot = bot self._bot = bot
self._client_utils = client_utils self._client_utils = client_utils
self._t = translate self._t = translate
self._permissions = permissions
self._base_helper = base_helper
self._servers = servers
self._logger.trace(__name__, f'Loaded command service: {type(self).__name__}') self._logger.trace(__name__, f'Loaded command service: {type(self).__name__}')
@staticmethod
def _get_ping(url: str) -> float:
from icmplib import ping
ping_result = ping(url, count=4, interval=0.2, privileged=False)
return ping_result.avg_rtt
@commands.hybrid_command() @commands.hybrid_command()
@commands.guild_only() @commands.guild_only()
@CommandChecks.check_is_ready() @CommandChecks.check_is_ready()
async def ping(self, ctx: Context): async def ping(self, ctx: Context):
self._logger.debug(__name__, f'Received command ping {ctx}') self._logger.debug(__name__, f'Received command ping {ctx}')
if self._permissions.is_member_technician(ctx.author): await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.pong'))
embed = discord.Embed(
title=self._t.transform('modules.base.info.title'),
description=self._t.transform('modules.base.info.description'),
color=int('ef9d0d', 16)
)
server = self._servers.get_server_by_discord_id(ctx.guild.id)
settings: BaseServerSettings = self._base_helper.get_config(server.discord_server_id)
for server in settings.ping_urls:
embed.add_field(name=server, value=f'{self._get_ping(server)} ms', inline=False)
await self._message_service.send_ctx_msg(ctx, embed)
else:
await self._message_service.send_ctx_msg(ctx, self._t.transform('modules.base.pong'))
self._logger.trace(__name__, f'Finished ping command') self._logger.trace(__name__, f'Finished ping command')

View File

@ -19,7 +19,6 @@ class BaseServerSettings(ConfigurationModelABC):
self._afk_command_channel_id: int = 0 self._afk_command_channel_id: int = 0
self._help_command_reference_url: str = '' self._help_command_reference_url: str = ''
self._help_voice_channel_id: int = 0 self._help_voice_channel_id: int = 0
self._ping_urls = List(str)
@property @property
def id(self) -> int: def id(self) -> int:
@ -57,10 +56,6 @@ class BaseServerSettings(ConfigurationModelABC):
def help_voice_channel_id(self) -> int: def help_voice_channel_id(self) -> int:
return self._help_voice_channel_id return self._help_voice_channel_id
@property
def ping_urls(self) -> List[str]:
return self._ping_urls
def from_dict(self, settings: dict): def from_dict(self, settings: dict):
try: try:
self._id = int(settings['Id']) self._id = int(settings['Id'])
@ -73,8 +68,6 @@ class BaseServerSettings(ConfigurationModelABC):
self._afk_command_channel_id = settings['AFKCommandChannelId'] self._afk_command_channel_id = settings['AFKCommandChannelId']
self._help_command_reference_url = settings['HelpCommandReferenceUrl'] self._help_command_reference_url = settings['HelpCommandReferenceUrl']
self._help_voice_channel_id = settings['HelpVoiceChannelId'] self._help_voice_channel_id = settings['HelpVoiceChannelId']
for url in settings['PingURLs']:
self._ping_urls.append(url)
except Exception as e: except Exception as e:
Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings') Console.error(f'[ ERROR ] [ {__name__} ]: Reading error in {type(self).__name__} settings')
Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}') Console.error(f'[ EXCEPTION ] [ {__name__} ]: {e} -> {traceback.format_exc()}')