Skip to content

Latest commit

 

History

History
85 lines (53 loc) · 1.9 KB

README.md

File metadata and controls

85 lines (53 loc) · 1.9 KB

Build Status

Hongmoa

A Slack(slack.com) for Pythonistas

Dependencies

Hongmoa requires gevent, redis, slackclient.

Configuration

Like Django, you can config your bot by editing settings.py

Installation

set your SLACK_TOKEN and REDIS_URL in settings.py. if REDIS_URL does not set, all REDIS relevant features will be ignored.

$pip install -r requirements.txt

$python robot.py

Apps

Examples are included in the apps directory.

Command

Hongmoa supports multiple commands for a function

@on_command(['하이', 'hi', 'hello'])
def hello_world(robot, channel, tokens):
    return 'Hello world!!'

then type your command with prefix ! in the channel that including bot like !hi or !hello or !하이

Tokenizer

Hongmoa automatically split your message into tokens by whitespaces

Let's assume that you typed !memo recall this in your channel

@on_command(['memo'])
def recall(robot, channel, tokens):
    assert 2 == len(tokens)
    assert 'recall' == tokens[0]
    assert 'this' == tokens[1]

Sometimes you want tokens containing whitespaces, in that case, wrap your token with double quote(") like

!memo kill "kill -9 $(ps aux | grep gunicorn | grep -v 'grep' | awk '{print $2 }')"

Redis Brain

Hongmoa supports semi-permanent storage using redis as well as Hubot.

Let's assume that you typed !memo recall this in your channel

@on_command(['ㄱㅇ', '기억', 'memo'])
def redis_brain(robot, channel, tokens):
    assert 2 == len(tokens)
    key = tokens[0]
    value = tokens[1]
    robot.brain.set(key, value)

    return robot.brain.get(key)

then, Hongmoa would say this to the channel