MT is a Discord bot that generates random text based on your messages,
using Markov chains. This mainly leads to nonsensical things coming out,
however sometimes something good comes out.
Use mt help to get started
Currently in 327 servers, with 1545792 words in the chain!

Here is some text that was generated out of the global chain:

[Logout] [opt in] [Generate as user]
[Download user chain] [Delete chain]
Chain for Nobody#0000
with 0 words


Delete your user chain
enter the code none into the box

[OK] [Back]
instead of boring you with a bunch of legalese, here is a simple explanation:

  - we don't collect any messages without prior consent (opt in)
  - messages are stored in chain format, for more info see [here]
  - channels can be blacklisted, both server wide and user wide
  - you can delete your data at any time [here]
  - HOWEVER, global data is anonymized and cannot be deleted! You may opt out from the global chain using mt globaloptout
  - Download your data by clicking [this button]
  - we also store things such as server prefixes and channel blacklists, that's self explanatory
  - for special requests please contact ziad87#3990 or [email protected]

thanks for understanding

Command List
MT is a simple bot, with only a few commands for its purpose.

  - mt help This screen, but on Discord
  - mt optin Opt in to message collection
  - mt privacy Privacy information
  - mt udata Sends your chain to your DMs
  - mt how How markov works
  - mt gen Generate out of the global chain
  - mt genuser [user*] Generate out of a user chain, or yourself
  - mt optout Opt out
  - mt globaloptout Opts you out from the global chain
  - mt globaloptin Opts you in to the global chain
  - mt delchain Delete your chain. (global items cannot be removed however!)
  - mt chbl [s/u] Blacklist a channel (s, for the server, u, for user)
  - mt invite Invite URL
  - mt ping Pong!
  - mt prefix [prefix] Set a prefix. Requires Manage Server permission.
  - mt stats Statistics of the bot
  - mt setn Set the nickname of the bot to something generated
  - mt connect connect to a voice channel
  - mt saygen say something generated using TTS
  - mt saygenuser [user*] say something generated as a user using TTS
  - mt disconnect disconnect from a voice channel

[argument*] is optional

how markov works

It's quite simple really. It basically records the pattern of your text. Here's how it works.
Let's say these are some messages you said:

hello, how is it going?
what is this?
how does this work?

We can create a chain of each word, simply by looking at the word before it and after it. When words match, different sentences can be created.
Most of the time, however, nonsensical responses will be made. But sometimes something correct comes out.
Now, using those words, we can create a markov chain. Here's what it looks like and how it's stored on the system. ([END] of the sentence, [START] of the sentence)
Note that punctuation is kept too, and while not shown in this example, capitalization too.

[START] > hello,; what; how
hello, > how
how > does; is
is > it; this?
it > going?
going? > [END]
what > is
this? > [END]
does > this
this > work?
work? > [END]

Now we can go through it and randomly select from is and how. (and [START] of course) These might be the outputs:

what is it going?
how is this?
hello, how does this work?

yes I know I'm horrible at explaining things 
 [support] [commands] [privacy] [how] [login] [invite]