Annotate

mod_register_apps/mod_register_apps.lua @ 6281:9d88c3d9eea5

mod_http_oauth2: Enforce the registered grant types Thus a client can limit itself to certain grant types. Not sure if this prevents any attacks, but what was the point of including this in the registration if it was not going to be enforced? This became easier to do with client_id being available earlier.
author Kim Alvefur <zash@zash.se>
date Mon, 02 Jun 2025 20:55:20 +0200
parent 6230:8c98b1dd1ad3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4186
aba0470ed725 mod_register_apps: Ignore the long lines [luacheck]
Kim Alvefur <zash@zash.se>
parents: 4178
diff changeset
1 -- luacheck: ignore 631
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 module:depends("http");
6230
8c98b1dd1ad3 mod_register_apps: Remove compatibility with 0.11
Link Mauve <linkmauve@linkmauve.fr>
parents: 6096
diff changeset
3 local http_files = require "net.http.files";
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 local app_config = module:get_option("site_apps", {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 name = "Conversations";
5955
07f32bf41303 mod_register_apps: Update Conversations Android version
Kim Alvefur <zash@zash.se>
parents: 5740
diff changeset
8 text = [[Conversations is a Jabber/XMPP client for Android 6.0+ smartphones that has been optimized to provide a unique mobile experience.]];
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 image = "assets/logos/conversations.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 link = "https://play.google.com/store/apps/details?id=eu.siacs.conversations";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 platforms = { "Android" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 supports_preauth_uri = true;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 magic_link_format = "{app.link!}&referrer={invite.uri}";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 buttons = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 image = "https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 url = "https://play.google.com/store/apps/details?id=eu.siacs.conversations";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 name = "yaxim";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 text = [[A lean Jabber/XMPP client for Android. It aims at usability, low overhead and security, and works on low-end Android devices starting with Android 4.0.]];
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26 image = "assets/logos/yaxim.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 link = "https://play.google.com/store/apps/details?id=org.yaxim.androidclient";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 platforms = { "Android" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 supports_preauth_uri = true;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 magic_link_format = "{app.link!}&referrer={invite.uri}";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 buttons = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 image = "https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 url = "https://play.google.com/store/apps/details?id=org.yaxim.androidclient";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
40 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
41 name = "Siskin IM";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
42 text = [[A lightweight and powerful XMPP client for iPhone and iPad. It provides an easy way to talk and share moments with your friends.]];
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
43 image = "assets/logos/siskin-im.png";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 link = "https://apps.apple.com/us/app/siskin-im/id1153516838";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 platforms = { "iOS" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 supports_preauth_uri = true;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 buttons = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 {
6096
fe380764032d mod_register_apps: Fix iOS download button image URLs
Robby Stokoe <robbystk@protonmail.com>
parents: 5955
diff changeset
50 image = "https://toolbox.marketingtools.apple.com/api/v2/badges/download-on-the-app-store/black/en-us?releaseDate=1245024000";
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
51 url = "https://apps.apple.com/us/app/siskin-im/id1153516838";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
52 target = "_blank";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
56 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
57 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 name = "Beagle IM";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
59 text = [[Beagle IM by Tigase, Inc. is a lightweight and powerful XMPP client for macOS.]];
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 image = "assets/logos/beagle-im.png";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 link = "https://apps.apple.com/us/app/beagle-im/id1445349494";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 platforms = { "macOS" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 buttons = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 text = "Download from Mac App Store";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
67 url = "https://apps.apple.com/us/app/beagle-im/id1445349494";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
68 target = "_blank";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
69 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 };
4178
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4171
diff changeset
72 setup = {
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4171
diff changeset
73 text = [[Launch Beagle IM, and select 'Yes' to add a new account. Click the '+'
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4171
diff changeset
74 button under the empty account list and then enter your credentials.]];
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4171
diff changeset
75 };
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
76 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
77 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
78 name = "Dino";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
79 text = [[A modern open-source chat client for the desktop. It focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.]];
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
80 image = "assets/logos/dino.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
81 link = "https://dino.im/";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
82 platforms = { "Linux" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84 text = "Click the button to open the Dino website where you can download and install it on your PC.";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 buttons = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 { text = "Download Dino for Linux", url = "https://dino.im/#download", target="_blank" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
87 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 name = "Gajim";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
92 text = [[A fully-featured desktop chat client for Windows and Linux.]];
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 image = "assets/logos/gajim.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
94 link = "https://gajim.org/";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95 platforms = { "Windows", "Linux" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 buttons = {
4111
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4091
diff changeset
98 {
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 text = "Download Gajim";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
100 url = "https://gajim.org/download/";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 target = "_blank";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
105 };
5014
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
106 {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
107 name = "Monal";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
108 text = [[A modern open-source chat client for iPhone and iPad. It is easy to use and has a clean user interface.]];
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
109 image = "assets/logos/monal.svg";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
110 link = "https://monal-im.org/";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
111 platforms = { "iOS" };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
112 supports_preauth_uri = true;
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
113 download = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
114 buttons = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
115 {
6096
fe380764032d mod_register_apps: Fix iOS download button image URLs
Robby Stokoe <robbystk@protonmail.com>
parents: 5955
diff changeset
116 image = "https://toolbox.marketingtools.apple.com/api/v2/badges/download-on-the-app-store/black/en-us?releaseDate=1245024000";
5014
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
117 url = "https://apps.apple.com/app/id317711500";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
118 target = "_blank";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
119 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
120 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
121 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
122 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
123 {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
124 name = "Monal";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
125 text = [[A modern open-source chat client for Mac. It is easy to use and has a clean user interface.]];
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
126 image = "assets/logos/monal.svg";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
127 link = "https://monal-im.org/";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
128 platforms = { "macOS" };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
129 supports_preauth_uri = true;
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
130 download = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
131 buttons = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
132 {
6096
fe380764032d mod_register_apps: Fix iOS download button image URLs
Robby Stokoe <robbystk@protonmail.com>
parents: 5955
diff changeset
133 image = "https://toolbox.marketingtools.apple.com/api/v2/badges/download-on-the-app-store/black/en-us?releaseDate=1245024000";
5014
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
134 url = "https://apps.apple.com/app/id1637078500";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
135 target = "_blank";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
136 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
137 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
138 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
139 };
5740
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
140 {
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
141 name = "Renga";
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
142 text = [[XMPP client for Haiku]];
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
143 image = "assets/logos/renga.svg";
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
144 link = "https://pulkomandy.tk/projects/renga";
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
145 platforms = { "Haiku" };
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
146 download = {
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
147 buttons = {
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
148 { text = "Download Renga for Haiku", url = "https://depot.haiku-os.org/#!/pkg/renga?bcguid=bc233-PQIA", target="_blank" };
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
149 };
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
150 };
e06af1403a60 mod_register_apps: Add Renga to the list of supported clients
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 5178
diff changeset
151 };
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
152 });
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
153
4113
c85af57e82e0 mod_register_apps: Add site_apps_show and site_apps_hide options (thanks meaz)
Matthew Wild <mwild1@gmail.com>
parents: 4111
diff changeset
154 local show_apps = module:get_option_set("site_apps_show");
c85af57e82e0 mod_register_apps: Add site_apps_show and site_apps_hide options (thanks meaz)
Matthew Wild <mwild1@gmail.com>
parents: 4111
diff changeset
155 local hide_apps = module:get_option_set("site_apps_hide");
c85af57e82e0 mod_register_apps: Add site_apps_show and site_apps_hide options (thanks meaz)
Matthew Wild <mwild1@gmail.com>
parents: 4111
diff changeset
156
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
157 local base_url = module.http_url and module:http_url();
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
158 local function relurl(s)
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
159 if s:match("^%w+://") then
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
160 return s;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
161 end
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
162 return base_url.."/"..s;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
163 end
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
164
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
165 local site_apps = module:shared("apps");
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
166
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
167 local function add_app(app_info, source)
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
168 local app_id = app_info.id or app_info.name:gsub("%W+", "-"):lower();
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
169 if (not show_apps or show_apps:contains(app_id))
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
170 and not (hide_apps and hide_apps:contains(app_id))
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
171 and not site_apps[app_id] then
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
172 app_info.id = app_id;
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
173 app_info.image = relurl(app_info.image);
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
174 site_apps[app_id] = app_info;
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
175 app_info._source = source;
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
176 table.insert(site_apps, app_info);
4111
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4091
diff changeset
177 end
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4091
diff changeset
178 end
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4091
diff changeset
179
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
180 local function remove_app(app_info)
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
181 local app_id = app_info.id or app_info.name:gsub("%W+", "-"):lower();
4187
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
182 for i = #site_apps, 1, -1 do
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
183 if site_apps[i].id == app_id then
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
184 table.remove(site_apps, i);
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
185 end
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
186 end
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
187 site_apps[app_id] = nil;
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
188 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
189
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
190 local function add_config_apps()
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
191 for _, app_info in ipairs(app_config) do
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
192 add_app(app_info, module.name);
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
193 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
194 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
195
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
196 local function module_app_added(event)
4630
635907a5d2c8 mod_register_apps: Reduce yellow yelling in log message
Kim Alvefur <zash@zash.se>
parents: 4187
diff changeset
197 module:log("info", "Adding %s", event.item.name)
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
198 add_app(event.item, module.name);
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
199 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
200
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
201 local function module_app_removed(event)
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
202 remove_app(event.item);
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
203 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
204
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
205 -- Remove all apps added by this module
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
206 local function remove_all_apps()
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
207 for k, v in pairs(site_apps) do
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
208 if v._source == module.name then
4672
0b084f63fed0 mod_register_apps: Fix removal on unload (thanks ibikk)
Kim Alvefur <zash@zash.se>
parents: 4630
diff changeset
209 remove_app(v);
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
210 end
4113
c85af57e82e0 mod_register_apps: Add site_apps_show and site_apps_hide options (thanks meaz)
Matthew Wild <mwild1@gmail.com>
parents: 4111
diff changeset
211 end
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
212 end
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
213
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
214 local mime_map = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
215 png = "image/png";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
216 svg = "image/svg+xml";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
217 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
218
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
219 module:provides("http", {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
220 route = {
6230
8c98b1dd1ad3 mod_register_apps: Remove compatibility with 0.11
Link Mauve <linkmauve@linkmauve.fr>
parents: 6096
diff changeset
221 ["GET /assets/*"] = http_files.serve({
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
222 path = module:get_directory().."/assets";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
223 mime_map = mime_map;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
224 });
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
225 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
226 });
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
227
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
228 function module.load()
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
229 add_config_apps();
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
230 module:handle_items("site-app-provider", module_app_added, module_app_removed, true);
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
231 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
232
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
233 function module.unload()
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
234 remove_all_apps();
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
235 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
236