annotate mod_register_apps/mod_register_apps.lua @ 5495:7998b49d6512

mod_http_oauth2: Create proper template for OOB code delivery This also improves security by reusing the security and cache headers, where mod_http_errors/http-message doesn't add such headers. Colors selected by taking rotating the error colors, rrggbb -> ggbbrr
author Kim Alvefur <zash@zash.se>
date Wed, 31 May 2023 03:44:04 +0200
parents 556bf57d6417
children e06af1403a60
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");
4975
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4672
diff changeset
3 local http_files
5178
556bf57d6417 mod_register_apps: Detect 0.12+ when called from prosodyctl
Kim Alvefur <zash@zash.se>
parents: 5014
diff changeset
4 if prosody.process_type then
4975
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4672
diff changeset
5 -- Prosody >= 0.12
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4672
diff changeset
6 http_files = require "net.http.files";
4976
75b6e5df65f9 various: Improve error reporting if missing file server module on 0.12
Kim Alvefur <zash@zash.se>
parents: 4975
diff changeset
7 else
4975
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4672
diff changeset
8 -- Prosody <= 0.11
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4672
diff changeset
9 http_files = module:depends "http_files";
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4672
diff changeset
10 end
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 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
13 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 name = "Conversations";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15 text = [[Conversations is a Jabber/XMPP client for Android 4.0+ smartphones that has been optimized to provide a unique mobile experience.]];
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 image = "assets/logos/conversations.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 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
18 platforms = { "Android" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 supports_preauth_uri = true;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 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
21 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 buttons = {
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 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
25 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
26 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 name = "yaxim";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32 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
33 image = "assets/logos/yaxim.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34 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
35 platforms = { "Android" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 supports_preauth_uri = true;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 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
38 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
39 buttons = {
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 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
42 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
43 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
44 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
45 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
47 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
48 name = "Siskin IM";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
49 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
50 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
51 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
52 platforms = { "iOS" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
53 supports_preauth_uri = true;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
54 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
55 buttons = {
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 image = "https://linkmaker.itunes.apple.com/en-us/badge-lrg.svg?releaseDate=2017-05-31&kind=iossoftware&bubble=ios_apps";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
58 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
59 target = "_blank";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
60 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
61 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
62 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
63 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
64 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
65 name = "Beagle IM";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
66 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
67 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
68 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
69 platforms = { "macOS" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
70 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
71 buttons = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
72 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
73 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
74 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
75 target = "_blank";
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 };
4178
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4171
diff changeset
79 setup = {
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4171
diff changeset
80 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
81 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
82 };
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
83 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
84 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
85 name = "Dino";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
86 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
87 image = "assets/logos/dino.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
88 link = "https://dino.im/";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
89 platforms = { "Linux" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
90 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
91 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
92 buttons = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
93 { 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
94 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
95 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
96 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
97 {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
98 name = "Gajim";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
99 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
100 image = "assets/logos/gajim.svg";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
101 link = "https://gajim.org/";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
102 platforms = { "Windows", "Linux" };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
103 download = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
104 buttons = {
4111
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4091
diff changeset
105 {
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
106 text = "Download Gajim";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
107 url = "https://gajim.org/download/";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
108 target = "_blank";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
109 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
110 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
111 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
112 };
5014
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
113 {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
114 name = "Monal";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
115 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
116 image = "assets/logos/monal.svg";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
117 link = "https://monal-im.org/";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
118 platforms = { "iOS" };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
119 supports_preauth_uri = true;
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
120 download = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
121 buttons = {
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 image = "https://linkmaker.itunes.apple.com/en-us/badge-lrg.svg?releaseDate=2017-05-31&kind=iossoftware&bubble=ios_apps";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
124 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
125 target = "_blank";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
126 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
127 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
128 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
129 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
130 {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
131 name = "Monal";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
132 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
133 image = "assets/logos/monal.svg";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
134 link = "https://monal-im.org/";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
135 platforms = { "macOS" };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
136 supports_preauth_uri = true;
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
137 download = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
138 buttons = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
139 {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
140 image = "https://linkmaker.itunes.apple.com/en-us/badge-lrg.svg?releaseDate=2017-05-31&kind=macossoftware&bubble=macos_apps";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
141 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
142 target = "_blank";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
143 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
144 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
145 };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4976
diff changeset
146 };
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
147 });
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
148
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
149 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
150 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
151
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
152 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
153 local function relurl(s)
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
154 if s:match("^%w+://") then
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
155 return s;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
156 end
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
157 return base_url.."/"..s;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
158 end
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
159
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
160 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
161
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
162 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
163 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
164 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
165 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
166 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
167 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
168 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
169 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
170 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
171 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
172 end
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4091
diff changeset
173 end
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4091
diff changeset
174
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
175 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
176 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
177 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
178 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
179 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
180 end
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
181 end
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
182 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
183 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
184
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
185 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
186 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
187 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
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 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
190
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
191 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
192 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
193 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
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_removed(event)
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
197 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
198 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
199
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
200 -- 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
201 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
202 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
203 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
204 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
205 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
206 end
4091
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
207 end
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
208
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
209 local mime_map = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
210 png = "image/png";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
211 svg = "image/svg+xml";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
212 };
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 module:provides("http", {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
215 route = {
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
216 ["GET /assets/*"] = http_files and http_files.serve({
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
217 path = module:get_directory().."/assets";
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
218 mime_map = mime_map;
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
219 });
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
220 };
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
221 });
4171
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
222
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
223 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
224 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
225 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
226 end
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.unload()
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
229 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
230 end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4114
diff changeset
231