TwitchMarkovChain icon indicating copy to clipboard operation
TwitchMarkovChain copied to clipboard

how to make bot only learn messages from a specific person

Open multiplegamer9 opened this issue 1 year ago • 3 comments

i was thinking of using self.check_if_permissions(m) to accomplish this but i couldnt get it to work, any help on this?

multiplegamer9 avatar Apr 14 '23 06:04 multiplegamer9

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

tomaarsen avatar Apr 14 '23 07:04 tomaarsen

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.

multiplegamer9 avatar Apr 14 '23 07:04 multiplegamer9

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.

tomaarsen avatar Apr 14 '23 07:04 tomaarsen