mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-02-18 08:33:41 +00:00
Add client information for modules
Added information for the following: -diaspora -ejabbered -infinoted -ikiwiki -jsxc -matrixsynapse -minetest -mumble -quassel -radicale -repro -restore -roundcube -shaarli -synchting -tor -shaarli -transmission -ttrss Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
This commit is contained in:
parent
98186e2c72
commit
823e06271f
@ -28,6 +28,7 @@ from plinth import service as service_module
|
||||
from plinth.client import web_client
|
||||
from plinth.menu import main_menu
|
||||
from plinth.modules.users import add_group
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 2
|
||||
@ -53,6 +54,7 @@ description = [
|
||||
|
||||
reserved_usernames = ['debian-deluged']
|
||||
|
||||
clients = clients
|
||||
web_clients = [web_client(name='Deluge', url='/deluge')]
|
||||
|
||||
|
||||
|
||||
34
plinth/modules/deluge/manifest.py
Normal file
34
plinth/modules/deluge/manifest.py
Normal file
@ -0,0 +1,34 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Deluge'),
|
||||
'description': _('Bittorrent client written in Python/PyGTK '),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'web',
|
||||
'relative_path': '/deluge'
|
||||
},
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package_name': 'deluge'
|
||||
}]
|
||||
}]
|
||||
@ -24,6 +24,7 @@ from plinth import actions, action_utils, frontpage, \
|
||||
service as service_module
|
||||
from plinth.errors import DomainNotRegisteredError
|
||||
from plinth.menu import main_menu
|
||||
from .manifest import clients
|
||||
|
||||
domain_name_file = "/etc/diaspora/domain_name"
|
||||
lazy_domain_name = None # To avoid repeatedly reading from file
|
||||
@ -69,6 +70,8 @@ description = [
|
||||
' federate with other diaspora* pods.')
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
|
||||
def init():
|
||||
"""Initialize the Diaspora module."""
|
||||
|
||||
50
plinth/modules/diaspora/manifest.py
Normal file
50
plinth/modules/diaspora/manifest.py
Normal file
@ -0,0 +1,50 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth.utils import format_lazy
|
||||
from . import get_configured_domain_name
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('dandelion*'),
|
||||
'description': _('It is an unofficial webview based client for the '
|
||||
'community-run, distributed social network diaspora*'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'os_version': '>4.2.0',
|
||||
'store_type': 'fdroid_store',
|
||||
'url': 'https://f-droid.org/repository/browse/?fdid=com'
|
||||
'.github.dfa.diaspora_android ',
|
||||
'fully_qualified_name': 'com.github.dfa.diaspora_android'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('diaspora*'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'web',
|
||||
'url': format_lazy('https://diaspora.{host}',
|
||||
host=get_configured_domain_name())
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -34,6 +34,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.signals import pre_hostname_change, post_hostname_change
|
||||
from plinth.signals import domainname_change
|
||||
from .manifest import clients
|
||||
from plinth.client import web_client
|
||||
|
||||
|
||||
@ -64,6 +65,8 @@ web_clients = [web_client(name='JSXC', url='/plinth/apps/jsxc'),
|
||||
web_client(name='XMPP client', url='http://xmpp.org/xmpp'
|
||||
'-software/clients')]
|
||||
|
||||
clients = clients
|
||||
|
||||
reserved_usernames = ['ejabberd']
|
||||
|
||||
service = None
|
||||
|
||||
132
plinth/modules/ejabberd/manifest.py
Normal file
132
plinth/modules/ejabberd/manifest.py
Normal file
@ -0,0 +1,132 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth.modules.jsxc import manifest as jsxc_manifest
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('yaxim'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'fully_qualified_name': 'org.yaxim.androidclient',
|
||||
'url': 'https://play.google.com/store/apps/details?id=org'
|
||||
'.yaxim.androidclient '
|
||||
}]
|
||||
},
|
||||
{
|
||||
'name': _('Bruno'),
|
||||
'description': _('Bruno is a themed version of the open source '
|
||||
'yaxim app.'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'fully_qualified_name': 'org.yaxim.bruno',
|
||||
'url': 'https://play.google.com/store/apps/details?id'
|
||||
'=org.yaxim.bruno '
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Chat secure - Encrypted Messenger'),
|
||||
'description': _('ChatSecure is a free and open source '
|
||||
'messaging app that features OTR encryption '
|
||||
'over XMPP. You can connect to an existing '
|
||||
'Google account, create new accounts on '
|
||||
'public XMPP servers (including via Tor), '
|
||||
'or even connect to your own server for '
|
||||
'extra security.'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'iOS',
|
||||
'store_type': 'apple_store',
|
||||
'url': 'https://itunes.apple.com/us/app/chatsecure'
|
||||
'/id464200063 '
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Conversations'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'url': 'https://play.google.com/store/apps/details?id'
|
||||
'=eu.siacs.conversations ',
|
||||
'fully_qualified_name': 'eu.siacs.conversations'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Dino'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Debian',
|
||||
'url': 'https://download.opensuse.org/repositories/network'
|
||||
':/messaging:/xmpp:/dino/Debian_9.0/amd64/dino_0.0'
|
||||
'~git178.9d8e1e8_amd64.deb',
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Gajim'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package_name': 'gajim'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows',
|
||||
'url': 'https://gajim.org/downloads/0.16/gajim-0.16.8-2.exe'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('OneTeam'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows',
|
||||
'url': 'https://download.process-one.net/oneteam/release'
|
||||
'-installers/OneTeam.msi'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'https://download.process-one.net/oneteam/release'
|
||||
'-installers/OneTeam.dmg '
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Linux',
|
||||
'url': 'https://download.process-one.net/oneteam/release'
|
||||
'-installers/oneteam.tar.bz2 '
|
||||
}
|
||||
]
|
||||
}
|
||||
].append(jsxc_manifest.clients)
|
||||
@ -29,6 +29,7 @@ from plinth import frontpage
|
||||
from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.client import web_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -58,6 +59,8 @@ description = [
|
||||
'permissions or add new users.'), box_name=_(cfg.box_name))
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
web_clients = [web_client(name='ikiwiki', url='/ikiwiki')]
|
||||
|
||||
def init():
|
||||
|
||||
28
plinth/modules/ikiwiki/manifest.py
Normal file
28
plinth/modules/ikiwiki/manifest.py
Normal file
@ -0,0 +1,28 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('ikiwiki'),
|
||||
'platforms': [{
|
||||
'type': 'web',
|
||||
'relative_url': '/ikiwiki'
|
||||
}]
|
||||
}
|
||||
]
|
||||
@ -30,6 +30,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.utils import format_lazy
|
||||
from plinth.views import ServiceView
|
||||
from .manifest import clients
|
||||
from plinth.client import desktop_client
|
||||
|
||||
|
||||
@ -57,6 +58,8 @@ description = [
|
||||
|
||||
desktop_clients = [desktop_client(name='Gobby', url='https://gobby.github.io/')]
|
||||
|
||||
clients = clients
|
||||
|
||||
|
||||
def init():
|
||||
"""Initialize the infinoted module."""
|
||||
|
||||
43
plinth/modules/infinoted/manifest.py
Normal file
43
plinth/modules/infinoted/manifest.py
Normal file
@ -0,0 +1,43 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth.utils import format_lazy
|
||||
from plinth import cfg
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Gobby'),
|
||||
'description': _('Gobby is a collaborative text editor'),
|
||||
'usage': format_lazy(_('start Gobby and select "Connect to Server" and '
|
||||
'enter your {box_name}\'s domain name.'),
|
||||
box_name=_(cfg.box_name)),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows',
|
||||
'url': 'http://releases.0x539.de/gobby/gobby-stable.exe'
|
||||
},
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package_name': 'gobby-infinote'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -27,6 +27,7 @@ import socket
|
||||
from plinth import frontpage
|
||||
from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -43,6 +44,8 @@ description = [
|
||||
'server running locally.'),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
service = None
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
31
plinth/modules/jsxc/manifest.py
Normal file
31
plinth/modules/jsxc/manifest.py
Normal file
@ -0,0 +1,31 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('JSXC'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package_name': 'libjs-jsxc'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -32,6 +32,7 @@ from plinth import frontpage
|
||||
from plinth import service as service_module
|
||||
from plinth.client import desktop_client, web_client, mobile_client
|
||||
from plinth.menu import main_menu
|
||||
from .manifest import clients
|
||||
|
||||
version = 2
|
||||
|
||||
@ -79,6 +80,8 @@ logger = logging.getLogger(__name__)
|
||||
SERVER_NAME_PATH = "/etc/matrix-synapse/conf.d/server_name.yaml"
|
||||
CONFIG_FILE_PATH = '/etc/matrix-synapse/homeserver.yaml'
|
||||
|
||||
clients = clients
|
||||
|
||||
|
||||
def init():
|
||||
"""Initialize the matrix-synapse module."""
|
||||
|
||||
70
plinth/modules/matrixsynapse/manifest.py
Normal file
70
plinth/modules/matrixsynapse/manifest.py
Normal file
@ -0,0 +1,70 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Riot'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'fully_qualified_name': 'im.vector.alpha',
|
||||
'url': 'https://play.google.com/store/apps/details?id=im'
|
||||
'.vector.alpha '
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'os_version': '>=6.0',
|
||||
'store_type': 'fdroid_store',
|
||||
'fully_qualified_name': 'im.vector.alpha',
|
||||
'url': 'https://f-droid.org/packages/im.vector.alpha/'
|
||||
},
|
||||
{
|
||||
'type': 'web',
|
||||
'url': 'https://riot.im/app/#/home'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'https://riot.im/download/desktop/install/macos'
|
||||
'/Riot-0.12.4.dmg'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows(32 bit)',
|
||||
'os_version': '>=7',
|
||||
'url': 'https://riot.im/download/desktop/install/win32/ia32/'
|
||||
'Riot%20Setup%200.12.4-ia32.exe'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows(64 bit)',
|
||||
'os_version': '>=7',
|
||||
'url': 'https://riot.im/download/desktop/install/win32/x64/Riot'
|
||||
'%20Setup%200.12.4.exe'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Debian/Ubuntu',
|
||||
'url': 'https://riot.im/packages/debian/'
|
||||
}
|
||||
]
|
||||
}]
|
||||
@ -32,6 +32,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.utils import format_lazy
|
||||
from plinth.client import desktop_client, mobile_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 2
|
||||
@ -59,6 +60,8 @@ description = [
|
||||
'is needed.'), box_name=_(cfg.box_name)),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
desktop_clients = [desktop_client(name='Minetest',
|
||||
url= 'https://www.minetest.net/downloads/')]
|
||||
|
||||
|
||||
53
plinth/modules/minetest/manifest.py
Normal file
53
plinth/modules/minetest/manifest.py
Normal file
@ -0,0 +1,53 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Minetest'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows(64-bit)',
|
||||
'os_version': 'XP, Vista, >=7',
|
||||
'url': 'https://github.com/minetest/minetest/releases'
|
||||
'/download/0.4.16/minetest-0.4.16-win64.zip '
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'fully_qualified_name': 'net.minetest.minetest',
|
||||
'url': 'https://play.google.com/store/apps/details?id=net'
|
||||
'.minetest.minetest '
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'fdroid_store',
|
||||
'fully_qualified_name': 'net.minetest.minetest',
|
||||
'url': 'https://f-droid.org/packages/net.minetest.minetest/ '
|
||||
},
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package_name': 'minetest'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -29,6 +29,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.views import ServiceView
|
||||
from plinth.client import desktop_client, mobile_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -52,6 +53,8 @@ description = [
|
||||
'from your desktop and Android devices are available.')
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
desktop_clients = [
|
||||
desktop_client(name='Mumble',url= 'https://wiki.mumble.info/wiki/Main_Page')]
|
||||
|
||||
|
||||
89
plinth/modules/mumble/manifest.py
Normal file
89
plinth/modules/mumble/manifest.py
Normal file
@ -0,0 +1,89 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Mumble'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows(32-bit)',
|
||||
'url': 'https://github.com/mumble-voip/mumble/releases'
|
||||
'/download/1.2.19/mumble-1.2.19.msi '
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows(64-bit)',
|
||||
'url': 'https://dl.mumble.info/mumble-1.3.0~2569~gd196a4b'
|
||||
'~snapshot.winx64.msi '
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'https://github.com/mumble-voip/mumble/releases'
|
||||
'/download/1.2.19/Mumble-1.2.19.dmg '
|
||||
},
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package_name': 'mumble'
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'iOS',
|
||||
'os_version': '>=8.0',
|
||||
'store_type': 'apple_store',
|
||||
'url': 'https://itunes.apple.com/us/app/mumble/id443472808'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Plumble'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'url': 'https://play.google.com/store/apps/details?id=com'
|
||||
'.morlunk.mumbleclient.free ',
|
||||
'fully_qualified_name': 'com.morlunk.mumbleclient'
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'fdroid_store',
|
||||
'url': 'https://play.google.com/store/apps/details?id=com'
|
||||
'.morlunk.mumbleclient.free ',
|
||||
'fully_qualified_name': 'com.morlunk.mumbleclient'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Mumblefly'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'iOS',
|
||||
'os_version': '>=7.0',
|
||||
'store_type': 'apple_store',
|
||||
'url': 'https://itunes.apple.com/dk/app/mumblefy/id858752232'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -31,6 +31,7 @@ from plinth.menu import main_menu
|
||||
from plinth.utils import format_lazy
|
||||
from plinth.views import ServiceView
|
||||
from plinth.client import mobile_client, desktop_client
|
||||
from .manifest import clients
|
||||
|
||||
version = 1
|
||||
|
||||
@ -61,6 +62,8 @@ description = [
|
||||
'are available.'),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
desktop_clients = [
|
||||
desktop_client(name='Quassel', url='http://quassel-irc.org/downloads')]
|
||||
|
||||
|
||||
50
plinth/modules/quassel/manifest.py
Normal file
50
plinth/modules/quassel/manifest.py
Normal file
@ -0,0 +1,50 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Quassel'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'http://quassel-irc.org/pub/QuasselClient_MacOSX'
|
||||
'-x86_64_0.12.4.dmg '
|
||||
},
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package_name': 'quassel-client'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Quassseldroid'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'url': 'https://play.google.com/store/apps/details?id=com'
|
||||
'.iskrembilen.quasseldroid',
|
||||
'fully_qualified_name': 'com.iskrembilen.quasseldroid'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -31,6 +31,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.utils import format_lazy
|
||||
from plinth.client import desktop_client, mobile_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -54,6 +55,8 @@ description = [
|
||||
'with a {box_name} login.'), box_name=_(cfg.box_name)),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
desktop_clients = [desktop_client(name='GNOME Calendar',
|
||||
url='https://wiki.gnome.org/Apps/Calendar'),
|
||||
desktop_client(name='Contacts',
|
||||
|
||||
66
plinth/modules/radicale/manifest.py
Normal file
66
plinth/modules/radicale/manifest.py
Normal file
@ -0,0 +1,66 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('DAVDroid'),
|
||||
'usage': _('Enter the URL of the Radicale server (e.g. '
|
||||
'http://localhost:5232) and your user name. DAVdroid will '
|
||||
'show all existing calendars and address books and you can '
|
||||
'create new.'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'url': 'https://play.google.com/store/apps/details?id=at'
|
||||
'.bitfire.davdroid',
|
||||
'fully_qualified_name': 'at.bitfire.davdroid'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('GNOME Calendar'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package-name': 'gnome-calendar'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Evolution'),
|
||||
'description': _('Evolution is a personal information management '
|
||||
'application that provides integrated mail, '
|
||||
'calendaring and address book functionality.'),
|
||||
'usage': _('In Evolution add a new calendar and address book '
|
||||
'respectively with WebDAV. Enter the URL of the Radicale '
|
||||
'server (e.g. http://localhost:5232) and your user name. '
|
||||
'Clicking on the search button will list the existing '
|
||||
'calendars and address books.'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian',
|
||||
'package-name': 'gnome-calendar'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -29,6 +29,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.views import ServiceView
|
||||
from plinth.client import desktop_client, mobile_client
|
||||
from .manifest import clients
|
||||
|
||||
version = 2
|
||||
|
||||
@ -61,6 +62,8 @@ description = [
|
||||
'service and re-enable it.'),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
desktop_clients = [desktop_client(name='Jitsi',url='https://jitsi.org/')]
|
||||
|
||||
mobile_clients = [
|
||||
|
||||
89
plinth/modules/repro/manifest.py
Normal file
89
plinth/modules/repro/manifest.py
Normal file
@ -0,0 +1,89 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Jitsi Meet'),
|
||||
'description': _('Jitsi is a set of open-source projects that allows '
|
||||
'you to easily build and deploy secure '
|
||||
'videoconferencing solutions. At the heart of Jitsi '
|
||||
'are Jitsi Videobridge and Jitsi Meet, which let you '
|
||||
'have conferences on the internet, while other '
|
||||
'projects in the community enable other features '
|
||||
'such as audio, dial-in, recording, '
|
||||
'and simulcasting.'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'fully_qualified_name': 'org.jitsi.meet',
|
||||
'url': 'https://play.google.com/store/apps/details?id=org'
|
||||
'.jitsi.meet '
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'iOS',
|
||||
'store_type': 'apple_store',
|
||||
'url': 'https://itunes.apple.com/in/app/jitsi-meet/id1165103905'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Linux',
|
||||
'url': 'https://download.jitsi.org/jitsi/debian/'
|
||||
},
|
||||
{
|
||||
'type': 'dnf',
|
||||
'os': 'Linux',
|
||||
'package_name': 'jitsi'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'https://download.jitsi.org/jitsi/macosx/jitsi-latest'
|
||||
'.dmg '
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows',
|
||||
'url': 'https://download.jitsi.org/jitsi/windows/jitsi-latest'
|
||||
'-x86.exe '
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'https://download.jitsi.org/jitsi/macosx/jitsi-latest'
|
||||
'.dmg '
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('CSipSimple'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'fully_qualified_name': 'com.csipsimple',
|
||||
'url': 'https://play.google.com/store/apps/details?id=com'
|
||||
'.csipsimple '
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -26,6 +26,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.utils import format_lazy
|
||||
from plinth.client import web_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -51,6 +52,8 @@ description = [
|
||||
'<a href=\'/restore/\'>reStore web-interface</a>.')
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
web_clients = [web_client(name='reStore web-interface', url='/restore')]
|
||||
|
||||
reserved_usernames = ['node-restore']
|
||||
|
||||
30
plinth/modules/restore/manifest.py
Normal file
30
plinth/modules/restore/manifest.py
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('reStore'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'web',
|
||||
'relative_url': '/restore'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -27,6 +27,7 @@ from plinth import frontpage
|
||||
from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.client import web_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -59,6 +60,8 @@ description = [
|
||||
'>https://www.google.com/settings/security/lesssecureapps</a>).'),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
web_clients = [web_client('Roundcube', '/roundcube')]
|
||||
|
||||
service = None
|
||||
|
||||
30
plinth/modules/roundcube/manifest.py
Normal file
30
plinth/modules/roundcube/manifest.py
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Roundcube'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'web',
|
||||
'relative_url': '/roundcube'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -27,6 +27,7 @@ from plinth import frontpage
|
||||
from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.client import web_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -46,6 +47,8 @@ description = [
|
||||
'visit.'),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
web_clients = [web_client(name='Shaarli', url='/shaarli')]
|
||||
|
||||
service = None
|
||||
|
||||
30
plinth/modules/shaarli/manifest.py
Normal file
30
plinth/modules/shaarli/manifest.py
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Shaarli'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'web',
|
||||
'relative_url': '/shaarli'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -29,6 +29,7 @@ from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.utils import format_lazy
|
||||
from plinth.client import desktop_client, mobile_client, web_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 1
|
||||
@ -59,6 +60,8 @@ description = [
|
||||
'also <a href="https://syncthing.net/">available</a>.'),
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
web_clients = [web_client(name='Syncthing', url='/syncthing')]
|
||||
|
||||
desktop_clients = [desktop_client(name='Syncthing',
|
||||
|
||||
67
plinth/modules/syncthing/manifest.py
Normal file
67
plinth/modules/syncthing/manifest.py
Normal file
@ -0,0 +1,67 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Syncthing'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'apt',
|
||||
'os': 'Debian/Ubuntu',
|
||||
'usage': _('For more usage information refer to <a '
|
||||
'href="https://apt.syncthing.net/>Syncthing</a>'),
|
||||
'package_name': 'syncthing'
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows(64-bit)',
|
||||
'url': 'https://github.com/syncthing/syncthing/releases'
|
||||
'/download/v0.14.38/syncthing-windows-amd64-v0.14.38'
|
||||
'.zip '
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'https://github.com/syncthing/syncthing/releases'
|
||||
'/download/v0.14.38/syncthing-macosx-amd64-v0.14.38'
|
||||
'.tar.gz '
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'fully_qualified_name': 'com.nutomic.syncthingandroid',
|
||||
'url': 'https://play.google.com/store/apps/details?id=com'
|
||||
'.nutomic.syncthingandroid '
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_name': 'fdroid_store',
|
||||
'fully_qualified_name': 'com.nutomic.syncthingandroid',
|
||||
'url': 'https://f-droid.org/packages/com.nutomic'
|
||||
'.syncthingandroid/ '
|
||||
},
|
||||
{
|
||||
'type': 'web',
|
||||
'relative_url': '/syncthing'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -29,6 +29,7 @@ from plinth.menu import main_menu
|
||||
from plinth.modules.names import SERVICES
|
||||
from plinth.signals import domain_added, domain_removed
|
||||
from plinth.client import desktop_client, mobile_client
|
||||
from .manifest import clients
|
||||
|
||||
from . import utils
|
||||
|
||||
@ -53,6 +54,8 @@ description = [
|
||||
'Tor Browser</a>.')
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
desktop_clients = [
|
||||
desktop_client(name='Tor Browser',
|
||||
url='https://www.torproject.org/download/download-easy'
|
||||
|
||||
74
plinth/modules/tor/manifest.py
Normal file
74
plinth/modules/tor/manifest.py
Normal file
@ -0,0 +1,74 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
version = '7.0.6'
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Tor Browser'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Windows',
|
||||
'os_version': 'Windows XP, Vista, >=7',
|
||||
'url': 'https://www.torproject.org/dist/torbrowser/{v}'
|
||||
'/torbrowser-install-{v}_en-US.exe '.format(v=version)
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Linux(64-bit)',
|
||||
'url': 'https://www.torproject.org/dist/torbrowser/{v}/tor'
|
||||
'-browser-linux64-{v} _en-US.tar.xz'.format(v=version)
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'Linux(32-bit)',
|
||||
'url': 'https://www.torproject.org/dist/torbrowser/{v}/tor'
|
||||
'-browser-linux32-{v}_en-US.tar.xz'.format(v=version)
|
||||
},
|
||||
{
|
||||
'type': 'download',
|
||||
'os': 'macOS',
|
||||
'url': 'https://www.torproject.org/dist/torbrowser/{v}'
|
||||
'/TorBrowser-{v}-osx64_en-US.dmg'.format(v=version)
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
'name': _('Orbot: Proxy with Tor'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play_store',
|
||||
'url': 'https://play.google.com/store/apps/details?id=org'
|
||||
'.torproject.android',
|
||||
'fully_qualified_name': 'org.torproject.android'
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'fdroid_store',
|
||||
'url': 'https://play.google.com/store/apps/details?id=org'
|
||||
'.torproject.android',
|
||||
'fully_qualified_name': 'org.torproject.android'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -24,10 +24,11 @@ from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from plinth import service as service_module
|
||||
from plinth import action_utils, actions, frontpage
|
||||
from plinth.client import web_client
|
||||
from plinth.menu import main_menu
|
||||
from plinth.modules.users import add_group
|
||||
|
||||
from .manifest import clients
|
||||
|
||||
version = 2
|
||||
|
||||
managed_services = ['transmission-daemon']
|
||||
@ -45,7 +46,7 @@ description = [
|
||||
_('Access the web interface at <a href="/transmission">/transmission</a>.')
|
||||
]
|
||||
|
||||
web_clients = [web_client(name='Transmission', url='/transmission')]
|
||||
clients = clients
|
||||
|
||||
reserved_usernames = ['debian-transmission']
|
||||
|
||||
@ -61,14 +62,10 @@ def init():
|
||||
global service
|
||||
setup_helper = globals()['setup_helper']
|
||||
if setup_helper.get_state() != 'needs-setup':
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
name,
|
||||
ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
enable=enable,
|
||||
disable=disable)
|
||||
service = service_module.Service(managed_services[0], name, ports=[
|
||||
'http', 'https'
|
||||
], is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
|
||||
if is_enabled():
|
||||
add_shortcut()
|
||||
@ -82,41 +79,32 @@ def setup(helper, old_version=None):
|
||||
'rpc-whitelist-enabled': False,
|
||||
'rpc-authentication-required': False
|
||||
}
|
||||
helper.call(
|
||||
'post',
|
||||
actions.superuser_run,
|
||||
'transmission', ['merge-configuration'],
|
||||
input=json.dumps(new_configuration).encode())
|
||||
helper.call('post', actions.superuser_run, 'transmission',
|
||||
['merge-configuration'],
|
||||
input=json.dumps(new_configuration).encode())
|
||||
|
||||
helper.call('post', actions.superuser_run, 'transmission', ['enable'])
|
||||
global service
|
||||
if service is None:
|
||||
service = service_module.Service(
|
||||
managed_services[0],
|
||||
name,
|
||||
ports=['http', 'https'],
|
||||
is_external=True,
|
||||
is_enabled=is_enabled,
|
||||
enable=enable,
|
||||
disable=disable)
|
||||
service = service_module.Service(managed_services[0], name, ports=[
|
||||
'http', 'https'
|
||||
], is_external=True, is_enabled=is_enabled, enable=enable,
|
||||
disable=disable)
|
||||
helper.call('post', service.notify_enabled, None, True)
|
||||
helper.call('post', add_shortcut)
|
||||
add_group('bit-torrent')
|
||||
|
||||
|
||||
def add_shortcut():
|
||||
frontpage.add_shortcut(
|
||||
'transmission',
|
||||
name,
|
||||
short_description=short_description,
|
||||
url='/transmission',
|
||||
login_required=True)
|
||||
frontpage.add_shortcut('transmission', name,
|
||||
short_description=short_description,
|
||||
url='/transmission', login_required=True)
|
||||
|
||||
|
||||
def is_enabled():
|
||||
"""Return whether the module is enabled."""
|
||||
return (action_utils.service_is_enabled('transmission-daemon')
|
||||
and action_utils.webserver_is_enabled('transmission-plinth'))
|
||||
return (action_utils.service_is_enabled('transmission-daemon') and
|
||||
action_utils.webserver_is_enabled('transmission-plinth'))
|
||||
|
||||
|
||||
def enable():
|
||||
@ -138,7 +126,7 @@ def diagnose():
|
||||
results.append(action_utils.diagnose_port_listening(9091, 'tcp4'))
|
||||
results.append(action_utils.diagnose_port_listening(9091, 'tcp6'))
|
||||
results.extend(
|
||||
action_utils.diagnose_url_on_all(
|
||||
'https://{host}/transmission', check_certificate=False))
|
||||
action_utils.diagnose_url_on_all('https://{host}/transmission',
|
||||
check_certificate=False))
|
||||
|
||||
return results
|
||||
|
||||
30
plinth/modules/transmission/manifest.py
Normal file
30
plinth/modules/transmission/manifest.py
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('Transmission'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'web',
|
||||
'relative_url': '/transmission'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@ -29,6 +29,7 @@ from plinth import frontpage
|
||||
from plinth import service as service_module
|
||||
from plinth.menu import main_menu
|
||||
from plinth.client import web_client, mobile_client
|
||||
from .manifest import clients
|
||||
|
||||
|
||||
version = 2
|
||||
@ -58,6 +59,8 @@ description = [
|
||||
'the URL <a href="/tt-rss-app/">/tt-rss-app</a> for connecting.'))
|
||||
]
|
||||
|
||||
clients = clients
|
||||
|
||||
web_clients = [web_client(name='TT-RSS', url='/tt-rss')]
|
||||
|
||||
mobile_clients = [
|
||||
|
||||
45
plinth/modules/ttrss/manifest.py
Normal file
45
plinth/modules/ttrss/manifest.py
Normal file
@ -0,0 +1,45 @@
|
||||
#
|
||||
# This file is part of Plinth.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
clients = [
|
||||
{
|
||||
'name': _('TT-RSS Reader'),
|
||||
'platforms': [
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'google_play-store',
|
||||
'url': 'https://play.google.com/store/apps/details?id=org'
|
||||
'.ttrssreader',
|
||||
'fully_qualified_name': 'org.ttrssreader'
|
||||
},
|
||||
{
|
||||
'type': 'store',
|
||||
'os': 'Android',
|
||||
'store_type': 'fdroid_store',
|
||||
'url': 'https://f-droid.org/packages/org.ttrssreader/',
|
||||
'fully_qualified_name': 'org.ttrssreader'
|
||||
},
|
||||
{
|
||||
'type': 'web',
|
||||
'relative_url': '/tt-rss'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
Loading…
x
Reference in New Issue
Block a user