From b60dc2d4caf13206cc8b64f03ded363618641c62 Mon Sep 17 00:00:00 2001 From: Damien Churchill Date: Sun, 19 Apr 2009 13:46:11 +0000 Subject: [PATCH] start new ui class --- deluge/ui/ui.py | 44 +++++++++++++++++++++++++++++++++++++++ deluge/ui/web/__init__.py | 1 + deluge/ui/web/webui.py | 33 ++++++++++++++++++++++++----- setup.py | 3 +++ 4 files changed, 76 insertions(+), 5 deletions(-) diff --git a/deluge/ui/ui.py b/deluge/ui/ui.py index 5aaf00dfa..821c08da8 100644 --- a/deluge/ui/ui.py +++ b/deluge/ui/ui.py @@ -22,6 +22,8 @@ # Boston, MA 02110-1301, USA. # +from optparse import OptionParser, OptionGroup +import deluge.common import deluge.configmanager from deluge.log import LOG as log @@ -30,6 +32,48 @@ DEFAULT_PREFS = { "default_ui": "gtk" } +class _UI(object): + + def __init__(self, name="gtk"): + log.debug("NewUI init...") + self.__name = name + + usage="%prog [options] [actions]", + + self.__parser = OptionParser(version=deluge.common.get_version()) + + group = OptionGroup(self.parser, "Common Options") + group.add_option("-c", "--config", dest="config", + help="Set the config folder location", action="store", type="str") + group.add_option("-l", "--logfile", dest="logfile", + help="Output to designated logfile instead of stdout", action="store", type="str") + group.add_option("-a", "--args", dest="args", + help="Arguments to pass to UI, -a '--option args'", action="store", type="str") + group.add_option("-L", "--loglevel", dest="loglevel", + help="Set the log level: none, info, warning, error, critical, debug", action="store", type="str") + group.add_option("-q", "--quiet", dest="quiet", + help="Sets the log level to 'none', this is the same as `-L none`", action="store_true", default=False) + self.parser.add_option_group(group) + + @property + def name(self): + return self.__name + + @property + def parser(self): + return self.__parser + + @property + def options(self): + return self.__options + + @property + def args(self): + return self._args + + def start(self): + (self.__options, self.__args) = self.parser.parse_args() + class UI: def __init__(self, options, args, ui_args): log.debug("UI init..") diff --git a/deluge/ui/web/__init__.py b/deluge/ui/web/__init__.py index e69de29bb..abf95b2e3 100644 --- a/deluge/ui/web/__init__.py +++ b/deluge/ui/web/__init__.py @@ -0,0 +1 @@ +from webui import start \ No newline at end of file diff --git a/deluge/ui/web/webui.py b/deluge/ui/web/webui.py index dbb093596..32dc7dfc8 100644 --- a/deluge/ui/web/webui.py +++ b/deluge/ui/web/webui.py @@ -22,9 +22,32 @@ # Boston, MA 02110-1301, USA. # +import server +from deluge.ui.ui import _UI +from optparse import OptionGroup -class WebUI: - def __init__(self, args): - import server - deluge_web = server.DelugeWeb() - deluge_web.start() \ No newline at end of file +class Web(_UI): + + help = """Starts the Deluge web interface""" + + def __init__(self): + super(Web, self).__init__() + self.__server = server.DelugeWeb() + + group = OptionGroup(self.parser, "Web Options") + group.add_option("-p", "--port", dest="port", type="int", + help="Sets the port to be used for the webserver", + action="store", default=None) + self.parser.add_option_group(group) + + @property + def server(self): + return self.__server + + def start(self): + super(Web, self).start() + if self.options.port: self.server.port = self.options.port + self.server.start() + +web = Web() +start = web.start \ No newline at end of file diff --git a/setup.py b/setup.py index 4b26946fb..c4d53231d 100644 --- a/setup.py +++ b/setup.py @@ -361,6 +361,9 @@ setup( entry_points = """ [console_scripts] deluge = deluge.main:start_ui + deluge-console = deluge.ui.console:start + deluge-gtk = deluge.ui.gtkui:start + deluge-web = deluge.ui.web:start deluged = deluge.main:start_daemon """, ext_package = "deluge",