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))
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))
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))
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