import asyncio import discord import re import sys client = discord.Client() RUDE_WORDS_PREFIXONLY = [ 'ass', 'cum', 'hell', 'sex' ] RUDE_WORDS = [ 'bastard', 'bitch', 'boob', 'bukkake', 'cock', 'crap', 'cunt', 'damn', 'dick', 'dildo', 'fuck', 'jizz', 'lotion', 'lube', 'penis', 'piss', 'porn', 'scrotum', 'shit', 'slut', 'tiddy', 'tiddies', 'tits', 'titty', 'titties', 'vagina' ] REGEX_STR = '|'.join(['+'.join(list(w)) for w in RUDE_WORDS] + [r'\b' + '+'.join(list(w)) for w in RUDE_WORDS_PREFIXONLY]) RUDE_WORDS_REGEX = re.compile(REGEX_STR, re.IGNORECASE) @client.event async def on_ready(): print('logged in as {0.user}'.format(client), file=sys.stderr) @client.event async def on_message(message): if message.author == client.user: return if message.channel.is_nsfw(): return if RUDE_WORDS_REGEX.search(message.content): await message.channel.send('Your Club Penguin account has been deactivated for inappropriate language.') oldnick = message.author.nick try: await message.author.edit(nick="BANNED") await asyncio.sleep(300) await message.author.edit(nick=oldnick) except discord.Forbidden: print('Permissions error while trying to change nickname of {}'.format(message.author), file=sys.stderr) with open('token') as f: token = f.read().strip() client.run(token)