From 2e2851dc13d73352530dd4495c7e05603b2e520d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 23:38:38 +0200 Subject: Adding upstream version 2.1.2~dev0+20240219. Signed-off-by: Daniel Baumann --- deluge/ui/web/web.py | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 deluge/ui/web/web.py (limited to 'deluge/ui/web/web.py') diff --git a/deluge/ui/web/web.py b/deluge/ui/web/web.py new file mode 100644 index 0000000..ae428c7 --- /dev/null +++ b/deluge/ui/web/web.py @@ -0,0 +1,87 @@ +# +# Copyright (C) 2009 Damien Churchill +# +# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with +# the additional special exception to link portions of this program with the OpenSSL library. +# See LICENSE for more details. +# + +import logging + +from twisted.internet.error import CannotListenError + +from deluge.common import run_profiled +from deluge.ui.ui import UI + +log = logging.getLogger(__name__) + + +class Web(UI): + cmd_description = """Web-based user interface (http://localhost:8112)""" + + def __init__(self, *args, **kwargs): + super().__init__( + 'web', *args, description='Starts the Deluge Web interface', **kwargs + ) + self.__server = None + + group = self.parser.add_argument_group(_('Web Server Options')) + group.add_argument( + '-i', + '--interface', + metavar='', + action='store', + help=_('IP address for web server to listen on'), + ) + group.add_argument( + '-p', + '--port', + metavar='', + type=int, + action='store', + help=_('Port for web server to listen on'), + ) + group.add_argument( + '-b', + '--base', + metavar='', + action='store', + help=_('Set the base path that the ui is running on'), + ) + group.add_argument( + '--ssl', action='store_true', help=_('Force the web server to use SSL') + ) + group.add_argument( + '--no-ssl', + action='store_true', + help=_('Force the web server to disable SSL'), + ) + self.parser.add_process_arg_group() + + @property + def server(self): + return self.__server + + def start(self): + super().start() + + from deluge.ui.web import server + + self.__server = server.DelugeWeb(options=self.options) + + def run(): + try: + self.server.install_signal_handlers() + self.server.start() + except CannotListenError as ex: + log.error( + '%s \nCheck that deluge-web or webui plugin is not already running.', + ex, + ) + except Exception as ex: + log.exception(ex) + raise + + run_profiled( + run, output_file=self.options.profile, do_profile=self.options.profile + ) -- cgit v1.2.3