예제 #1
0
    async def automessage_edit_message(self, context, automessage_id: int, message: str):
        automessages_data = zbot.db.load_automessages({'automessage_id': automessage_id}, ['_id'])
        if not automessages_data:
            raise exceptions.UnknownAutomessage(automessage_id)

        document_id = automessages_data[0]['_id']
        zbot.db.update_automessages({document_id: {'message': message}})
        await context.send(f"Contenu du message automatique d'identifiant {automessage_id} changé en : `{message}`.")
예제 #2
0
    async def automessage_print(self, context, automessage_id: int, *, options=""):
        automessages_data = zbot.db.load_automessages({'automessage_id': automessage_id}, ['message'])
        if not automessages_data:
            raise exceptions.UnknownAutomessage(automessage_id)

        raw_text = utils.is_option_enabled(options, 'raw')
        message = automessages_data[0]['message']
        await context.send(message if not raw_text else f"`{message}`")
예제 #3
0
    async def automessage_edit_channel(self, context, automessage_id: int, channel: discord.TextChannel):
        automessages_data = zbot.db.load_automessages({'automessage_id': automessage_id}, ['_id'])
        if not automessages_data:
            raise exceptions.UnknownAutomessage(automessage_id)
        if not context.author.permissions_in(channel).send_messages:
            raise exceptions.ForbiddenChannel(channel)

        document_id = automessages_data[0]['_id']
        zbot.db.update_automessages({document_id: {'channel_id': channel.id}})
        await context.send(f"Message automatique d'identifiant {automessage_id} lié au canal {channel.mention}.")
예제 #4
0
    async def automessage_remove(self, context, automessage_id: int):
        automessages_data = zbot.db.load_automessages({}, ['_id', 'automessage_id'])
        automessage_data = [data for data in automessages_data if data['automessage_id'] == automessage_id]
        if not automessage_data:
            raise exceptions.UnknownAutomessage(automessage_id)

        document_id = automessage_data[0]['_id']  # Backup before overwrite
        automessages_update_data = {}
        for automessage_data in automessages_data:
            if automessage_data['automessage_id'] > automessage_id:
                automessages_update_data[automessage_data['_id']] = {
                    'automessage_id': automessage_data['automessage_id'] - 1
                }
        zbot.db.update_automessages(automessages_update_data)
        zbot.db.delete_automessage(document_id)
        await context.send(f"Message automatique d'identifiant `{automessage_id}` supprimé.")