#+TITLE: weechat-xmpp #+AUTHOR: Tony Olagbaiye #+EMAIL: frony0@gmail.com #+DATE: 2018-05-09 #+DESCRIPTION: Weechat plugin for XMPP #+KEYWORDS: weechat xmpp c api #+LANGUAGE: en #+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:t tags:not-in-toc #+EXPORT_EXCLUDE_TAGS: exclude #+STARTUP: showall [[https://travis-ci.org/bqv/weechat-xmpp][file:https://api.travis-ci.org/bqv/weechat-xmpp.svg?branch=master]] [[https://coveralls.io/github/bqv/weechat-xmpp?branch=master][file:https://coveralls.io/repos/github/bqv/weechat-xmpp/badge.svg?branch=master]] [[https://github.com/bqv/weechat-xmpp/issues][file:https://img.shields.io/github/issues/bqv/weechat-xmpp.svg]] [[https://github.com/bqv/weechat-xmpp/issues?q=is:issue+is:closed][file:https://img.shields.io/github/issues-closed/bqv/weechat-xmpp.svg]] [[https://github.com/bqv/weechat-xmpp/blob/master/LICENSE][file:https://img.shields.io/github/license/bqv/weechat-xmpp.svg]] [[https://github.com/bqv/weechat-extras/][file:https://img.shields.io/badge/weechat--extras-xmpp-blue.svg]] | Status: | XMPP for power users and digital masochists | | Location: | [[http://github.com/bqv/weechat-xmpp]] | | Version: | 0.1.1 | | Disclaimer: | I'm lazy and unashamedly clinically insane | * Description A weechat plugin in C to extend the chat client to support XMPP and a currently minimal but ideally maximal set of XEPs. * Usage 1. Start with =/xmpp add=, use =/help xmpp= for instructions. 2. Use =/xmpp connect = with the name set at add-time. * Installing Place xmpp.so in the appropriate place for weechat plugins. * Dependencies - libstrophe (dynamic, dependency) - libxml2 (dynamic, dependency) - weechat (>= v2.5) * Building #+begin_src sh git clone git://github.com/bqv/weechat-xmpp.git cd weechat-xmpp make make install #+end_src 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) * [X] Connecting * [X] Pretty-printing stanzas * [X] Receiveing and formatting PMs to a dedicated buffer * [X] Responding to PMs and formatting responses * [X] Opening PMs (/chat) ** TODO [#A] Implement essential functionality (milestone v0.2) * [X] Opening PMs with initial message * [ ] [#B] Handle wide errors gracefully * [ ] [#B] Event-driven MUC entrance * [ ] MUCs * [X] Opening (/enter) * [X] Receiving * [X] Sending * [ ] [#B] Edits * [ ] [#B] Handle errors gracefully * [ ] [#B] Presence/nicklist * [ ] [#B] Enters * [ ] [#B] Leaves * [ ] [#B] Tracking * [ ] [#B] Set/show topic * [ ] OMEMO (libsignal-protocol-c / axc) * [ ] Presence * [ ] Messages * [ ] MUC PMs * [ ] Send typing notifications * [ ] Recv typing notifications * [ ] Read receipts * [ ] OTR (libotr) * [ ] PGP (libgpgme) ** TODO [#C] Implement completion engine (milestone v0.3) ** 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. * License weechat-xmpp is licensed under the Mozilla Public License Version 2.0 available [[https://www.mozilla.org/en-US/MPL/2.0/][here]] and in LICENSE.