Skip to content

Commit

Permalink
irc: evaluate options irc.ctcp.* (issue #1974)
Browse files Browse the repository at this point in the history
  • Loading branch information
flashcode committed Jul 12, 2023
1 parent 5d222c8 commit f46f759
Show file tree
Hide file tree
Showing 34 changed files with 922 additions and 407 deletions.
1 change: 1 addition & 0 deletions ChangeLog.adoc
Expand Up @@ -23,6 +23,7 @@ New features::
* fset: allow long type name in type filter
* irc: display commands 716/717 in private buffer (if present) (issue #146)
* irc: create default options irc.ctcp.* when file irc.conf is created (issue #1974)
* irc: evaluate options irc.ctcp.* (issue #1974)
* irc: remove Git revision and compilation date from CTCP VERSION/FINGER reply (issue #1974)
* trigger: add options `-o`, `-ol`, `-i` and `-il` in command `/trigger list` (issue #1953)

Expand Down
7 changes: 7 additions & 0 deletions ReleaseNotes.adoc
Expand Up @@ -14,6 +14,13 @@ For a complete list of changes, please look at ChangeLog.
[[v4.1.0]]
== Version 4.1.0 (under dev)

[[v4.1.0_irc_ctcp_replies]]
=== IRC CTCP replies

IRC CTCP replies are now evaluated, with the same variables available, so now
the syntax is for example `${version}` instead of `$version`. +
The existing options `irc.ctcp.*` are automatically converted on upgrade.

[[v4.1.0_fset_allowed_values]]
=== Allowed values for options on fset buffer

Expand Down
53 changes: 28 additions & 25 deletions doc/de/weechat_user.de.adoc
Expand Up @@ -4070,7 +4070,7 @@ Beispiel: Um eine Antwort auf die CTCP Anfrage "VERSION" anzupassen nutzen Sie
folgenden Befehl:

----
/set irc.ctcp.version "I'm running WeeChat $version, it rocks!"
/set irc.ctcp.version "I'm running WeeChat ${version}, it rocks!"
----

[NOTE]
Expand All @@ -4095,7 +4095,7 @@ Auch kann man CTCP Antworten für jeden einzelnen Server anpassen. Dazu muss
man lediglich den internen Servernamen vor die CTCP Anfrage setzen:

----
/set irc.ctcp.libera.version "WeeChat $version (for libera)"
/set irc.ctcp.libera.version "WeeChat ${version} (for libera)"
----

Sollen die CTCP Antworten wieder auf die Standardeinstellungen zurück gesetzt werden
Expand All @@ -4105,41 +4105,44 @@ dann müssen Sie lediglich die Option löschen:
/unset irc.ctcp.version
----

Folgende Platzhalter können in den CTCP-Antworten genutzt werden. Diese werden dann
mit dem entsprechenden Wert ersetzt:
// TRANSLATION MISSING
The CTCP replies are evaluated (see command <<command_weechat_eval,/eval>>) and
the following extra variables are available:

[width="100%",cols="2l,4,8",options="header"]
[width="100%",cols="2,4,8",options="header"]
|===
| Platzhalter | Beschreibung | Wert/Beispiel
| $clientinfo | Liste der CTCP Antworten | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| $version | WeeChat Version | `+4.1.0-dev+`
| $versiongit | WeeChat Version + Git version ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
| $git | Git Version ^(1)^ | `+v4.0.0-51-g8f98b922a+`
| $compilation | Datum der Kompilierung | `+Jul 8 2023 20:14:23+`
| $osinfo | Info über das genutzte OS | `+Linux 5.10.0-23-amd64 / x86_64+`
| $site | WeeChat Seite | `+https://weechat.org/+`
| $download | WeeChat, Download Seite | `+https://weechat.org/download/+`
| $time | Aktuelle Uhrzeit/Datum | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| $username | Username beim IRC Server | `+Name+`
| $realname | Realname beim IRC Server | `+John Doe+`
// TRANSLATION MISSING
| Variable | Beschreibung | Wert/Beispiel
| `+${clientinfo}+` | Liste der CTCP Antworten | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| `+${version}+` | WeeChat Version | `+4.1.0-dev+`
| `+${versiongit}+` | WeeChat Version + Git version ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
| `+${git}+` | Git Version ^(1)^ | `+v4.0.0-51-g8f98b922a+`
| `+${compilation}+` | Datum der Kompilierung | `+Jul 8 2023 20:14:23+`
| `+${osinfo}+` | Info über das genutzte OS | `+Linux 5.10.0-23-amd64 / x86_64+`
| `+${site}+` | WeeChat Seite | `+https://weechat.org/+`
| `+${download}+` | WeeChat, Download Seite | `+https://weechat.org/download/+`
| `+${time}+` | Aktuelle Uhrzeit/Datum | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| `+${username}+` | Username beim IRC Server | `+Name+`
| `+${realname}+` | Realname beim IRC Server | `+John Doe+`
|===

[NOTE]
^(1)^ Die Git Version wird durch die Ausgabe des Befehls `git describe` ermittelt.
Dies erfordert, dass WeeChat aus dem Git Repository heraus kompiliert wurde
und das Git überhaupt installiert ist.

Falls CTCP Optionen nicht festgelegt sind, lauten die CTCP Antworten:
// TRANSLATION MISSING
The default CTCP replies are:

[width="100%",cols="2,4,8",options="header"]
|===
| CTCP | Antwortformat | Beispiel
| CLIENTINFO | `+$clientinfo+` | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| FINGER | `+WeeChat $version+` | `+WeeChat 4.1.0-dev+`
| SOURCE | `+$download+` | `+https://weechat.org/download/+`
| TIME | `+$time+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| USERINFO | `+$username ($realname)+` | `+Name (John Doe)+`
| VERSION | `+WeeChat $version+` | `+WeeChat 4.1.0-dev+`
| CTCP | Antwortformat | Beispiel
| CLIENTINFO | `+${clientinfo}+` | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| FINGER | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
| SOURCE | `+${download}+` | `+https://weechat.org/download/+`
| TIME | `+${time}+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| USERINFO | `+${username} (${realname})+` | `+Name (John Doe)+`
| VERSION | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
|===

[[irc_target_buffer]]
Expand Down
1 change: 1 addition & 0 deletions doc/en/weechat_dev.en.adoc
Expand Up @@ -436,6 +436,7 @@ WeeChat "core" is located in following directories:
|             test-irc-channel.cpp | Tests: IRC channels.
|             test-irc-color.cpp | Tests: IRC colors.
|             test-irc-config.cpp | Tests: IRC configuration.
|             test-irc-ctcp.cpp | Tests: IRC CTCP.
|             test-irc-ignore.cpp | Tests: IRC ignores.
|             test-irc-join.cpp | Tests: IRC join functions.
|             test-irc-message.cpp | Tests: IRC messages.
Expand Down
50 changes: 25 additions & 25 deletions doc/en/weechat_user.en.adoc
Expand Up @@ -3992,7 +3992,7 @@ reply).
For example, to customize reply to CTCP "VERSION", use following command:

----
/set irc.ctcp.version "I'm running WeeChat $version, it rocks!"
/set irc.ctcp.version "I'm running WeeChat ${version}, it rocks!"
----

[NOTE]
Expand All @@ -4017,7 +4017,7 @@ It is possible to customize CTCP for one server only, using its internal name
before CTCP name:

----
/set irc.ctcp.libera.version "WeeChat $version (for libera)"
/set irc.ctcp.libera.version "WeeChat ${version} (for libera)"
----

If you want to restore standard CTCP reply, then remove option:
Expand All @@ -4026,40 +4026,40 @@ If you want to restore standard CTCP reply, then remove option:
/unset irc.ctcp.version
----

Following codes can be used in strings and are automatically expanded by WeeChat
when replying to CTCP:
The CTCP replies are evaluated (see command <<command_weechat_eval,/eval>>) and
the following extra variables are available:

[width="100%",cols="2l,4,8",options="header"]
[width="100%",cols="2,4,8",options="header"]
|===
| Code | Description | Value/example
| $clientinfo | List of supported CTCP | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| $version | WeeChat version | `+4.1.0-dev+`
| $versiongit | WeeChat version + Git version ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
| $git | Git version ^(1)^ | `+v4.0.0-51-g8f98b922a+`
| $compilation | WeeChat compilation date | `+Jul 8 2023 20:14:23+`
| $osinfo | Info about OS | `+Linux 5.10.0-23-amd64 / x86_64+`
| $site | WeeChat site | `+https://weechat.org/+`
| $download | WeeChat site, download page | `+https://weechat.org/download/+`
| $time | Current date/time | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| $username | User name on IRC server | `+name+`
| $realname | Real name on IRC server | `+John Doe+`
| Variable | Description | Value/example
| `+${clientinfo}+` | List of supported CTCP | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| `+${version}+` | WeeChat version | `+4.1.0-dev+`
| `+${versiongit}+` | WeeChat version + Git version ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
| `+${git}+` | Git version ^(1)^ | `+v4.0.0-51-g8f98b922a+`
| `+${compilation}+` | WeeChat compilation date | `+Jul 8 2023 20:14:23+`
| `+${osinfo}+` | Info about OS | `+Linux 5.10.0-23-amd64 / x86_64+`
| `+${site}+` | WeeChat site | `+https://weechat.org/+`
| `+${download}+` | WeeChat site, download page | `+https://weechat.org/download/+`
| `+${time}+` | Current date/time | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| `+${username}+` | User name on IRC server | `+name+`
| `+${realname}+` | Real name on IRC server | `+John Doe+`
|===

[NOTE]
^(1)^ The Git version is the output of command `git describe`. It is known only
if WeeChat has been compiled inside the Git repository and if Git was installed.

If CTCP options are not defined (by default), CTCP replies are:
The default CTCP replies are:

[width="100%",cols="2,4,8",options="header"]
|===
| CTCP | Reply format | Example
| CLIENTINFO | `+$clientinfo+` | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| FINGER | `+WeeChat $version+` | `+WeeChat 4.1.0-dev+`
| SOURCE | `+$download+` | `+https://weechat.org/download/+`
| TIME | `+$time+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| USERINFO | `+$username ($realname)+` | `+name (John Doe)+`
| VERSION | `+WeeChat $version+` | `+WeeChat 4.1.0-dev+`
| CTCP | Reply format | Example
| CLIENTINFO | `+${clientinfo}+` | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| FINGER | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
| SOURCE | `+${download}+` | `+https://weechat.org/download/+`
| TIME | `+${time}+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| USERINFO | `+${username} (${realname})+` | `+name (John Doe)+`
| VERSION | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
|===

[[irc_target_buffer]]
Expand Down
1 change: 1 addition & 0 deletions doc/fr/weechat_dev.fr.adoc
Expand Up @@ -438,6 +438,7 @@ Le cœur de WeeChat est situé dans les répertoires suivants :
|             test-irc-channel.cpp | Tests : canaux IRC.
|             test-irc-color.cpp | Tests : couleurs IRC.
|             test-irc-config.cpp | Tests : configuration IRC.
|             test-irc-ctcp.cpp | Tests : CTCP IRC.
|             test-irc-ignore.cpp | Tests : ignores IRC.
|             test-irc-join.cpp | Tests : fonctions de join IRC.
|             test-irc-message.cpp | Tests : messages IRC.
Expand Down
50 changes: 25 additions & 25 deletions doc/fr/weechat_user.fr.adoc
Expand Up @@ -4116,7 +4116,7 @@ Par exemple, pour personnaliser la réponse au CTCP "VERSION", utilisez la
commande suivante :

----
/set irc.ctcp.version "Je suis sous WeeChat $version, ça déchire !"
/set irc.ctcp.version "Je suis sous WeeChat ${version}, ça déchire !"
----

[NOTE]
Expand All @@ -4141,7 +4141,7 @@ Il est possible de personnaliser le CTCP pour un seul serveur, en utilisant son
nom interne avant le nom du CTCP :

----
/set irc.ctcp.libera.version "WeeChat $version (pour libera)"
/set irc.ctcp.libera.version "WeeChat ${version} (pour libera)"
----

Si vous voulez restaurer la réponse CTCP standard, alors supprimez l'option :
Expand All @@ -4150,41 +4150,41 @@ Si vous voulez restaurer la réponse CTCP standard, alors supprimez l'option :
/unset irc.ctcp.version
----

Les codes suivants peuvent être utilisés dans les chaînes et sont
automatiquement remplacées par WeeChat lors de la réponse au CTCP :
Les réponses CTCP sont évaluées (voir la commande <<command_weechat_eval,/eval>>)
et les variables supplémentaires suivantes sont disponibles :

[width="100%",cols="2l,4,8",options="header"]
[width="100%",cols="2,4,8",options="header"]
|===
| Code | Description | Valeur / exemple
| $clientinfo | Liste des CTCP supportés | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| $version | Version de WeeChat | `+4.1.0-dev+`
| $versiongit | Version de WeeChat + version Git ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
| $git | Version Git ^(1)^ | `+v4.0.0-51-g8f98b922a+`
| $compilation | Date de compilation WeeChat | `+Jul 8 2023 20:14:23+`
| $osinfo | Information sur l'OS | `+Linux 5.10.0-23-amd64 / x86_64+`
| $site | Site WeeChat | `+https://weechat.org/+`
| $download | Site WeeChat, page téléchargement | `+https://weechat.org/download/+`
| $time | Date/heure courante | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| $username | Nom d'utilisateur sur le serveur | `+nom+`
| $realname | Nom réel sur le serveur | `+John Doe+`
| Variable | Description | Valeur / exemple
| `+${clientinfo}+` | Liste des CTCP supportés | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| `+${version}+` | Version de WeeChat | `+4.1.0-dev+`
| `+${versiongit}+` | Version de WeeChat + version Git ^(1)^ | `+4.1.0-dev (git: v4.0.0-51-g8f98b922a)+`
| `+${git}+` | Version Git ^(1)^ | `+v4.0.0-51-g8f98b922a+`
| `+${compilation}+` | Date de compilation WeeChat | `+Jul 8 2023 20:14:23+`
| `+${osinfo}+` | Information sur l'OS | `+Linux 5.10.0-23-amd64 / x86_64+`
| `+${site}+` | Site WeeChat | `+https://weechat.org/+`
| `+${download}+` | Site WeeChat, page téléchargement | `+https://weechat.org/download/+`
| `+${time}+` | Date/heure courante | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| `+${username}+` | Nom d'utilisateur sur le serveur | `+nom+`
| `+${realname}+` | Nom réel sur le serveur | `+John Doe+`
|===

[NOTE]
^(1)^ La version Git est la sortie de la commande `git describe`. Elle est
connue seulement si WeeChat a été compilé dans le dépôt Git et si Git était
installé.

Si les options CTCP ne sont pas définies (par défaut), les réponses CTCP sont :
Les réponses CTCP par défaut sont :

[width="100%",cols="2,4,8",options="header"]
|===
| CTCP | Format de réponse | Exemple
| CLIENTINFO | `+$clientinfo+` | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| FINGER | `+WeeChat $version+` | `+WeeChat 4.1.0-dev+`
| SOURCE | `+$download+` | `+https://weechat.org/download/+`
| TIME | `+$time+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| USERINFO | `+$username ($realname)+` | `+nom (John Doe)+`
| VERSION | `+WeeChat $version+` | `+WeeChat 4.1.0-dev+`
| CTCP | Format de réponse | Exemple
| CLIENTINFO | `+${clientinfo}+` | `+ACTION DCC CLIENTINFO FINGER PING SOURCE TIME USERINFO VERSION+`
| FINGER | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
| SOURCE | `+${download}+` | `+https://weechat.org/download/+`
| TIME | `+${time}+` | `+Sat, 08 Jul 2023 21:11:19 +0200+`
| USERINFO | `+${username} (${realname})+` | `+nom (John Doe)+`
| VERSION | `+WeeChat ${version}+` | `+WeeChat 4.1.0-dev+`
|===

[[irc_target_buffer]]
Expand Down

0 comments on commit f46f759

Please sign in to comment.