mirror of
https://github.com/brandons209/Red-bot-Cogs.git
synced 2024-05-20 20:32:53 +12:00
Merge pull request #14 from brandons209/frenchify
Added frenchify, copied nearly exactly from the php frenchify
This commit is contained in:
commit
4bf7659beb
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"author": [
|
||||
"TheScriptPony"
|
||||
"TheScriptPony",
|
||||
"SPPayne"
|
||||
],
|
||||
"description": "Meakes things memey.",
|
||||
"install_msg": "( ͡° ͜ʖ ͡°)",
|
||||
|
|
|
@ -1,19 +1,24 @@
|
|||
from redbot.core import Config, commands
|
||||
import re
|
||||
import random
|
||||
import string
|
||||
|
||||
mention = re.compile("^@|^#|^&")
|
||||
custom_emoji = re.compile("<:[^:]+:\d{18}>")
|
||||
vowel = re.compile("^[aeiouAEIOU]")
|
||||
|
||||
|
||||
class Memeify(commands.Cog):
|
||||
"""Makes things memey."""
|
||||
|
||||
# ------------ common ------------
|
||||
def __init__(self, bot):
|
||||
super().__init__()
|
||||
|
||||
self.config = Config.get_conf(self, identifier=2934875294, force_registration=True)
|
||||
self.bot = bot
|
||||
|
||||
@commands.command()
|
||||
async def bify(self, ctx, *, content: str = None):
|
||||
"""Replaces all B's with :b:'s"""
|
||||
async def __get_content(self, ctx, content):
|
||||
if not content:
|
||||
msg_c = ""
|
||||
# gets previous messages
|
||||
|
@ -23,19 +28,27 @@ class Memeify(commands.Cog):
|
|||
msg_c = i.clean_content
|
||||
break
|
||||
if msg_c:
|
||||
await ctx.send(self.__bify(msg_c, False))
|
||||
return msg_c, False
|
||||
else:
|
||||
await ctx.send("Where's the 🅱️essage?")
|
||||
return
|
||||
else:
|
||||
await ctx.send(self.__bify(ctx.message.clean_content, True))
|
||||
return ctx.message.clean_content, True
|
||||
|
||||
# ------------ bify ------------
|
||||
@commands.command()
|
||||
async def bify(self, ctx, *, content: str = None):
|
||||
"""Replaces all B's with :b:'s"""
|
||||
msg_c = await self.__get_content(ctx, content)
|
||||
if len(msg_c) != 2:
|
||||
await ctx.send("Where's the 🅱️essage?")
|
||||
else:
|
||||
await ctx.send(self.__bify(*msg_c))
|
||||
|
||||
# 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("^@|^#|^&")
|
||||
custom_emoji = re.compile("<:[^:]+:\d{18}>")
|
||||
bify = bify_str.split(" ")
|
||||
# remove first letter if it bifys the command message itself
|
||||
if cmd:
|
||||
|
@ -56,7 +69,6 @@ class Memeify(commands.Cog):
|
|||
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
|
||||
|
@ -64,3 +76,215 @@ class Memeify(commands.Cog):
|
|||
# replaces first letter with b
|
||||
bif = "b" + bif[1:]
|
||||
return bif.replace("b", "🅱️")
|
||||
|
||||
# ------------ frenchify ------------
|
||||
# Based heavily on SSPayne's fake french accent translator
|
||||
@commands.command()
|
||||
async def frenchify(self, ctx, *, content: str = None):
|
||||
"""Writes a message with a french accent"""
|
||||
msg_c = await self.__get_content(ctx, content)
|
||||
if len(msg_c) != 2:
|
||||
await ctx.send("No message")
|
||||
else:
|
||||
await ctx.send(self.__french_pre_f(*msg_c))
|
||||
|
||||
def __french_pre_f(self, french, cmd):
|
||||
emoji_list = []
|
||||
if cmd:
|
||||
french_cmd_fix = french.split(" ")
|
||||
french_str = " ".join(french_cmd_fix[1:])
|
||||
else:
|
||||
french_str = french
|
||||
|
||||
emoji_match = re.finditer(custom_emoji, french_str)
|
||||
for i in emoji_match:
|
||||
emoji_list.append(i.group(0))
|
||||
french_list = re.split(custom_emoji, french_str)
|
||||
|
||||
final = []
|
||||
for i in french_list:
|
||||
final.append(self.__french(i))
|
||||
if emoji_list:
|
||||
final.append(emoji_list.pop(0))
|
||||
|
||||
return "".join(final)
|
||||
|
||||
# translated from SPPayne's fake french accent translator,
|
||||
# as well as __compare_format() and __make_funny_es()
|
||||
# https://github.com/SPPayne/fake_french_accent_translator
|
||||
def __french(self, text):
|
||||
text = text.replace("age", "aje")
|
||||
text = text.replace("ale", "aile")
|
||||
text = text.replace("ant", "ent")
|
||||
text = text.replace("ared", "aired")
|
||||
text = text.replace("ay", "ai")
|
||||
text = text.replace("blem", "blaim")
|
||||
text = text.replace("ble", "buhl")
|
||||
text = text.replace("bout", "but")
|
||||
text = text.replace("ck", "k")
|
||||
text = text.replace("eal", "eahl")
|
||||
text = text.replace("ear", "air")
|
||||
text = text.replace("ess", "ez")
|
||||
text = text.replace("ew", "u")
|
||||
text = text.replace("gen", "jen")
|
||||
text = text.replace("gon", "jen")
|
||||
text = text.replace("ies", "ees")
|
||||
text = text.replace("ill", "eehl")
|
||||
text = text.replace("ing", "eng")
|
||||
text = text.replace("ired", "iaired")
|
||||
text = text.replace("ire", "iyaire")
|
||||
text = text.replace("ise", "ize")
|
||||
text = text.replace("ising", "izeeng")
|
||||
text = text.replace("ist", "eest")
|
||||
text = text.replace("ith", "iv")
|
||||
text = text.replace("it's", "eet eez")
|
||||
text = text.replace("i've", "I have")
|
||||
text = text.replace("lar", "lair")
|
||||
text = text.replace("logic", "lojic")
|
||||
text = text.replace("loth", "luth")
|
||||
text = text.replace("ment", "mont")
|
||||
text = text.replace("ol", "ul")
|
||||
text = text.replace("ool", "oo-el")
|
||||
text = text.replace("oom", "uhm")
|
||||
text = text.replace("orl", "hirl")
|
||||
text = text.replace("or", "air")
|
||||
text = text.replace("our", "ur")
|
||||
text = text.replace("oute", "oote")
|
||||
text = text.replace("out", "oot")
|
||||
text = text.replace("shion", "she-on")
|
||||
text = text.replace("sion", "she-on")
|
||||
text = text.replace("some", "zum")
|
||||
text = text.replace("stion", "stshe-on")
|
||||
text = text.replace("suit", "zoot")
|
||||
text = text.replace("them", "zem")
|
||||
text = text.replace("thing", "theeng")
|
||||
text = text.replace("tion", "she-on")
|
||||
text = text.replace("tle", "-tell")
|
||||
text = text.replace("ture", "tuair")
|
||||
text = text.replace("ty", "tay")
|
||||
text = text.replace("ver", "vair")
|
||||
text = text.replace("you've", "you have")
|
||||
|
||||
text_arr = text.split(" ")
|
||||
|
||||
for key, word in enumerate(text_arr):
|
||||
|
||||
if self.__compare_format(word) == "hello":
|
||||
text_arr[key] = "'allo 'allo"
|
||||
elif self.__compare_format(word) == "hi":
|
||||
text_arr[key] = "'allo"
|
||||
elif self.__compare_format(word) != "hello" and self.__compare_format(word) != "hi":
|
||||
if word != "the" and word[:1] == "h":
|
||||
text_arr[key] = "'" + word[1:]
|
||||
|
||||
if self.__compare_format(word) == "i":
|
||||
text_arr[key] = "ai"
|
||||
|
||||
if self.__compare_format(word) == "yes":
|
||||
text_arr[key] = "oui"
|
||||
if self.__compare_format(word) == "no":
|
||||
text_arr[key] = "non"
|
||||
|
||||
if self.__compare_format(word) == "mister" or self.__compare_format(word) == "sir":
|
||||
text_arr[key] = "Monsieur"
|
||||
if (
|
||||
self.__compare_format(word) == "miss"
|
||||
or self.__compare_format(word) == "missus"
|
||||
or self.__compare_format(word) == "madame"
|
||||
):
|
||||
text_arr[key] = "Madamoiselle"
|
||||
|
||||
if self.__compare_format(word) == "it":
|
||||
text_arr[key] = "eet"
|
||||
if self.__compare_format(word) == "is":
|
||||
text_arr[key] = "eez"
|
||||
if self.__compare_format(word) == "in":
|
||||
text_arr[key] = "een"
|
||||
if self.__compare_format(word) == "and":
|
||||
option = random.randrange(1, 5)
|
||||
if option == 1:
|
||||
text_arr[key] = "et"
|
||||
|
||||
if self.__compare_format(word) == "my":
|
||||
text_arr[key] = "mon"
|
||||
if self.__compare_format(word) == "one":
|
||||
text_arr[key] = "un"
|
||||
if self.__compare_format(word) == "two":
|
||||
text_arr[key] = "deux"
|
||||
|
||||
if self.__compare_format(word)[-2:] == "ly":
|
||||
text_arr[key] = word[:-2] + "-lee"
|
||||
if self.__compare_format(word)[-3:] == "tre":
|
||||
text_arr[key] = word[:-3] + "tair"
|
||||
if self.__compare_format(word)[-2:] == "ke":
|
||||
text_arr[key] = word[:-2] + "k"
|
||||
|
||||
if self.__compare_format(word) == "the":
|
||||
option = random.randrange(1, 4)
|
||||
if option == 1:
|
||||
text_arr[key] = "le"
|
||||
elif option == 2:
|
||||
text_arr[key] = "la"
|
||||
elif option == 3:
|
||||
text_arr[key] = "ze"
|
||||
|
||||
if self.__compare_format(word) == "that":
|
||||
text_arr[key] = "zat"
|
||||
if self.__compare_format(word) == "they":
|
||||
text_arr[key] = "zey"
|
||||
if self.__compare_format(word) == "this":
|
||||
text_arr[key] = "zis"
|
||||
if self.__compare_format(word) == "their":
|
||||
text_arr[key] = "zeir"
|
||||
if self.__compare_format(word) == "there":
|
||||
text_arr[key] = "zere"
|
||||
if "er" in self.__compare_format(word) and self.__compare_format(word) != "there":
|
||||
text_arr[key] = text_arr[key].replace("er", "air")
|
||||
if self.__compare_format(word) == "then":
|
||||
text_arr[key] = "zen"
|
||||
if self.__compare_format(word) == "these":
|
||||
text_arr[key] = "zese"
|
||||
if self.__compare_format(word) == "so":
|
||||
text_arr[key] = "zo"
|
||||
|
||||
if self.__compare_format(word) == "french":
|
||||
text_arr[key] = "francais"
|
||||
|
||||
if self.__compare_format(word) == "shit":
|
||||
text_arr[key] = "merde"
|
||||
if self.__compare_format(word) == "god":
|
||||
text_arr[key] = "Dieu"
|
||||
|
||||
text = " ".join(text_arr)
|
||||
text = text.replace("beee", "be-ee")
|
||||
text = self.__make_funny_es(text)
|
||||
" ".join(w.capitalize() for w in text.split())
|
||||
|
||||
return text
|
||||
|
||||
def __compare_format(self, word):
|
||||
word = word.translate(str.maketrans("", "", string.punctuation))
|
||||
word = word.lower()
|
||||
return word
|
||||
|
||||
def __make_funny_es(self, text):
|
||||
bits = text.split("e")
|
||||
text = ""
|
||||
|
||||
for bit in bits:
|
||||
option = random.randrange(1, 5)
|
||||
if option == 4:
|
||||
text += bit + "eacute"
|
||||
else:
|
||||
text += bit + "e"
|
||||
|
||||
text = text.replace("eeacute", "ee")
|
||||
text = text.replace("eacutee", "ee")
|
||||
text = text.replace("eacuteeacute", "ee")
|
||||
|
||||
if text.endswith("eacute"):
|
||||
text = text[:-6]
|
||||
elif text.endswith("e"):
|
||||
text = text[:-1]
|
||||
|
||||
return text
|
||||
|
|
Loading…
Reference in a new issue