mod_register_apps/mod_register_apps.lua
author Matthew Wild <mwild1@gmail.com>
Fri, 23 Sep 2022 12:37:36 +0100
changeset 5055 2718652c18ca
parent 5018 eb3f99d0e72d
child 5182 556bf57d6417
permissions -rw-r--r--
mod_bookmarks2: Update README to reflect 0.12 release
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4190
aba0470ed725 mod_register_apps: Ignore the long lines [luacheck]
Kim Alvefur <zash@zash.se>
parents: 4182
diff changeset
     1
-- luacheck: ignore 631
4095
354dc1e7977a mod_register_apps: Provides a configurable list of XMPP apps
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     2
module:depends("http");
4979
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4676
diff changeset
     3
local http_files
4980
75b6e5df65f9 various: Improve error reporting if missing file server module on 0.12
Kim Alvefur <zash@zash.se>
parents: 4979
diff changeset
     4
if prosody.process_type == "prosody" then
4979
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4676
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: 4676
diff changeset
     6
	http_files = require "net.http.files";
4980
75b6e5df65f9 various: Improve error reporting if missing file server module on 0.12
Kim Alvefur <zash@zash.se>
parents: 4979
diff changeset
     7
else
4979
733e5513f691 various: Use 0.12+ API for serving files from the file system over HTTP
Kim Alvefur <zash@zash.se>
parents: 4676
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: 4676
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: 4676
diff changeset
    10
end
4095
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
		};
4182
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4175
diff changeset
    79
		setup = {
bbd584cee042 mod_register_apps: Add setup instructions for Beagle IM
Matthew Wild <mwild1@gmail.com>
parents: 4175
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: 4175
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: 4175
diff changeset
    82
		};
4095
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 = {
4115
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4095
diff changeset
   105
				{
4095
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
	};
5018
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   113
	{
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   114
		name  = "Monal";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
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: 4980
diff changeset
   116
		image = "assets/logos/monal.svg";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   117
		link  = "https://monal-im.org/";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   118
		platforms = { "iOS" };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   119
		supports_preauth_uri = true;
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   120
		download = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   121
			buttons = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   122
				{
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
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: 4980
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: 4980
diff changeset
   125
					target = "_blank";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   126
				};
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   127
			};
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   128
		};
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   129
	};
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   130
	{
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   131
		name  = "Monal";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
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: 4980
diff changeset
   133
		image = "assets/logos/monal.svg";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   134
		link  = "https://monal-im.org/";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   135
		platforms = { "macOS" };
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   136
		supports_preauth_uri = true;
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   137
		download = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   138
			buttons = {
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   139
				{
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
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: 4980
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: 4980
diff changeset
   142
					target = "_blank";
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   143
				};
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   144
			};
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   145
		};
eb3f99d0e72d mod_register_apps: add monal iOS and macOS versions
tmolitor <thilo@eightysoft.de>
parents: 4980
diff changeset
   146
	};
4095
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
4117
c85af57e82e0 mod_register_apps: Add site_apps_show and site_apps_hide options (thanks meaz)
Matthew Wild <mwild1@gmail.com>
parents: 4115
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: 4115
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: 4115
diff changeset
   151
4095
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
4175
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
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: 4118
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: 4118
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: 4118
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: 4118
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: 4118
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: 4118
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: 4118
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: 4118
diff changeset
   171
		table.insert(site_apps, app_info);
4115
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4095
diff changeset
   172
	end
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4095
diff changeset
   173
end
ae2699f1cba9 mod_register_apps: Don't duplicate client entries on module reload
Matthew Wild <mwild1@gmail.com>
parents: 4095
diff changeset
   174
4175
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   175
local function remove_app(app_info)
4095
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();
4191
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4190
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: 4190
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: 4190
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: 4190
diff changeset
   180
		end
e2db07017332 mod_register_apps: Fix removal of apps from array on unload
Kim Alvefur <zash@zash.se>
parents: 4190
diff changeset
   181
	end
4175
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
diff changeset
   183
end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   184
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
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: 4118
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: 4118
diff changeset
   188
	end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   189
end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   190
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   191
local function module_app_added(event)
4634
635907a5d2c8 mod_register_apps: Reduce yellow yelling in log message
Kim Alvefur <zash@zash.se>
parents: 4191
diff changeset
   192
	module:log("info", "Adding %s", event.item.name)
4175
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
diff changeset
   194
end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   195
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
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: 4118
diff changeset
   198
end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   199
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
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: 4118
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: 4118
diff changeset
   203
		if v._source == module.name then
4676
0b084f63fed0 mod_register_apps: Fix removal on unload (thanks ibikk)
Kim Alvefur <zash@zash.se>
parents: 4634
diff changeset
   204
			remove_app(v);
4175
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   205
		end
4117
c85af57e82e0 mod_register_apps: Add site_apps_show and site_apps_hide options (thanks meaz)
Matthew Wild <mwild1@gmail.com>
parents: 4115
diff changeset
   206
	end
4095
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
});
4175
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   222
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
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: 4118
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: 4118
diff changeset
   226
end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   227
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
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: 4118
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: 4118
diff changeset
   230
end
85fa8c9e992a mod_register_apps: Add support for module:provides("site-app", app_info)
Matthew Wild <mwild1@gmail.com>
parents: 4118
diff changeset
   231