mirror of
https://github.com/brandons209/Red-bot-Cogs.git
synced 2024-05-18 19:32:29 +12:00
added bify
Co-authored-by: Sydney <github@sweetiebelle.org>
This commit is contained in:
parent
bb082f8d75
commit
32bf258895
5
memeify/__init__.py
Normal file
5
memeify/__init__.py
Normal file
|
@ -0,0 +1,5 @@
|
|||
from .memeify import Memeify
|
||||
|
||||
|
||||
def setup(bot):
|
||||
bot.add_cog(Memeify(bot))
|
9
memeify/info.json
Normal file
9
memeify/info.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"author": [
|
||||
"TheScriptPony"
|
||||
],
|
||||
"description": "Meakes things memey.",
|
||||
"install_msg": "( ͡° ͜ʖ ͡°)",
|
||||
"hidden": false,
|
||||
"end_user_data_statement": "This cog does not store user data."
|
||||
}
|
60
memeify/memeify.py
Normal file
60
memeify/memeify.py
Normal file
|
@ -0,0 +1,60 @@
|
|||
from redbot.core import Config, commands
|
||||
import re
|
||||
|
||||
|
||||
class Memeify(commands.Cog):
|
||||
"""Makes things memey."""
|
||||
|
||||
def __init__(self, bot):
|
||||
super().__init__()
|
||||
|
||||
self.config = Config.get_conf(self, identifier=2934875294)
|
||||
self.bot = bot
|
||||
|
||||
@commands.command()
|
||||
async def b(self, ctx, *, content: str = None):
|
||||
"""Replaces all B's with :b:'s"""
|
||||
if not content:
|
||||
# gets above message
|
||||
msg = (await ctx.channel.history(limit=2).flatten())[1].clean_content
|
||||
if msg:
|
||||
await ctx.send(self.__bify(msg, False))
|
||||
else:
|
||||
await ctx.send("Where's the :b:essage?")
|
||||
else:
|
||||
await ctx.send(self.__bify(ctx.message.clean_content, True))
|
||||
|
||||
# takes a clean discord message and replaces all B's and
|
||||
# first characters with :b:, unless the word is 1
|
||||
# character long, a custon emoji, or a ping. unicode
|
||||
# emojis are a bit fucked tho
|
||||
def __bify(self, bify_str, cmd) -> str:
|
||||
mention = re.compile("^@|^#|^&")
|
||||
bify = bify_str.split()
|
||||
# remove first letter if it bifys the command message itself
|
||||
if cmd:
|
||||
bify.pop(0)
|
||||
b = []
|
||||
for i in bify:
|
||||
# no code blocks >:(
|
||||
i = i.replace("`", "")
|
||||
# special cases for custom emojis and mentions
|
||||
if i[0] == ":" and i[-1] == ":":
|
||||
b.append(i + " ")
|
||||
continue
|
||||
elif mention.match(i):
|
||||
b.append(i[0] + self.__bify_f(i[1:]) + " ")
|
||||
continue
|
||||
# adds the result to the list
|
||||
b.append(self.__bify_f(i) + " ")
|
||||
return "".join(b)
|
||||
|
||||
def __bify_f(self, bif) -> str:
|
||||
vowel = re.compile("^[aeiouAEIOU]")
|
||||
if vowel.match(bif) and len(bif) > 1:
|
||||
# adds b in front of the word
|
||||
bif = "b" + bif
|
||||
elif len(bif) > 1:
|
||||
# replaces first letter with b
|
||||
bif = "b" + bif[1:]
|
||||
return bif.replace("b", ":b:")
|
Loading…
Reference in a new issue