コード例 #1
0
    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()
コード例 #2
0
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()
コード例 #3
0
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()
コード例 #4
0
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()
コード例 #5
0
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()
コード例 #6
0
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()
コード例 #7
0
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()