Status: | Aaaaaaaaaaaaaaaaa |
Location: | http://github.com/bqv/weechat-slack |
Version: | 0.1.5 |
Disclaimer: | Slack’s API is a thing of horror |
A weechat plugin in C to extend the chat client to support Slack workspaces via the RTM and Web APIs.
- 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
See http://github.com/bqv/weechat-extras for the suite this is part of and a repository/package for your distribution.
- libwebsockets (static, submodule)
- json-c (static, submodule)
- weechat (>= v1.7)
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
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!
- [X]
Implement handling api message =message.me_message= (see #5) - [X]
Implement sending request =chat.meMessage= (see #5) - [X]
Implement handling api message =message.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
- [X]
Tab completion for slack emoji (see #3)- [X]
Support Slack Emoji - [X]
Support Custom Emoji
- [X]
- [ ] Tab completion for display/user names (see #1)
- [ ] Sort nick-completion by recent speakers (see #4)
- [ ] Add ping timer and pong handler (see #9)
- [ ] Implement handling api message
message.thread_broadcast
- [ ] Support all channel types
- [X]
Channels - [ ] Groups
- [ ] MPIMs
- [ ] IMs
- [X]
- [ ] Complete api endpoint set
- [ ] Complete api event set
- [ ] Hook buffer closes
- [ ] Relay compatibility
- [ ] Config Options
- [ ] Emoji translation options (see #11)
Your contributions are always welcome! Please submit a pull request or create an issue to add a new or missing feature.
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.
weechat-slack is licensed under the Mozilla Public License Version 2.0 available here and in LICENSE.