Beispiel #1
0
    async def bottomify(self, ctx: LightningContext, *, flags):
        """Turns a message into bottom"""
        if flags.random is True and flags.lastmessage is True:
            raise commands.BadArgument(
                "--lastmessage and --random cannot be mixed together.")

        if flags.random is True:
            message = await self.get_previous_messages(ctx, ctx.channel, 35)
            if message.content:
                text = message.content
            else:
                raise LightningError('Failed to find any message content.')
        elif flags.lastmessage is True:
            messages = await self.get_previous_messages(
                ctx, ctx.channel, 1, False)
            message = messages[0]
            if message.content:
                text = message.content
            else:
                raise LightningError(
                    'Failed to find message content in the previous message.')
        else:
            text = flags.rest

        if not text:
            raise commands.BadArgument("Missing text to translate into bottom")

        if flags.regress:
            try:
                await ctx.send(bottom.decode(text))
            except ValueError:
                await ctx.send("Failed to decode message.")
        else:
            await ctx.send(bottom.encode(text))
Beispiel #2
0
    async def bottom_encode(self, ctx: NewCtx, *, message: Union[discord.Message, str] = None):
        """Encodes a messsage."""
        ref = ctx.message.reference
        if message is None:
            if isinstance(getattr(ref, 'resolved', None), discord.Message):
                message = ref.resolved.content
            else:
                return await ctx.send('No message to encode.')

        if isinstance(message, discord.Message):
            message = message.content

        await ctx.send(bottom.encode(message))
Beispiel #3
0
    async def bottom_bottomify(self,
                               ctx: Context,
                               *,
                               message: Union[discord.Message, str] = None):
        """Encodes a messsage."""
        ref = ctx.message.reference
        if message is None:
            if isinstance(getattr(ref, "resolved", None), discord.Message):
                message = ref.resolved.content
            else:
                message = None

        if isinstance(message, discord.Message):
            message = message.content

        if message is None:
            await ctx.send("No message to encode.")

        await ctx.send(bottom.encode(message))
Beispiel #4
0
import argparse
import os

from bottom import encode, decode

parser = argparse.ArgumentParser(
    description='Tool for translating between bottom and human readable text')
parser.add_argument('--regress',
                    default=False,
                    const=True,
                    action='store_const')
if os.isatty(0):
    parser.add_argument('text')

args = parser.parse_args()

while True:
    try:
        text = args.text or input()

        if args.regress:
            print(decode(text))
        else:
            print(encode(text))

        if os.isatty(0):
            break
    except EOFError:
        break