Skip to main content

Slack RTM Client

Project description

bigslacker - Slack big while having a bot
==========================================

I would like to *thank* the [University of Tartu](http://www.ut.ee/et) and the [BIIT Research Group](http://biit.cs.ut.ee/) for allowing me to publish this as an open-source library.

Overview
---------

bigslacker tries to be faithful to its name. It is a Bot for Slack that allows you to plug plugins (!) the easiest possible way. All you have to do is define a class that inherits from BasePlugin and define methods for the events.

Supports Python 2 and 3.

Installation
---------------

#### Via PIP

pip install bigslacker

#### Manual

git clone https://github.com/nicholasamorim/bigslacker.git
python setup.py install

So far it has only one dependency, which is the official [slackclient](https://github.com/slackhq/python-slackclient).

Example
---------

##### Creating a Bot with a plugin to listen on channel_created only

```python
from bigslacker import BigSlacker, BasePlugin

class ChannelAnnouncer(BasePlugin):
def channel_created(self, data):
print('I see a channel is created, gonna do something')

token = '1239182918sxxusus'
bs = BigSlacker(token)
bs.slack()
```

You don't have to do anything to register a plugin but inherit it from BasePlugin.


##### Sending a message back

We analyze every returned data from any Plugin we call. If you return None we do nothing.
However, if you reply with [(channel, message)], we will automatically send that message
to the specified channel.

```python
from bigslacker import BigSlacker, BasePlugin

class ChannelAnnouncer(BasePlugin):
def channel_created(self, data):
print('I see a channel is created, gonna reply')
return [('C1K4BBY8L', 'Hey guys, a channel has been created...')]

token = '1239182918sxxusus'
bs = BigSlacker(token)
bs.slack()
```

Of course, if you add more elements to the list, we will also send those messages.


##### I want every event in a single function

Sure. Just define a `catch_all` method.

```python
from bigslacker import BigSlacker, BasePlugin

class ChannelAnnouncer(BasePlugin):
def catch_all(self, data):
print('gonna inspect that data...')

token = '1239182918sxxusus'
bs = BigSlacker(token)
bs.slack()
```


##### Can I use GEvent ?

Yes, all you have to do is monkey-patch it before on your application. Nothing else changes.


```python
from gevent import monkey
monkey.patch_all()
```

##### Can I call the Slack API from it?

Yes, we expose the interface. So just call api_call on it as usual.

```python
from bigslacker import BigSlacker

token = '1239182918sxxusus'
bs = BigSlacker(token)
bs.api_call("api.test")
bs.slack()
```

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bigslacker-0.1.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

bigslacker-0.1.1-py2.py3-none-any.whl (4.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file bigslacker-0.1.1.tar.gz.

File metadata

  • Download URL: bigslacker-0.1.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for bigslacker-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0d308b3d35d2b1aee7ed34c4012d110eeb20f020f55bd0d2d74c67ad8eab74b3
MD5 b9461b62f375a6361beb54afda9dcc8b
BLAKE2b-256 2a0bcd6ae65674e44d3ac9d5a895b6b2fed773e7debec9633ae8d6eadd52ab82

See more details on using hashes here.

File details

Details for the file bigslacker-0.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for bigslacker-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1b6d825366b9bc43965b8fb328e982614a1a353fb013c2ed2ddfed1332898a3f
MD5 d1d7152479c052ba8ecc9a0fef4bc931
BLAKE2b-256 107bc104b6405835a645534eb31da0ebf6f8afc736fe078633c652d930982945

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page