Ejemplo n.º 1
0
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]