<commit_before># slackey
Slackey is a library for using [Slack's Real Time Messaging API](https://api.slack.com/rtm).  Also included is an interface for the [Web API](https://api.slack.com/web), but it's mostly about making your own Slack lackey (read: bot).

A *reliable*, *fast*, *easy-to-use*, and *customizable* Slack bot.

Slackey is built using [Akka actors](http://doc.akka.io/docs/akka/snapshot/scala/actors.html), which is where the "reliable" and "fast" part come in.  Once you've customized your `Slackey` actor to your liking, you just plug it into your own Actor system where it runs independently.  Under the hood, it fetches state, connects via websockets, spawns a number of worker actors to react to incoming messages, and handles Slack state updates so you can, for example, broadcast a message to all channels your bot is in quickly and reliably.

### Setup

SBT:
```sbt
scalaVersion := "2.11.5"

libraryDependencies += "com.github.slackey" %% "slackey" % "0.1"
```

### Bot Examples

See [examples in the repo](https://github.com/slackey/slackey/tree/master/src/main/scala/com/github/slackey/examples).

### API Usage

```scala
/** Here's some REPL copypasta with comments **/

// You just need an API token to start playing with the Slack API.  However,
// you SlackApi is configurable with an AsyncHttpClientConfig so you can<commit_msg>tweak the readme<commit_after># slackey
Slackey is a library for using [Slack's Real Time Messaging API](https://api.slack.com/rtm).  Also included is an interface for the [Web API](https://api.slack.com/web), but it's mostly about making your own Slack lackey (read: bot).

Slackey is built using [Akka actors](http://doc.akka.io/docs/akka/snapshot/scala/actors.html).  Once you've customized your `Slackey` actor to your liking, you plug it into your own Actor system where it runs independently.  Behind the scenes, it fetches state, connects via websockets, spawns a number of worker actors to react to incoming messages, and handles Slack state updates so you can, for example, broadcast a message to *all* channels, including those created moments ago.

### Setup

SBT:
```sbt
scalaVersion := "2.11.5"

libraryDependencies += "com.github.slackey" %% "slackey" % "0.1"
```

### Bot Examples

See [examples in the repo](https://github.com/slackey/slackey/tree/master/src/main/scala/com/github/slackey/examples).

### API Usage

```scala
/** Here's some REPL copypasta with comments **/

// You just need an API token to start playing with the Slack API.  However,
// you SlackApi is configurable with an AsyncHttpClientConfig so you can
{'fraction_non_alphanumeric': 0.11004232397075799, 'fraction_numerical': 0.00461716044632551, 'mean_word_length': 4.416666666666667, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, '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': '435946', 'n_tokens_mistral': 827, 'n_tokens_neox': 777, 'n_words': 322}