Tony Olagbaiye 9c5c7407b4 | 3 years ago | |
---|---|---|
api | 7 years ago | |
json-c@75bf657cc2 | 3 years ago | |
libstrophe@2d5424bcff | 3 years ago | |
request | 7 years ago | |
.dir-locals.el | 7 years ago | |
.envrc | 3 years ago | |
.gitattributes | 7 years ago | |
.gitignore | 3 years ago | |
.gitmodules | 3 years ago | |
.travis.yml | 7 years ago | |
LICENSE | 7 years ago | |
Makefile | 3 years ago | |
README.org | 7 years ago | |
slack-api.c | 7 years ago | |
slack-api.h | 7 years ago | |
slack-buffer.c | 7 years ago | |
slack-buffer.h | 7 years ago | |
slack-channel.c | 7 years ago | |
slack-channel.h | 7 years ago | |
slack-command.c | 7 years ago | |
slack-command.h | 7 years ago | |
slack-completion.c | 7 years ago | |
slack-completion.h | 7 years ago | |
slack-config.c | 7 years ago | |
slack-config.h | 7 years ago | |
slack-emoji.c | 7 years ago | |
slack-emoji.h | 7 years ago | |
slack-emoji.inc | 7 years ago | |
slack-input.c | 7 years ago | |
slack-input.h | 7 years ago | |
slack-message.c | 7 years ago | |
slack-message.h | 7 years ago | |
slack-oauth.c | 7 years ago | |
slack-oauth.h | 7 years ago | |
slack-request.c | 7 years ago | |
slack-request.h | 7 years ago | |
slack-teaminfo.c | 7 years ago | |
slack-teaminfo.h | 7 years ago | |
slack-user.c | 7 years ago | |
slack-user.h | 7 years ago | |
slack-workspace.c | 7 years ago | |
slack-workspace.h | 7 years ago | |
slack.c | 7 years ago | |
slack.h | 7 years ago | |
weechat-plugin.h | 7 years ago | |
xmpp.c | 3 years ago | |
xmpp.h | 3 years ago |
README.org
weechat-slack
https://api.travis-ci.org/bqv/weechat-slack.svg?branch=master">file:https://api.travis-ci.org/bqv/weechat-slack.svg?branch=master https://coveralls.io/repos/github/bqv/weechat-slack/badge.svg?branch=master">file:https://coveralls.io/repos/github/bqv/weechat-slack/badge.svg?branch=master " title="file:" /> " title="file:" /> " title="file:" /> " title="file:" />
Status: | Aaaaaaaaaaaaaaaaa |
Location: | http://github.com/bqv/weechat-slack |
Version: | 0.1.5 |
Disclaimer: | Slack's API is a thing of horror |
Description
A weechat plugin in C to extend the chat client to support Slack workspaces via the RTM and Web APIs.
Usage
- Start with
/slack register
for instructions on how to obtain a token, or if you already have a token, use/slack register <token>
. - Use
/slack connect <workspace-name>
with the name returned by register
Installing
See http://github.com/bqv/weechat-extras for the suite this is part of and a repository/package for your distribution.
Dependencies
- libwebsockets (static, submodule)
- json-c (static, submodule)
- weechat (>= v1.7)
Building
git clone git://github.com/bqv/weechat-slack.git
cd weechat-slack
make
make install
Do NOT run make install as root, it installs the plugin to your local weechat plugins directory
Development
I use emacs for development of this, although I am also a fan of vim.
My debug build process involves static analysis with clang and cppcheck,
and dynamic analysis with address-sanitizer and leak-sanitizer.
My debug evaluation process involves gdb/mi run with the arguments
-ex "handle SIGPIPE nostop noprint pass" --args weechat -a 2>asan.log
since part of weechat and it's default plugins use SIGPIPE as control.
I have no real requests for style of pull requests besides a wish that you keep vaguely to the style I have adopted for this project.
Happy coding!
Tasks
DONE [A] Implement basic functionality (milestone v0.1)
TODO [A] Implement essential api endpoints and events (milestone v0.2)
Implement handling api messagemessage.me_message
(see #5)Implement sending requestchat.meMessage
(see #5)Implement handling api messagemessage.bot_message
(see #2)- Implement handling api message
message.message_changed
- Implement handling api message
message.message_deleted
- Implement handling api message
message.message_replied
- Implement handling api message
message.file_share
- Implement sending websocket
typing
message
TODO [B] Implement completion engine (milestone v0.3)
TODO [B] Implement websocket ping and pong (milestone v0.4)
- Add ping timer and pong handler (see #9)
TODO [B] Implement thread handling (milestone v0.5)
- Implement handling api message
message.thread_broadcast
TODO [C] Implement remaining api endpoints and events (milestone v0.6)
-
Support all channel types
Channels- Groups
- MPIMs
- IMs
- Complete api endpoint set
- Complete api event set
TODO [C] Implement full weechat functionality (milestone v0.7)
- Hook buffer closes
- Relay compatibility
-
Config Options
- Emoji translation options (see #11)
TODO [#D] Close all issues (milestone v1.0)
Contributing
Your contributions are always welcome! Please submit a pull request or create an issue to add a new or missing feature.
Appropriating
As there is no C library for Slack at the time of writing, this project implements the APIs from scratch, and as such one could butcher this repository to create a minimal Slack C library. Up to you.
License
weechat-slack is licensed under the Mozilla Public License Version 2.0 available here and in LICENSE.