TwitchMarkovChain
TwitchMarkovChain copied to clipboard
how to make bot only learn messages from a specific person
i was thinking of using self.check_if_permissions(m)
to accomplish this but i couldnt get it to work, any help on this?
Hello!
I don't maintain this work much anymore, so I'm not sure it even still works well. That said, this else
branch is responsible for learning:
https://github.com/tomaarsen/TwitchMarkovChain/blob/f994465f0f5c9304ebb9830926f3df130cf9643a/MarkovChainBot.py#L195
What you could do is e.g.
...
# Ignore the message if any word in the sentence is on the ban filter
if self.check_filter(m.message):
logger.warning(f"Sentence contained blacklisted word or phrase:\"{m.message}\"")
return
+ elif m.user == "multiplegamer9":
# Try to split up sentences. Requires nltk's 'punkt' resource
try:
sentences = sent_tokenize(m.message.strip())
# If 'punkt' is not downloaded, then download it, and retry
except LookupError:
...
Then it should only trigger the learning for the user that's called "multiplegamer9"
.
A personal recommendation is then to also update this: https://github.com/tomaarsen/TwitchMarkovChain/blob/f994465f0f5c9304ebb9830926f3df130cf9643a/Database.py#L485-L487
From 25 to e.g. 5. You tend to get a little less than 1 query per word that is written in chat. Normally these are batched to only "learn" in bulk once every 25 queries, but if you only have one user, then it might take a while. So, I'd recommend lowering it a bit.
Hope this helps :)
- Tom Aarsen
thank you very much for the help and quick response! it does still work very well, only thing thats broken is the /mods command due to IRC command deprecation.
Oh, I'm glad that it's not too beat up! I read about the IRC deprecation. I think whispering cooldowns might also be broken because of it? I'm not too bothered as long as the rest works.