<commit_before># papa-bot
Bot written in Go. Comprehensive in design, easily extensible.
Initially designed for IRC, now supports multiple transports.

[Full documentation](https://godoc.org/github.com/pawelszydlo/papa-bot) @ GoDoc.org

### How good is it?

Bot is actively developed and constantly used by me and my friends, so there's that.

### Features

* Multiple transports support.
* Easy to write extensions (just take a look [at the example](https://github.com/pawelszydlo/papa-bot/blob/master/example/example.go))
* Event based operation.
* Configuration through a TOML file and persistent run time variables.
* All text messages are in TOML files, for easy editing and l18n.
* Flood protection.
* Abuse protection.
* Ignore list.
* Stores all the links posted on the channel.
* Allows full text search through the links.
* Logs all channel activity.
* User accounts and permissions handling.

### Supported transports

* IRC (built using [github.com/sorcix/irc](http://github.com/sorcix/irc) library.)
* Mattermost
* that's about it for now...

### Bundled extensions

* Link title and description.
* Link duplicates announce.
* Check if link was posted on Reddit.
* GitHub repository information.
* BTC price command.
* Air quality data search.
* Movie information.
* Custom counters/countdowns.
* Wikipedia article lookup.
* Wolfram Alpha lookup.


##### TODO

* Figure out the bot-transports-events package entanglement so that transport can be passed in event.
* Unify extension panic and error handling.
* IRC split handling.
* Alt nicks handling
* Cross-transport people identification.
* Write some tests!<commit_msg>Update readme.<commit_after># papa-bot
Bot written in Go. Comprehensive in design, easily extensible.
Initially designed for IRC, now supports multiple transports.

[Full documentation](https://godoc.org/github.com/pawelszydlo/papa-bot) @ GoDoc.org

### How good is it?

Bot is actively developed and constantly used by me and my friends, so there's that.

### Features

* Multiple transports support.
* Easy to write extensions (just take a look [at the example](https://github.com/pawelszydlo/papa-bot/blob/master/example/example.go))
* Event based operation.
* Configuration through a TOML file and persistent run time variables.
* All text messages are in TOML files, for easy editing and l18n.
* Flood protection.
* Abuse protection.
* Ignore list.
* Stores all the links posted on the channel.
* Allows full text search through the links.
* Logs all channel activity.
* User accounts and permissions handling.

### Supported transports

* IRC (built using [github.com/sorcix/irc](http://github.com/sorcix/irc) library.)
* Mattermost
* that's about it for now...

### Bundled extensions

* Custom reminders.
* Link title and description.
* Link duplicates announce.
* Check if link was posted on Reddit.
* GitHub repository information.
* BTC price command.
* Air quality data search.
* Movie information.
* Custom counters/countdowns.
* Wikipedia article lookup.
* Wolfram Alpha lookup.


##### TODO

* Figure out the bot-transports-events package entanglement so that transport can be passed in event.
* Unify extension panic and error handling.
* IRC split handling.
* Alt nicks handling
* Cross-transport people identification.
* Write some tests!
{'fraction_non_alphanumeric': 0.08963840777879065, 'fraction_numerical': 0.001215436037678517, 'mean_word_length': 4.301127214170692, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, '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': '691525', 'n_tokens_mistral': 945, 'n_tokens_neox': 898, 'n_words': 388}