def process_request(self): try: if self.is_request(): split = [x.lower() for x in self.message.split()] request_command = split[0].replace(self.REQUEST_PREFIX, '') request_params = split[1:] if request_command in self.GLOBAL_COMMANDS: self.GLOBAL_COMMANDS[request_command](request_params) except: sv_custom_utils.get_and_log_exception_info()
def check_and_send_message_to_discord(guid, author, message): try: if DiscordSettings.IS_BOT_ENABLED and message_controller.is_message_valid_from_game( guid, message): message = message_controller.format_game_message( author, message, users_cache) # notify that discord author was not found if ": @" in message: server.Notify( guid, "The message was sent but discord user was not found." " Find correct discord user with !find name command.") send_message_to_discord(message) except: sv_custom_utils.get_and_log_exception_info()
async def on_message(message): # bot must not reply to itself try: if message.author == client.user: return if message.channel.id == DiscordSettings.CHANNEL and DiscordSettings.IS_BOT_ENABLED and message.content: receive_message_from_discord(message) sv_io.save_to_file( "from_discord", '[DISCORD] [%s] %s: %s' % (time.strftime( DiscordSettings.LOG_DATE_FORMAT, time.localtime()), message.author.name, message.content)) except: sv_custom_utils.get_and_log_exception_info()
async def on_ready(): try: log.info("Discord bot has logged in as: %s, id: %s" % (client.user.name, client.user.id)) global channel channel = client.get_channel(DiscordSettings.CHANNEL) global users_cache users_cache = DiscordUsersCache(client.users, DiscordSettings) log.info("Discord found %s users" % len(client.users)) global message_controller message_controller = MessageController(DiscordSettings) except: sv_custom_utils.get_and_log_exception_info()
def init(): try: log.info("Initializing Discord...") if DiscordSettings.DEV: DiscordSettings.TOKEN = DiscordSettings.TOKEN_TEST DiscordSettings.CHANNEL = DiscordSettings.CHANNEL_TEST DiscordSettings.GUILD_ID = DiscordSettings.GUILD_ID_TEST asyncio.get_child_watcher() global discord_loop discord_loop = asyncio.get_event_loop() thread = threading.Thread(target=discord_loop.run_forever) thread.start() asyncio.run_coroutine_threadsafe(start(), discord_loop) except: sv_custom_utils.get_and_log_exception_info()
def receive_message_from_discord(message): try: if MessageController.is_message_from_bot(message, DiscordSettings): return request = DiscordCommandRequest(message) if request.is_request(): request.process_request() return formatted_message = MessageController.format_discord_message( message, DiscordSettings) msg = '[DISCORD] [%s] %s: %s' % (time.strftime( DiscordSettings.LOG_DATE_FORMAT, time.localtime()), message.author.name, message.content) sv_io.save_to_file("general_chat", msg) server.Chat(-2, formatted_message) log.chat("> (discord) %s: %s" % (message.author, message.content)) except: sv_custom_utils.get_and_log_exception_info()
def send_embed_to_discord(embed): try: asyncio.run_coroutine_threadsafe(channel.send(embed=embed), discord_loop) except: sv_custom_utils.get_and_log_exception_info()