from discord.ext.commands import Bot import time, asyncio import markovify import re import sys TOKEN = sys.argv[1] client = Bot(command_prefix="$") client.HISTORY_LIMIT = 20000 client.RE_STRING = '^[a-zA-Z0-9\s\.,“”!\?/\(\)]+$' client.WORKING_HISTORIES = {} client.TEXT_MODELS = {} @client.event async def on_message(message): if message.author == client.user: return ## await message.channel.send("I heard you! {0.name}".format(message.channel)) if message.content == '$gather': client.WORKING_HISTORIES[message.guild] = await message.channel.history(limit=client.HISTORY_LIMIT).flatten() ## await message.channel.send("Messages gathered successfully!") fulltext = '' for m in client.WORKING_HISTORIES[message.guild]: if re.match(client.RE_STRING, m.content) and not m.author == client.user: fulltext += m.content + '\n' client.TEXT_MODELS[message.guild] = markovify.NewlineText(fulltext, state_size=2) print("Done!") ## await message.channel.send("Markov model generated!") if re.match('^\$gather user=.+#[1-9]{4}$', message.content): target_username = re.match('^\$gather user=(.+)#[1-9]{4}$', message.content)[1]