queue+add logging

This commit is contained in:
Martijn Voncken 2008-02-19 18:27:28 +00:00
parent 3d76649b78
commit 35446801c6
5 changed files with 46 additions and 12 deletions

View File

@ -125,8 +125,13 @@ config.register_block('deluge','daemon', Daemon)
class Plugins(forms.Form): class Plugins(forms.Form):
title = _("Enabled Plugins") title = _("Enabled Plugins")
_choices = [(p,p) for p in ws.proxy.get_available_plugins()] try:
enabled_plugins = forms.MultipleChoice(_(""), _choices) _choices = [(p,p) for p in ws.proxy.get_available_plugins()]
enabled_plugins = forms.MultipleChoice(_(""), _choices)
except:
ws.log.error("Not connected to daemon, Unable to load plugin-list")
#TODO: reload on reconnect!
def initial_data(self): def initial_data(self):
return {'enabled_plugins':ws.proxy.get_enabled_plugins()} return {'enabled_plugins':ws.proxy.get_enabled_plugins()}

View File

@ -84,6 +84,7 @@ urls = (
"/home", "home", "/home", "home",
"/about", "about", "/about", "about",
"/logout", "logout", "/logout", "logout",
"/connect","connect",
#remote-api: #remote-api:
"/remote/torrent/add(.*)", "remote_torrent_add", "/remote/torrent/add(.*)", "remote_torrent_add",
"/json/(.*)","json_api", "/json/(.*)","json_api",
@ -173,6 +174,7 @@ class torrent_info_inner:
#next 4 classes: a pattern is emerging here. #next 4 classes: a pattern is emerging here.
#todo: DRY (in less lines of code) #todo: DRY (in less lines of code)
#deco.deluge_command, or a subclass?
class torrent_start: class torrent_start:
@deco.check_session @deco.check_session
@deco.torrent_ids @deco.torrent_ids
@ -226,7 +228,7 @@ class torrent_queue_up:
torrent_list.sort(lambda x, y : x.queue - y.queue) torrent_list.sort(lambda x, y : x.queue - y.queue)
torrent_ids = [t.id for t in torrent_list] torrent_ids = [t.id for t in torrent_list]
for torrent_id in torrent_ids: for torrent_id in torrent_ids:
ws.proxy.queue_queue_up(torrent_id) ws.async_proxy.get_core().call("queue_queue_up", None, torrent_id)
do_redirect() do_redirect()
class torrent_queue_down: class torrent_queue_down:
@ -237,7 +239,7 @@ class torrent_queue_down:
torrent_list.sort(lambda x, y : x.queue - y.queue) torrent_list.sort(lambda x, y : x.queue - y.queue)
torrent_ids = [t.id for t in torrent_list] torrent_ids = [t.id for t in torrent_list]
for torrent_id in reversed(torrent_ids): for torrent_id in reversed(torrent_ids):
ws.proxy.queue_queue_down(torrent_id) ws.async_proxy.get_core().call("queue_queue_down", None, torrent_id)
do_redirect() do_redirect()
class torrent_files: class torrent_files:
@ -309,12 +311,35 @@ class logout:
def GET(self): def GET(self):
return self.POST() return self.POST()
#WRONG, but makes it easyer to link with <a href> in the status-bar #WRONG, but makes it easyer to link with <a href> in the status-bar
@deco.check_session @deco.check_session
def POST(self, name): def POST(self, name):
end_session() end_session()
seeother('/login') seeother('/login')
class connect:
@deco.deluge_page
def GET(self, name):
#if ws.proxy.connected():
# error = _("Not Connected to a daemon")
#else:
error = None
connect_list = ["http://localhost:58846"]
return render.connect(connect_list, error)
def POST(self):
vars = web.input(uri = None, other_uri = None)
uri = ''
if vars.uri == 'other_uri':
if not vars.other:
return error_page(_("no uri"))
url = vars.other
else:
uri = vars.uri
#TODO: more error-handling
ws.init_06(uri)
do_redirect()
#other stuff: #other stuff:
class remote_torrent_add: class remote_torrent_add:
""" """

View File

@ -24,7 +24,7 @@ $for torrent in torrent_list:
<input type="image" <input type="image"
src="/static/images/$(torrent.calc_state_str)16.png" src="/static/images/$(torrent.calc_state_str)16.png"
name="pauseresume" value="submit" /></form></td> name="pauseresume" value="submit" /></form></td>
<td>$torrent.queue_pos</td> <td>$torrent.queue</td>
<td style="width:100px; overflow:hidden;white-space: nowrap"> <td style="width:100px; overflow:hidden;white-space: nowrap">
<a href="/torrent/info/$torrent.id" > <a href="/torrent/info/$torrent.id" >
$(crop(torrent.name, 40))</a></td> $(crop(torrent.name, 40))</a></td>

View File

@ -55,7 +55,9 @@ class OptionsForm(forms.Form):
default_private = forms.CheckBox(_('Set Private Flag')) default_private = forms.CheckBox(_('Set Private Flag'))
def initial_data(self): def initial_data(self):
return ws.proxy.get_config() data = ws.proxy.get_config()
ws.log.debug("add:Init options with:%s" % data)
return data
class AddForm(forms.Form): class AddForm(forms.Form):
url = forms.CharField(label=_("Url"), required=False, url = forms.CharField(label=_("Url"), required=False,
@ -71,7 +73,7 @@ class torrent_add:
def add_page(self,error = None): def add_page(self,error = None):
#form_data = utils.get_newforms_data(AddForm) #form_data = utils.get_newforms_data(AddForm)
ws.log.debug("add-page")
#TODO: CLEANUP!!! #TODO: CLEANUP!!!
vars = web.input(url = None) vars = web.input(url = None)
form_data = {'url':vars.url} form_data = {'url':vars.url}
@ -79,6 +81,7 @@ class torrent_add:
options_data = None options_data = None
if error: if error:
options_data = utils.get_newforms_data(OptionsForm) options_data = utils.get_newforms_data(OptionsForm)
ws.log.debug("add:(error-state):Init options with:%s" % options_data)
return render.torrent_add(AddForm(form_data),OptionsForm(options_data), error) return render.torrent_add(AddForm(form_data),OptionsForm(options_data), error)
@deco.deluge_page @deco.deluge_page
@ -92,7 +95,6 @@ class torrent_add:
allows: allows:
*posting of url *posting of url
*posting file-upload *posting file-upload
*posting of data as string(for greasemonkey-private)
""" """
options_form = OptionsForm(utils.get_newforms_data(OptionsForm)) options_form = OptionsForm(utils.get_newforms_data(OptionsForm))
@ -115,11 +117,13 @@ class torrent_add:
return return
if vars.url: if vars.url:
ws.proxy.add_torrent_url(vars.url,options) ws.proxy.add_torrent_url(vars.url,options)
ws.log.debug("add-url:options :%s" % options)
utils.do_redirect() utils.do_redirect()
elif torrent_name: elif torrent_name:
data_b64 = base64.b64encode(torrent_data) data_b64 = base64.b64encode(torrent_data)
#b64 because of strange bug-reports related to binary data #b64 because of strange bug-reports related to binary data
ws.proxy.add_torrent_filecontent(vars.torrent.filename, data_b64, options) ws.proxy.add_torrent_filecontent(vars.torrent.filename, data_b64, options)
ws.log.debug("add-file:options :%s" % options)
utils.do_redirect() utils.do_redirect()
else: else:
print self.add_page(error = _("No data")) print self.add_page(error = _("No data"))

View File

@ -127,7 +127,7 @@ def get_stats():
ws.async_proxy.force_call(block=True) ws.async_proxy.force_call(block=True)
ws.log.debug(str(stats)) #ws.log.debug(str(stats))
stats.download_rate = fspeed(stats.download_rate) stats.download_rate = fspeed(stats.download_rate)
stats.upload_rate = fspeed(stats.upload_rate) stats.upload_rate = fspeed(stats.upload_rate)
@ -157,10 +157,10 @@ def enhance_torrent_status(torrent_id,status):
for key in TORRENT_KEYS: for key in TORRENT_KEYS:
if not key in status: if not key in status:
status[key] = 0 status[key] = 0
ws.log.warning('torrent_status:empty key in status:%s' % key) #ws.log.warning('torrent_status:empty key in status:%s' % key)
elif status[key] == None: elif status[key] == None:
status[key] = 0 status[key] = 0
ws.log.warning('torrent_status:None key in status:%s' % key) #ws.log.warning('torrent_status:None key in status:%s' % key)
if status.tracker == 0: if status.tracker == 0: