This module provides a way to configure a list of XMPP client apps recommended by the current server. This list is used by other modules such as mod_invites_page and mod_invites_register_web.
It also contains the logos of a number of popular XMPP clients, and serves them over HTTP for other modules to reference when serving web pages.
Field | Description |
---|---|
site_apps | A list of apps and their metadata |
site_apps_show | A list of app ids to only show |
site_apps_hide | A list of app ids to never show |
An “app id” is the lower case app name, with any spaces replaced by
-
. E.g. “My Chat” would be "my-chat"
.
The module comes with a preconfigured site_apps
containing popular clients. Patches are welcome to add/update this list
as needed!
If you want to limit to just displaying a subset of the apps on your
server, use the site_apps_show
option,
e.g. site_apps_show = { "conversations", "siskin-im" }
. To
never show specific apps, you can use site_apps_hide
,
e.g. site_apps_hide = { "pidgin" }
.
The configuration option site_apps
contains the list of
apps and their metadata.
-- Example site_apps config with two clients
= {
site_apps {
= "Conversations";
name = [[Conversations is a Jabber/XMPP client for Android 4.0+ smartphones that has been optimized to provide a unique mobile experience.]];
text = "assets/logos/conversations.svg";
image = "https://play.google.com/store/apps/details?id=eu.siacs.conversations";
link = { "Android" };
platforms = true;
supports_preauth_uri = "{app.link!}&referrer={invite.uri}";
magic_link_format = {
download = {
buttons {
= "https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png";
image = "https://play.google.com/store/apps/details?id=eu.siacs.conversations";
url };
};
};
};
{
= "Gajim";
name = [[A fully-featured desktop chat client for Windows and Linux.]];
text = "assets/logos/gajim.svg";
image = "https://gajim.org/";
link = { "Windows", "Linux" };
platforms = {
download = {
buttons {
= "Download Gajim";
text = "https://gajim.org/download/";
url = "_blank";
target };
};
};
};
}
The fields of each client entry are as follows:
Field | Description |
---|---|
name | The name of the client |
text | Description of the client |
image | URL to a logo for the client, may also be a path in the assets/ directory |
link | URL to the app |
platforms | A list of platforms the app can be installed on |
supports_preauth_uri | true if the client supports XEP-0401 preauth URIs |
magic_link_format | A template to generate a magic installation link from an invite |
download | Download instructions and buttons, described below |
The download
field supports an optional text prompt and
one or more buttons. Each button must contain either a text
or image
field and must contain a url
field.
It is recommended to set target = "_blank"
if the link
opens a new page, so that the user doesn’t lose the invite page.
Example download field with instructions and two buttons:
= {
download = "Some optional instructions about downloading the client...";
text = {
buttons {
= "Button 1: some text";
text = "https://example.com/";
url };
{
= "https://example.com/button2.png";
image = "https://example.com/download/";
url };
};
}
With the plugin installer in Prosody 0.12 you can use:
sudo prosodyctl install --server=https://modules.prosody.im/rocks/ mod_register_apps
For earlier versions see the documentation for installing 3rd party modules