/bitlbee-discord

Bitlbee plugin for Discord (http://discordapp.com)

Primary LanguageCGNU General Public License v2.0GPL-2.0

Discord protocol plugin for bitlbee.

License
-------
bitlbee-discord plugin is distributed under GPLv2 license.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

Build dependencies
------------------
- bitlbee and headers >= 3.4
  If using distribution version of bitlbee you will need to install the dev
  package, usually bitlbee-dev or bitlbee-devel. If bitlbee was built from
  source don't forget to do `make install-dev`.

- glib2 and headers => 2.32
  The library itself is usually installed as a dependency of bitlbee, headers
  need to be installed separately. In debian the package containing them is
  libglib2.0-dev.

- autotools (if building from git)
  A bit of an overkill, but autotools is a buildsystem of choice now, sorry.


Building and Installing
-----------------------
If building from git you will first need to generate autotools configuration
script and related files by executing the following command:

  $ ./autogen.sh

After that (or when building from a tarball) you can build as usual:

  $ ./configure
  $ make
  $ sudo make install

If your bitlbee's plugindir is in non-standard location you can specify it by
calling ./configure with --with-plugindir=/path/to/plugindir option.

Usage
-----
Plugin adds 'discord' protocol to bitlbee, add your account as usual:

  > account add discord <email> <password>
  > account discord on

Options
-------
This section describes options available throug "account set" bitlbee command
(for help on usage of this command see "help account set").

  - host (type: string; default: "discordapp.com")
    Discord server hostname. Just in case discord changes the hostname or there
    are some alternatives with compatible API.

  - voice_status_notify (type: boolean; default: no)
    This enables text notifications in your control channel about users
    changing/leaving voice channels. Can be noisy on big servers.

  - edit_prefix (type: string; default: "EDIT: ")
    A string that will be prefixed to an edited message to distinguish those
    from normal ones.

  - urlinfo_handle (type: string; default: "urlinfo")
    User handle that will be used to post url expansion info such as title and
    description in groupchats.

  - max_backlog (type: integer; default: 50)
    Maximum number of backlog messages per channel to fetch on connection.
    Unlike twitter implementation in bitlbee this won't dump seen messages.

  - send_acks (type: boolean; default: yes)
    By default bitlbee-discord will send an "ack" for every message received,
    thus marking everything as "read" on mobile/webapp. Setting this to false
    will disable all acks from bitlbee-discord.

  - mention_suffix (type: string; default: ":")
    Suffix used in a regex to look for username mentions to automatically
    convert your usual irc-style "nick:" mentions to discord's "<@id>" format.
    So if you type "nick: hello" in bitlbee, it will be displayed as
    "@nick hello" in discord. This can be multicharacter and you can even do OR
    logic here because it is actually used as a part of glib regex. That is
    setting this to "[:,]" will match both "nick:" and "nick,". But beware
    overcomplicating this may lead to bitlbee-discord spending a lot of time
    parsing your outgoing messages. Setting this to "" will disable this
    function.

  - mention_ignorecase (type: boolean; default: off)
    Ignore case when looking for outgoing mentions. This also affects channel
    mentions.

  - incoming_me_translation (type: boolean; default: on)
    This option controls whether bitlbee-discord will translate incoming
    messages that are fully italicized (that is enclosed in '*' characters) to
    '/me' messages.

  - never_offline (type: boolean; default: off)
    Contacts from this account will never appear as offline and will be marked
    away instead.

  - server_prefix_len (type: int; default: 0)
    Prefix channel names with this many characters of server name. If set to 0
    nothing will be prefixed. If set to anything lower than 0 - full server
    name will be prefixed. Assuming we have a channel "general" on "beecord"
    server here is what channel name you are going to get with different
    settings:
      -1 - #beecord.general
       0 - #general
       3 - #bee.general

Bugs
----
Plugin is in early development stages, so there should be plenty, please report
them at github: https://github.com/sm00th/bitlbee-discord/issues
For questions, bitlbee-discord breakage demonstrations and chitchat you can
join the following discord server: https://discord.gg/0lUXEAZXmvW3ovUC or ping
trac3r on irc.oftc.net/#bitlbee.