X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Firccap.h;h=3d1e793d122c96dc6080b3f2ad187a6021b0a14c;hb=48017b680ede0dbfb121d1184dfbd13536cfc53f;hp=c61068e0e134e97cb71a9ccb6189c6ff5d1b4976;hpb=0b983b0d9364e62db0b5e6cf25988ef8041a0c5d;p=quassel.git diff --git a/src/common/irccap.h b/src/common/irccap.h index c61068e0..3d1e793d 100644 --- a/src/common/irccap.h +++ b/src/common/irccap.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,8 +18,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef IRCCAP_H -#define IRCCAP_H +#pragma once #include #include @@ -49,6 +48,13 @@ namespace IrcCap { */ const uint ACCOUNT_NOTIFY_WHOX_NUM = 369; + /** + * Send account information as a tag with all commands sent by a user. + * + * http://ircv3.net/specs/extensions/account-notify-3.1.html + */ + const QString ACCOUNT_TAG = "account-tag"; + /** * Away change notification. * @@ -73,6 +79,13 @@ namespace IrcCap { */ const QString CHGHOST = "chghost"; + /** + * Server sending own messages back. + * + * https://ircv3.net/specs/extensions/echo-message-3.2.html + */ + const QString ECHO_MESSAGE = "echo-message"; + /** * Extended join information. * @@ -80,6 +93,20 @@ namespace IrcCap { */ const QString EXTENDED_JOIN = "extended-join"; + /** + * Standardized invite notifications. + * + * https://ircv3.net/specs/extensions/invite-notify-3.2 + */ + const QString INVITE_NOTIFY = "invite-notify"; + + /** + * Additional metadata on a per-message basis + * + * https://ircv3.net/specs/extensions/message-tags + */ + const QString MESSAGE_TAGS = "message-tags"; + /** * Multiple mode prefixes in MODE and WHO replies. * @@ -94,6 +121,13 @@ namespace IrcCap { */ const QString SASL = "sasl"; + /** + * Allows updating realname without reconnecting + * + * https://ircv3.net/specs/extensions/setname + */ + const QString SETNAME = "setname"; + /** * Userhost in names replies. * @@ -101,11 +135,30 @@ namespace IrcCap { */ const QString USERHOST_IN_NAMES = "userhost-in-names"; + /** + * Server time for messages. + * + * https://ircv3.net/specs/extensions/server-time-3.2.html + */ + const QString SERVER_TIME = "server-time"; + /** * Vendor-specific capabilities */ namespace Vendor { + /** + * Twitch.tv membership message support + * + * User list in a channel can be quite large and often non required for bot users and is then optional. + * + * From Twitch.tv documentation: + * "Adds membership state event data. By default, we do not send this data to clients without this capability." + * + * https://dev.twitch.tv/docs/v5/guides/irc/#twitch-irc-capability-membership + */ + const QString TWITCH_MEMBERSHIP = "twitch.tv/membership"; + /** * Self message support, as recognized by ZNC. * @@ -122,17 +175,22 @@ namespace IrcCap { /** * List of capabilities currently implemented and requested during capability negotiation. */ - const QStringList knownCaps = QStringList { - ACCOUNT_NOTIFY, - AWAY_NOTIFY, - CAP_NOTIFY, - CHGHOST, - EXTENDED_JOIN, - MULTI_PREFIX, - SASL, - USERHOST_IN_NAMES, - Vendor::ZNC_SELF_MESSAGE - }; + const QStringList knownCaps = QStringList{ACCOUNT_NOTIFY, + ACCOUNT_TAG, + AWAY_NOTIFY, + CAP_NOTIFY, + CHGHOST, + //ECHO_MESSAGE, // Postponed for message pending UI with batch + labeled-response + EXTENDED_JOIN, + INVITE_NOTIFY, + MESSAGE_TAGS, + MULTI_PREFIX, + SASL, + SETNAME, + USERHOST_IN_NAMES, + SERVER_TIME, + Vendor::TWITCH_MEMBERSHIP, + Vendor::ZNC_SELF_MESSAGE}; // NOTE: If you modify the knownCaps list, update the constants above as needed. /** @@ -152,5 +210,3 @@ namespace IrcCap { const QString EXTERNAL = "EXTERNAL"; } } - -#endif // IRCCAP_H