<commit_before>Markov-bot
=
Read more in the [Rundown](#rundown) section.

Markov chains are written in Java.

Written in Kotlin. Just run `mvn package` to get it to compile. Use `java -classpath target/markov-bot-1.0-SNAPSHOT.jar edu.appstate.cs.MarkovBot` to run it. Getting executable jars is on the TODO list.

A few TODOs:
* [x] Multiple server support
* [ ] Multithreaded markov chain saving
* [x] Add main class to the compiled jar so we can just use `java -jar target/markov-bot-1.0-SNAPSHOT.jar`

Rundown
=
This bot records everything everyone says in an IRC channel. Each message sent has a 1/100 random chance to make the IRC bot reply with a markov chain. Actual order of words/messages is not recorded, just the frequency of each word. Channel users may use the following commands to control how the bot interacts with them:

* `!markov-force` forces the bot to create a markov chain customized for you. If a user's markov chain is not very fleshed out, this may not work; some IRC networks don't like the same message being sent more than once in a row.
* `!markov-ignore` tells the bot to ignore everything you say. This is in case a user doesn't want the bot to record any hint of what the user says.
* `!markov-listen` undoes the markov-ignore command above. The markov bot will start listening and recording frequency of words.

License
=
BSD Simplified License<commit_msg>Update README to reflect recent commits, and a couple more TODOs that I want TODONE<commit_after>Markov-bot
=
Read more in the [Rundown](#rundown) section.

Markov chains are written in Java.

Written in Kotlin. Just run `mvn package` to get it to compile. Use `java -classpath target/markov-bot-1.0-SNAPSHOT.jar edu.appstate.cs.MarkovBot` to run it. Getting executable jars is on the TODO list.

A few TODOs:
* [x] Multiple server support
* [x] Multithreaded markov chain saving
* [x] Add main class to the compiled jar so we can just use `java -jar target/markov-bot-1.0-SNAPSHOT.jar`
* [ ] SSL support
* [ ] `!markov-all` command that forces a message generated from all messages recorded on this channel

Rundown
=
This bot records everything everyone says in an IRC channel. Each message sent has a 1/100 random chance to make the IRC bot reply with a markov chain. Actual order of words/messages is not recorded, just the frequency of each word. Channel users may use the following commands to control how the bot interacts with them:

* `!markov-force` forces the bot to create a markov chain customized for you. If a user's markov chain is not very fleshed out, this may not work; some IRC networks don't like the same message being sent more than once in a row.
* `!markov-ignore` tells the bot to ignore everything you say. This is in case a user doesn't want the bot to record any hint of what the user says.
* `!markov-listen` undoes the markov-ignore command above. The markov bot will start listening and recording frequency of words.

License
=
BSD Simplified License
{'fraction_non_alphanumeric': 0.06088126471577531, 'fraction_numerical': 0.0053817692566431215, 'mean_word_length': 4.136442141623489, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '545925', 'n_tokens_mistral': 868, 'n_tokens_neox': 837, 'n_words': 462}