Go to file
2018-05-13 15:51:39 +01:00
api Support tab-complete workspace-specific custom slack emoji (fix #3) 2018-05-13 15:31:23 +01:00
debian Implement Standard Slack Emoji completion using /input command_* hooks 2018-05-13 04:54:20 +01:00
json-c@c75ebe8973 Registration 2018-04-29 22:32:21 +01:00
libwebsockets@f1c56bc233 Server buffer creation 2018-05-01 11:23:37 +01:00
request Support tab-complete workspace-specific custom slack emoji (fix #3) 2018-05-13 15:31:23 +01:00
.dir-locals.el CTags 2018-05-09 01:57:17 +01:00
.gitattributes Implement emoji exact search functions 2018-05-11 22:41:15 +01:00
.gitignore Packaging 2018-05-11 02:05:08 +01:00
.gitmodules Registration 2018-04-29 22:32:21 +01:00
.travis.yml Clang doesn't like our gnu extensions despite -std=gnu99 2018-05-12 18:32:35 +01:00
LICENSE Initial commit 2018-04-29 11:40:16 +01:00
Makefile Support tab-complete workspace-specific custom slack emoji (fix #3) 2018-05-13 15:31:23 +01:00
README.org Add slack_workspace completion for /slack commands 2018-05-13 15:51:39 +01:00
slack-api.c License headers 2018-05-09 05:39:16 +01:00
slack-api.h License headers 2018-05-09 05:39:16 +01:00
slack-buffer.c License headers 2018-05-09 05:39:16 +01:00
slack-buffer.h License headers 2018-05-09 05:39:16 +01:00
slack-channel.c License headers 2018-05-09 05:39:16 +01:00
slack-channel.h License headers 2018-05-09 05:39:16 +01:00
slack-command.c Implement chat.meMessage for /me (closes #5) 2018-05-09 22:03:35 +01:00
slack-command.h License headers 2018-05-09 05:39:16 +01:00
slack-completion.c Add slack_workspace completion for /slack commands 2018-05-13 15:51:39 +01:00
slack-completion.h Add Completion module and emoji completion hook 2018-05-12 18:22:18 +01:00
slack-config.c License headers 2018-05-09 05:39:16 +01:00
slack-config.h License headers 2018-05-09 05:39:16 +01:00
slack-emoji.c Support tab-complete workspace-specific custom slack emoji (fix #3) 2018-05-13 15:31:23 +01:00
slack-emoji.h Implement Standard Slack Emoji completion using /input command_* hooks 2018-05-13 04:54:20 +01:00
slack-emoji.inc Add Completion module and emoji completion hook 2018-05-12 18:22:18 +01:00
slack-emoji.pl Add Completion module and emoji completion hook 2018-05-12 18:22:18 +01:00
slack-emoji.py Add Completion module and emoji completion hook 2018-05-12 18:22:18 +01:00
slack-input.c License headers 2018-05-09 05:39:16 +01:00
slack-input.h License headers 2018-05-09 05:39:16 +01:00
slack-message.c License headers 2018-05-09 05:39:16 +01:00
slack-message.h License headers 2018-05-09 05:39:16 +01:00
slack-oauth.c License headers 2018-05-09 05:39:16 +01:00
slack-oauth.h License headers 2018-05-09 05:39:16 +01:00
slack-request.c License headers 2018-05-09 05:39:16 +01:00
slack-request.h License headers 2018-05-09 05:39:16 +01:00
slack-teaminfo.c License headers 2018-05-09 05:39:16 +01:00
slack-teaminfo.h License headers 2018-05-09 05:39:16 +01:00
slack-user.c Nicklist colours 2018-05-11 11:38:01 +01:00
slack-user.h Handle message.me_message (ref #5) 2018-05-09 17:35:55 +01:00
slack-workspace.c Support tab-complete workspace-specific custom slack emoji (fix #3) 2018-05-13 15:31:23 +01:00
slack-workspace.h Support tab-complete workspace-specific custom slack emoji (fix #3) 2018-05-13 15:31:23 +01:00
slack.c Add Completion module and emoji completion hook 2018-05-12 18:22:18 +01:00
slack.h License headers 2018-05-09 05:39:16 +01:00
weechat-plugin.h Handle message.me_message (ref #5) 2018-05-09 17:35:55 +01:00

weechat-slack

file:https://api.travis-ci.org/bqv/weechat-slack.svg?branch=master file:https://coveralls.io/repos/github/bqv/weechat-slack/badge.svg?branch=master https://img.shields.io/github/issues/bqv/weechat-slack.svg https://img.shields.io/github/issues-closed/bqv/weechat-slack.svg https://img.shields.io/github/license/bqv/weechat-slack.svg https://img.shields.io/badge/weechat--extras-slack-yellow.svg

Status: Under Development
Location: http://github.com/bqv/weechat-slack
Version: 0.1.0
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.

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 message message.me_message (see #5)
  • Implement sending request chat.meMessage (see #5)
  • Implement handling api message message.thread_broadcast
  • 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 sending websocket typing message

TODO [B] Implement completion engine (milestone v0.3)

  • Tab completion for slack emoji (see #3)

    • Support Slack Emoji
    • Support Custom Emoji
  • Tab completion for display/user names (see #1)
  • Sort nick-completion by recent speakers (see #4)

TODO [B] Implement websocket ping and pong (milestone v0.4)

  • Add ping timer and pong handler (see #9)

TODO [C] Implement remaining api endpoints and events (milestone v0.5)

  • Support all channel types

    • Channels
    • Groups
    • MPIMs
    • IMs
  • Complete api endpoint set
  • Complete api event set

TODO [C] Implement full weechat functionality (milestone v0.6)

  • 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.