Sounds like you could benefit from some sort of QoS solution. Make bittorrent traffic low priority at the router level. It's a bit more involved than speed limiting, but it's the 'proper' solution to a problem like this.F for Fragging wrote:Thank you very much for your work on this mvoncken. However, for my use case I expected a feature which is not present in this plugin, controlling the download and upload speeds of Deluge.
My situation is as follows, in my house my brother's PC and my PC are both connected to a router for internet access. Unfortunately my router (a Thomson SpeedTouch 546) doesn't share the bandwith equally between our PC's, if I start a Bittorrent download without limiting the speed, it will take all the bandwith of the connection. If my brother happens to be gaming online when I do that, he gets massive lag of course. I was hoping to use the web interface plugin so that he can limit the speeds of Deluge on my PC if he wants to start playing online. It's unfortunate that you can't spend much time on developing new features anymore mvoncken, but it would be great if you could find some time to implement speed limiting.
WebUi Plugin 0.5
Re: WebUi Plugin
Re: WebUi Plugin
Hmm....no one have this problem?abubin wrote:I have deluge setup to download files to my own download folder. But when I add files using webui, the files will default to /root folder. Is this a bug or am i missing something?
Re: WebUi Plugin
The current webui has separate prefs for download location and torrent location because they might not have been set in the main prefs dialog.abubin wrote:Hmm....no one have this problem?abubin wrote:I have deluge setup to download files to my own download folder. But when I add files using webui, the files will default to /root folder. Is this a bug or am i missing something?
Just check the preferences of the webui plugin.
I will remove those prefs in the future.
dev: webui, core, labels | irc:vonck7 |
Re: WebUi Plugin
It looks like this was brought up in the beginning of the thread but just to confirm when adding a torrent via url the page errors out and the torrent is not added. if you'd like the error page or any other information I'd be glad to post it.
Re: WebUi Plugin
Please test using deluge 0.5.6RC1ids wrote:It looks like this was brought up in the beginning of the thread but just to confirm when adding a torrent via url the page errors out and the torrent is not added. if you'd like the error page or any other information I'd be glad to post it.
Many people have no problems adding an URL so I'd like to know:
*python-version. (python --version)
*linux distribution
*dbus version
*python traceback.
Edit : added a really cool and improved error-page in rev.102
dev: webui, core, labels | irc:vonck7 |
Re: WebUi Plugin
I am using rc1. When I am home I can get you the rest of the info.
I do know it is feisty and as of last night up to date with their repositories.
I do know it is feisty and as of last night up to date with their repositories.
Re: WebUi Plugin
Posted this in support thread but was requested to post here instead. So here goes....
I started webui with these settings :
port number : 8112
password : password
template : deluge
button style : deluge
download directory : \download\deluge
torrent directory : \download\torrent
cache templates : checked
Here is my system :
Fedora Core 6
Python 2.4.4
dbus-1.0.1-12.fc6
When I enable webui plugin, I do see this in the running terminal :
Then when I tried to access webui, I can open the page to key in the password but once I login, I get lots of script error and here they are :
I started webui with these settings :
port number : 8112
password : password
template : deluge
button style : deluge
download directory : \download\deluge
torrent directory : \download\torrent
cache templates : checked
Here is my system :
Fedora Core 6
Python 2.4.4
dbus-1.0.1-12.fc6
When I enable webui plugin, I do see this in the running terminal :
start Webui(in process)..
http://0.0.0.0:8112/
webserver: kill 730
start Webui(in process)..
Applying preferences
http://0.0.0.0:8112/
Then when I tried to access webui, I can open the page to key in the password but once I login, I get lots of script error and here they are :
dbus_bindings.DBusException at /index
Message did not receive a reply (timeout by message bus)
Python dbus_bindings.pyx in dbus_bindings.Connection.send_with_reply_and_block, line 454
Web GET http://192.168.10.222:8112/index
------------
Traceback (innermost first)
* dbus_bindings.pyx in dbus_bindings.Connection.send_with_reply_and_block
-----------
▶ Local vars
Variable Value
Array
<class 'dbus_bindings.Array'>
BUS_SESSION
0
BUS_STARTER
2
BUS_SYSTEM
1
Boolean
<class 'dbus_bindings.Boolean'>
Byte
<class 'dbus_bindings.Byte'>
ByteArray
<class 'dbus_bindings.ByteArray'>
Connection
<type 'dbus_bindings.Connection'>
ConnectionError
<class dbus_bindings.ConnectionError at 0xb7b5d29c>
DBUS_START_REPLY_ALREADY_RUNNING
1
DBUS_START_REPLY_SUCCESS
0
DBusException
<class dbus_bindings.DBusException at 0xb7b5d26c>
DICT_ENTRY_BEGIN
123
DICT_ENTRY_END
125
Dictionary
<class 'dbus_bindings.Dictionary'>
Double
<class 'dbus_bindings.Double'>
EmptyMessage
<class 'dbus_bindings.EmptyMessage'>
Error
<class 'dbus_bindings.Error'>
HANDLER_RESULT_HANDLED
0
HANDLER_RESULT_NEED_MEMORY
2
HANDLER_RESULT_NOT_YET_HANDLED
1
Int16
<class 'dbus_bindings.Int16'>
Int32
<class 'dbus_bindings.Int32'>
Int64
<class 'dbus_bindings.Int64'>
MESSAGE_TYPE_ERROR
3
MESSAGE_TYPE_INVALID
0
MESSAGE_TYPE_METHOD_CALL
1
MESSAGE_TYPE_METHOD_RETURN
2
MESSAGE_TYPE_SIGNAL
4
Message
<type 'dbus_bindings.Message'>
MessageIter
<type 'dbus_bindings.MessageIter'>
MethodCall
<class 'dbus_bindings.MethodCall'>
MethodReturn
<class 'dbus_bindings.MethodReturn'>
NAME_FLAG_ALLOW_REPLACEMENT
1
NAME_FLAG_DO_NOT_QUEUE
4
NAME_FLAG_REPLACE_EXISTING
2
ObjectPath
<class 'dbus_bindings.ObjectPath'>
PendingCall
<type 'dbus_bindings.PendingCall'>
RELEASE_NAME_REPLY_NON_EXISTENT
2
RELEASE_NAME_REPLY_NOT_OWNER
3
RELEASE_NAME_REPLY_RELEASED
1
REQUEST_NAME_REPLY_ALREADY_OWNER
4
REQUEST_NAME_REPLY_EXISTS
3
REQUEST_NAME_REPLY_IN_QUEUE
2
REQUEST_NAME_REPLY_PRIMARY_OWNER
1
STRUCT_BEGIN
40
STRUCT_END
41
Server
<type 'dbus_bindings.Server'>
Signal
<class 'dbus_bindings.Signal'>
Signature
<class 'dbus_bindings.Signature'>
SignatureIter
<class 'dbus_bindings.SignatureIter'>
String
<class 'dbus_bindings.String'>
Struct
<class 'dbus_bindings.Struct'>
TYPE_ARRAY
97
TYPE_BOOLEAN
98
TYPE_BYTE
121
TYPE_DICT_ENTRY
101
TYPE_DOUBLE
100
TYPE_INT16
110
TYPE_INT32
105
TYPE_INT64
120
TYPE_INVALID
0
TYPE_OBJECT_PATH
111
TYPE_SIGNATURE
103
TYPE_STRING
115
TYPE_STRUCT
114
TYPE_UINT16
113
TYPE_UINT32
117
TYPE_UINT64
116
TYPE_VARIANT
118
UInt16
<class 'dbus_bindings.UInt16'>
UInt32
<class 'dbus_bindings.UInt32'>
UInt64
<class 'dbus_bindings.UInt64'>
Variant
<class dbus_bindings.Variant at 0xb7b5d2cc>
VariantSignature
<class 'dbus_bindings.VariantSignature'>
Watch
<type 'dbus_bindings.Watch'>
__builtins__
<module '__builtin__' (built-in)>
__doc__
None
__file__
'/usr/lib/python2.4/site-packages/dbus/dbus_bindings.so'
__name__
'dbus.dbus_bindings'
bus_add_match
<built-in function bus_add_match>
bus_get
<built-in function bus_get>
bus_get_unique_name
<built-in function bus_get_unique_name>
bus_get_unix_user
<built-in function bus_get_unix_user>
bus_name_has_owner
<built-in function bus_name_has_owner>
bus_register
<built-in function bus_register>
bus_release_name
<built-in function bus_release_name>
bus_remove_match
<built-in function bus_remove_match>
bus_request_name
<built-in function bus_request_name>
bus_start_service_by_name
<built-in function bus_start_service_by_name>
# /usr/lib/python2.4/site-packages/dbus/proxies.py in __call__
94. if ignore_reply:
95. result = self._connection.send(message)
96. args_tuple = (result,)
97. elif reply_handler:
98. result = self._connection.send_with_reply_handlers(message, timeout, reply_handler, error_handler)
99. args_tuple = result
100. else:
101. reply_message = self._connection.send_with_reply_and_block(message, timeout) ...
102. args_tuple = reply_message.get_args_list()
103.
104. if len(args_tuple) == 0:
105. return
106. elif len(args_tuple) == 1:
107. return args_tuple[0]
▶ Local vars
Variable Value
args
()
dbus_interface
None
error_handler
None
ignore_reply
False
introspect_sig
None
iter
<dbus_bindings.MessageIter object at 0xb7aa4554>
key
'get_torrent_state'
keywords
{}
message
<dbus_bindings.MethodCall object at 0xb7ab30cc>
reply_handler
None
self
<dbus.proxies.ProxyMethod instance at 0xb7ab15cc>
timeout
-1
tmp_iface
''
# /usr/lib/python2.4/site-packages/dbus/proxies.py in __call__
17. if keywords.has_key('reply_handler'):
18. reply_handler = keywords['reply_handler']
19.
20. #block for now even on async
21. # FIXME: put ret in async queue in future if we have a reply handler
22.
23. self._proxy_method._proxy._pending_introspect.block()
24. ret = self._proxy_method (*args, **keywords) ...
25.
26. return ret
27.
28. class ProxyMethod:
29. """A proxy Method.
30.
▶ Local vars
Variable Value
args
()
keywords
{}
reply_handler
None
self
<dbus.proxies.DeferedMethod instance at 0xb7ab15ac>
# /usr/share/deluge/plugins/WebUi/deluge_webserver.py in GET
145. class index:
146. "page containing the torrent list."
147. @auto_refreshed
148. @deluge_page
149. def GET(self, name):
150. vars = web.input(sort=None, order=None)
151.
152. status_rows = [get_torrent_status(torrent_id) ...
153. for torrent_id in ws.proxy.get_torrent_state()]
154.
155. #sorting:
156. if vars.sort:
157. status_rows.sort(key=attrgetter(vars.sort))
158. if vars.order == 'up':
▶ Local vars
Variable Value
_[1]
[]
name
''
self
<deluge_webserver.index instance at 0xb7ab14cc>
vars
<Storage {'sort': None, 'order': None}>
# /usr/share/deluge/plugins/WebUi/webserver_framework.py in deco
95. """
96. add http headers
97. print result of func
98. """
99. def deco(self, name=None):
100. web.header("Content-Type", "text/html; charset=utf-8")
101. web.header("Cache-Control", "no-cache, must-revalidate")
102. res = func(self, name) ...
103. print res
104. return deco
105.
106. def check_session(func):
107. """
108. a decorator
▶ Local vars
Variable Value
func
<function GET at 0xb7aade2c>
name
''
self
<deluge_webserver.index instance at 0xb7ab14cc>
# /usr/share/deluge/plugins/WebUi/webserver_framework.py in deco
109. return func if session is valid, else redirect to login page.
110. """
111. def deco(self, name):
112. vars = web.input(redir_after_login=None)
113.
114. ck = cookies()
115. if ck.has_key("session_id") and ck["session_id"] in SESSIONS:
116. return func(self, name) #ok, continue.. ...
117. elif vars.redir_after_login:
118. seeother(url("/login",redir=self_url()))
119. else:
120. seeother("/login") #do not continue, and redirect to login page
121. return deco
122.
▶ Local vars
Variable Value
ck
<Storage {'session_id': '0.470930477011'}>
func
<function deco at 0xb7aade64>
name
''
self
<deluge_webserver.index instance at 0xb7ab14cc>
vars
<Storage {'redir_after_login': None}>
# /usr/share/deluge/plugins/WebUi/webserver_framework.py in deco
126. #combi-deco's:
127. def auto_refreshed(func):
128. "decorator:adds a refresh header"
129. def deco(self, name):
130. if getcookie('auto_refresh') == '1':
131. web.header("Refresh", "%i ; url=%s" %
132. (int(getcookie('auto_refresh_secs',10)),self_url()))
133. return func(self, name) ...
134. return deco
135.
136. def remote(func):
137. "decorator for remote api's"
138. def deco(self, name):
139. try:
▶ Local vars
Variable Value
func
<function deco at 0xb7aade9c>
name
''
self
<deluge_webserver.index instance at 0xb7ab14cc>
# /usr/share/deluge/plugins/WebUi/webpy022/request.py in handle
53. meth = "GET"
54. if not hasattr(cls, meth):
55. return nomethod(cls)
56. tocall = getattr(cls(), meth)
57. args = list(result.groups())
58. for d in re.findall(r'\\(\d+)', ofn):
59. args.pop(int(d) - 1)
60. return tocall(*([x and urllib.unquote(x) for x in args] + fna)) ...
61.
62. return web.notfound()
63.
64. def nomethod(cls):
65. """Returns a `405 Method Not Allowed` error for `cls`."""
66. web.ctx.status = '405 Method Not Allowed'
▶ Local vars
Variable Value
args
['']
cls
<class deluge_webserver.index at 0xb7b0a83c>
fn
'index'
fna
[]
fvars
{'STATE_MESSAGES': ('Queued', 'Checking', 'Connecting', 'Downloading Metadata', 'Downloading', 'Finished', 'Seeding', 'Allocating'), 'Storage': <class 'webpy022.utils.Storage'>, 'TORRENT_KEYS': ['distributed_copies', 'download_payload_rate', 'download_rate', 'eta', 'is_seed', 'name', 'next_announce', 'num_files', 'num_peers', 'num_pieces', 'num_seeds', 'paused', 'piece_length', 'progress', 'ratio', 'total_done', 'total_download', 'total_payload_download', 'total_payload_upload', 'total_peers', 'total_seeds', 'total_size', 'total_upload', 'total_wanted', 'tracker_status', 'upload_payload_rate', 'upload_rate', 'uploaded_memory', 'tracker', 'state', 'queue_pos'], 'WebServer': <function WebServer at 0xb7aadcdc>, '__builtins__': <module '__builtin__' (built-in)>, '__doc__': None, '__file__': '/usr/share/deluge/plugins/WebUi/run_webserver', '__name__': '__main__', 'about': <class deluge_webserver.about at 0xb7aab68c>, 'attrgetter': <type 'operator.attrgetter'>, 'auto_refreshed': <function auto_refreshed at 0xb7aca2cc>, 'base64': <module 'base64' from '/usr/lib/python2.4/base64.pyc'>, 'check_pwd': <function check_pwd at 0xb7aadc6c>, 'check_session': <function check_session at 0xb7aca25c>, 'create_webserver': <function create_webserver at 0xb7a9d79c>, 'deluge_page': <function deluge_page at 0xb7aca294>, 'deluge_page_noauth': <function deluge_page_noauth at 0xb7aca224>, 'do_redirect': <function do_redirect at 0xb7aca17c>, 'error_page': <function error_page at 0xb7aca1b4>, 'fsize': <function fsize at 0xb7c9641c>, 'get_torrent_status': <function get_torrent_status at 0xb7aadca4>, 'getcookie': <function getcookie at 0xb7aca1ec>, 'home': <class deluge_webserver.home at 0xb7b0a80c>, 'index': <class deluge_webserver.index at 0xb7b0a83c>, 'login': <class deluge_webserver.login at 0xb7b0a7dc>, 'md5': <built-in function md5>, 'pause_all': <class deluge_webserver.pause_all at 0xb7aab5cc>, 'refresh': <class deluge_webserver.refresh at 0xb7aab62c>, 'refresh_set': <class deluge_webserver.refresh_set at 0xb7aab65c>, 'remote': <function remote at 0xb7aca304>, 'remote_torrent_add': <class deluge_webserver.remote_torrent_add at 0xb7aab50c>, 'resume_all': <class deluge_webserver.resume_all at 0xb7aab5fc>, 'run': <function run at 0xb7a486f4>, 'seeother': <function seeother at 0xb7bb15dc>, 'setcookie': <function setcookie at 0xb7baa684>, 'start_session': <function start_session at 0xb7bd6f7c>, 'torrent_add': <class deluge_webserver.torrent_add at 0xb7aab4dc>, 'torrent_delete': <class deluge_webserver.torrent_delete at 0xb7aab53c>, 'torrent_info': <class deluge_webserver.torrent_info at 0xb7b0a89c>, 'torrent_pause': <class deluge_webserver.torrent_pause at 0xb7aab4ac>, 'torrent_queue_down': <class deluge_webserver.torrent_queue_down at 0xb7aab59c>, 'torrent_queue_up': <class deluge_webserver.torrent_queue_up at 0xb7aab56c>, 'url': <function url at 0xb7bb16f4>, 'urls': ('/login(.*)', 'login', '/index(.*)', 'index', '/torrent/info/(.*)', 'torrent_info', '/torrent/pause(.*)', 'torrent_pause', '/torrent/add(.*)', 'torrent_add', '/torrent/delete/(.*)', 'torrent_delete', '/torrent/queue/up/(.*)', 'torrent_queue_up', '/torrent/queue/down/(.*)', 'torrent_queue_down', '/pause_all(.*)', 'pause_all', '/resume_all(.*)', 'resume_all', '/refresh/set(.*)', 'refresh_set', '/refresh/(.*)', 'refresh', '/home(.*)', 'home', '/about(.*)', 'about', '/', 'login', '', 'login', '/remote/torrent/add(.*)', 'remote_torrent_add'), 'web': <module 'webpy022' from '/usr/share/deluge/plugins/WebUi/webpy022/__init__.pyc'>, 'ws': <module 'webserver_common' from '/usr/share/deluge/plugins/WebUi/webserver_common.pyc'>}
mapping
('/login(.*)', 'login', '/index(.*)', 'index', '/torrent/info/(.*)', 'torrent_info', '/torrent/pause(.*)', 'torrent_pause', '/torrent/add(.*)', 'torrent_add', '/torrent/delete/(.*)', 'torrent_delete', '/torrent/queue/up/(.*)', 'torrent_queue_up', '/torrent/queue/down/(.*)', 'torrent_queue_down', '/pause_all(.*)', 'pause_all', '/resume_all(.*)', 'resume_all', '/refresh/set(.*)', 'refresh_set', '/refresh/(.*)', 'refresh', '/home(.*)', 'home', '/about(.*)', 'about', '/', 'login', '', 'login', '/remote/torrent/add(.*)', 'remote_torrent_add')
meth
'GET'
mod
{'STATE_MESSAGES': ('Queued', 'Checking', 'Connecting', 'Downloading Metadata', 'Downloading', 'Finished', 'Seeding', 'Allocating'), 'Storage': <class 'webpy022.utils.Storage'>, 'TORRENT_KEYS': ['distributed_copies', 'download_payload_rate', 'download_rate', 'eta', 'is_seed', 'name', 'next_announce', 'num_files', 'num_peers', 'num_pieces', 'num_seeds', 'paused', 'piece_length', 'progress', 'ratio', 'total_done', 'total_download', 'total_payload_download', 'total_payload_upload', 'total_peers', 'total_seeds', 'total_size', 'total_upload', 'total_wanted', 'tracker_status', 'upload_payload_rate', 'upload_rate', 'uploaded_memory', 'tracker', 'state', 'queue_pos'], 'WebServer': <function WebServer at 0xb7aadcdc>, '__builtins__': <module '__builtin__' (built-in)>, '__doc__': None, '__file__': '/usr/share/deluge/plugins/WebUi/run_webserver', '__name__': '__main__', 'about': <class deluge_webserver.about at 0xb7aab68c>, 'attrgetter': <type 'operator.attrgetter'>, 'auto_refreshed': <function auto_refreshed at 0xb7aca2cc>, 'base64': <module 'base64' from '/usr/lib/python2.4/base64.pyc'>, 'check_pwd': <function check_pwd at 0xb7aadc6c>, 'check_session': <function check_session at 0xb7aca25c>, 'create_webserver': <function create_webserver at 0xb7a9d79c>, 'deluge_page': <function deluge_page at 0xb7aca294>, 'deluge_page_noauth': <function deluge_page_noauth at 0xb7aca224>, 'do_redirect': <function do_redirect at 0xb7aca17c>, 'error_page': <function error_page at 0xb7aca1b4>, 'fsize': <function fsize at 0xb7c9641c>, 'get_torrent_status': <function get_torrent_status at 0xb7aadca4>, 'getcookie': <function getcookie at 0xb7aca1ec>, 'home': <class deluge_webserver.home at 0xb7b0a80c>, 'index': <class deluge_webserver.index at 0xb7b0a83c>, 'login': <class deluge_webserver.login at 0xb7b0a7dc>, 'md5': <built-in function md5>, 'pause_all': <class deluge_webserver.pause_all at 0xb7aab5cc>, 'refresh': <class deluge_webserver.refresh at 0xb7aab62c>, 'refresh_set': <class deluge_webserver.refresh_set at 0xb7aab65c>, 'remote': <function remote at 0xb7aca304>, 'remote_torrent_add': <class deluge_webserver.remote_torrent_add at 0xb7aab50c>, 'resume_all': <class deluge_webserver.resume_all at 0xb7aab5fc>, 'run': <function run at 0xb7a486f4>, 'seeother': <function seeother at 0xb7bb15dc>, 'setcookie': <function setcookie at 0xb7baa684>, 'start_session': <function start_session at 0xb7bd6f7c>, 'torrent_add': <class deluge_webserver.torrent_add at 0xb7aab4dc>, 'torrent_delete': <class deluge_webserver.torrent_delete at 0xb7aab53c>, 'torrent_info': <class deluge_webserver.torrent_info at 0xb7b0a89c>, 'torrent_pause': <class deluge_webserver.torrent_pause at 0xb7aab4ac>, 'torrent_queue_down': <class deluge_webserver.torrent_queue_down at 0xb7aab59c>, 'torrent_queue_up': <class deluge_webserver.torrent_queue_up at 0xb7aab56c>, 'url': <function url at 0xb7bb16f4>, 'urls': ('/login(.*)', 'login', '/index(.*)', 'index', '/torrent/info/(.*)', 'torrent_info', '/torrent/pause(.*)', 'torrent_pause', '/torrent/add(.*)', 'torrent_add', '/torrent/delete/(.*)', 'torrent_delete', '/torrent/queue/up/(.*)', 'torrent_queue_up', '/torrent/queue/down/(.*)', 'torrent_queue_down', '/pause_all(.*)', 'pause_all', '/resume_all(.*)', 'resume_all', '/refresh/set(.*)', 'refresh_set', '/refresh/(.*)', 'refresh', '/home(.*)', 'home', '/about(.*)', 'about', '/', 'login', '', 'login', '/remote/torrent/add(.*)', 'remote_torrent_add'), 'web': <module 'webpy022' from '/usr/share/deluge/plugins/WebUi/webpy022/__init__.pyc'>, 'ws': <module 'webserver_common' from '/usr/share/deluge/plugins/WebUi/webserver_common.pyc'>}
ofn
'index'
ofno
'index'
result
<_sre.SRE_Match object at 0xb7aac860>
tocall
<bound method index.deco of <deluge_webserver.index instance at 0xb7ab14cc>>
url
'/index(.*)'
x
''
# /usr/share/deluge/plugins/WebUi/webpy022/request.py in <lambda>
123. return name
124.
125. mod = __import__(modname(), None, None, [""])
126. #@@probably should replace this with some inspect magic
127. name = utils.dictfind(fvars, inp)
128. func = lambda: handle(getattr(mod, name), mod)
129. else:
130. func = lambda: handle(inp, fvars) ...
131. else:
132. func = inp
133. return func
134.
135. def run(inp, fvars, *middleware):
136. """
▶ Local vars
Variable Value
fvars
{'STATE_MESSAGES': ('Queued', 'Checking', 'Connecting', 'Downloading Metadata', 'Downloading', 'Finished', 'Seeding', 'Allocating'), 'Storage': <class 'webpy022.utils.Storage'>, 'TORRENT_KEYS': ['distributed_copies', 'download_payload_rate', 'download_rate', 'eta', 'is_seed', 'name', 'next_announce', 'num_files', 'num_peers', 'num_pieces', 'num_seeds', 'paused', 'piece_length', 'progress', 'ratio', 'total_done', 'total_download', 'total_payload_download', 'total_payload_upload', 'total_peers', 'total_seeds', 'total_size', 'total_upload', 'total_wanted', 'tracker_status', 'upload_payload_rate', 'upload_rate', 'uploaded_memory', 'tracker', 'state', 'queue_pos'], 'WebServer': <function WebServer at 0xb7aadcdc>, '__builtins__': <module '__builtin__' (built-in)>, '__doc__': None, '__file__': '/usr/share/deluge/plugins/WebUi/run_webserver', '__name__': '__main__', 'about': <class deluge_webserver.about at 0xb7aab68c>, 'attrgetter': <type 'operator.attrgetter'>, 'auto_refreshed': <function auto_refreshed at 0xb7aca2cc>, 'base64': <module 'base64' from '/usr/lib/python2.4/base64.pyc'>, 'check_pwd': <function check_pwd at 0xb7aadc6c>, 'check_session': <function check_session at 0xb7aca25c>, 'create_webserver': <function create_webserver at 0xb7a9d79c>, 'deluge_page': <function deluge_page at 0xb7aca294>, 'deluge_page_noauth': <function deluge_page_noauth at 0xb7aca224>, 'do_redirect': <function do_redirect at 0xb7aca17c>, 'error_page': <function error_page at 0xb7aca1b4>, 'fsize': <function fsize at 0xb7c9641c>, 'get_torrent_status': <function get_torrent_status at 0xb7aadca4>, 'getcookie': <function getcookie at 0xb7aca1ec>, 'home': <class deluge_webserver.home at 0xb7b0a80c>, 'index': <class deluge_webserver.index at 0xb7b0a83c>, 'login': <class deluge_webserver.login at 0xb7b0a7dc>, 'md5': <built-in function md5>, 'pause_all': <class deluge_webserver.pause_all at 0xb7aab5cc>, 'refresh': <class deluge_webserver.refresh at 0xb7aab62c>, 'refresh_set': <class deluge_webserver.refresh_set at 0xb7aab65c>, 'remote': <function remote at 0xb7aca304>, 'remote_torrent_add': <class deluge_webserver.remote_torrent_add at 0xb7aab50c>, 'resume_all': <class deluge_webserver.resume_all at 0xb7aab5fc>, 'run': <function run at 0xb7a486f4>, 'seeother': <function seeother at 0xb7bb15dc>, 'setcookie': <function setcookie at 0xb7baa684>, 'start_session': <function start_session at 0xb7bd6f7c>, 'torrent_add': <class deluge_webserver.torrent_add at 0xb7aab4dc>, 'torrent_delete': <class deluge_webserver.torrent_delete at 0xb7aab53c>, 'torrent_info': <class deluge_webserver.torrent_info at 0xb7b0a89c>, 'torrent_pause': <class deluge_webserver.torrent_pause at 0xb7aab4ac>, 'torrent_queue_down': <class deluge_webserver.torrent_queue_down at 0xb7aab59c>, 'torrent_queue_up': <class deluge_webserver.torrent_queue_up at 0xb7aab56c>, 'url': <function url at 0xb7bb16f4>, 'urls': ('/login(.*)', 'login', '/index(.*)', 'index', '/torrent/info/(.*)', 'torrent_info', '/torrent/pause(.*)', 'torrent_pause', '/torrent/add(.*)', 'torrent_add', '/torrent/delete/(.*)', 'torrent_delete', '/torrent/queue/up/(.*)', 'torrent_queue_up', '/torrent/queue/down/(.*)', 'torrent_queue_down', '/pause_all(.*)', 'pause_all', '/resume_all(.*)', 'resume_all', '/refresh/set(.*)', 'refresh_set', '/refresh/(.*)', 'refresh', '/home(.*)', 'home', '/about(.*)', 'about', '/', 'login', '', 'login', '/remote/torrent/add(.*)', 'remote_torrent_add'), 'web': <module 'webpy022' from '/usr/share/deluge/plugins/WebUi/webpy022/__init__.pyc'>, 'ws': <module 'webserver_common' from '/usr/share/deluge/plugins/WebUi/webserver_common.pyc'>}
inp
('/login(.*)', 'login', '/index(.*)', 'index', '/torrent/info/(.*)', 'torrent_info', '/torrent/pause(.*)', 'torrent_pause', '/torrent/add(.*)', 'torrent_add', '/torrent/delete/(.*)', 'torrent_delete', '/torrent/queue/up/(.*)', 'torrent_queue_up', '/torrent/queue/down/(.*)', 'torrent_queue_down', '/pause_all(.*)', 'pause_all', '/resume_all(.*)', 'resume_all', '/refresh/set(.*)', 'refresh_set', '/refresh/(.*)', 'refresh', '/home(.*)', 'home', '/about(.*)', 'about', '/', 'login', '', 'login', '/remote/torrent/add(.*)', 'remote_torrent_add')
# /usr/share/deluge/plugins/WebUi/webpy022/webapi.py in wsgifunc
296. def wsgifunc(func, *middleware):
297. """Returns a WSGI-compatible function from a webpy-function."""
298. middleware = list(middleware)
299.
300. def wsgifunc(env, start_resp):
301. _load(env)
302. try:
303. result = func() ...
304. except StopIteration:
305. result = None
306. except:
307. print >> debug, traceback.format_exc()
308. result = internalerror()
309.
▶ Local vars
-------------------------
Response so far
HEADERS
Content-Type: text/html
BODY
Request information
INPUT
No data.
COOKIES
Variable Value
session_id
'0.470930477011'
META
Variable Value
Content-Type
'text/html'
ENVIRONMENT
Variable Value
ACTUAL_SERVER_PROTOCOL
'HTTP/1.1'
AUTH_TYPE
''
HTTP_ACCEPT
'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'
HTTP_ACCEPT_CHARSET
'ISO-8859-1,utf-8;q=0.7,*;q=0.7'
HTTP_ACCEPT_ENCODING
'gzip,deflate'
HTTP_ACCEPT_LANGUAGE
'en-us,en;q=0.5'
HTTP_CONNECTION
'keep-alive'
HTTP_COOKIE
'session_id=0.470930477011'
HTTP_HOST
'192.168.10.222:8112'
HTTP_KEEP_ALIVE
'300'
HTTP_REFERER
'http://192.168.10.222:8112/login'
HTTP_USER_AGENT
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.7;MEGAUPLOAD 1.0'
PATH_INFO
'/index'
QUERY_STRING
''
REMOTE_ADDR
'192.168.10.5'
REMOTE_PORT
'1190'
REQUEST_METHOD
'GET'
SCRIPT_NAME
''
SERVER_NAME
'localhost'
SERVER_PORT
'8112'
SERVER_PROTOCOL
'HTTP/1.1'
SERVER_SOFTWARE
'CherryPy/3.0.1 WSGI Server'
wsgi.errors
<open file '<stderr>', mode 'w' at 0xb7f0e0b0>
wsgi.input
<socket._fileobject object at 0xb7aaea74>
wsgi.multiprocess
False
wsgi.multithread
True
wsgi.run_once
False
wsgi.url_scheme
'http'
wsgi.version
(1, 0)
You're seeing this error because you have web.internalerror set to web.debugerror. Change that if you want a different one.
-----------
Re: WebUi Plugin
Ok, I've seen that error every 1 in 20 url add's.abubin wrote:Posted this in support thread but was requested to post here instead. So here goes....
dbus_bindings.DBusException at /index
Message did not receive a reply (timeout by message bus)
Python dbus_bindings.pyx in dbus_bindings.Connection.send_with_reply_and_block, line 454
Web GET http://192.168.10.222:8112/index
Deluge does not respond fast enough.
Could you trim the traceback in your post?, i know i asked for it , but it's a bit big

Edit:
But this looks like another problem.
it could be related to Python 2.4.4 and dbus-1.0.1-12.fc6.
Perhaps someone else with older python and dbus versions can confirm the problem?
dev: webui, core, labels | irc:vonck7 |
Re: WebUi Plugin
Hmm, Maybe i should re-evaluate that decision now that the webui is in svn, and there are lots of different problems to track.abubin wrote:Posted this in support thread but was requested to post here instead.
dev: webui, core, labels | irc:vonck7 |
Re: WebUi Plugin
Which one do you think is most probably the cause? Then maybe I can compile that version of python or dbus into my fedora.mvoncken wrote:Ok, I've seen that error every 1 in 20 url add's.abubin wrote:Posted this in support thread but was requested to post here instead. So here goes....
dbus_bindings.DBusException at /index
Message did not receive a reply (timeout by message bus)
Python dbus_bindings.pyx in dbus_bindings.Connection.send_with_reply_and_block, line 454
Web GET http://192.168.10.222:8112/index
Deluge does not respond fast enough.
Could you trim the traceback in your post?, i know i asked for it , but it's a bit big.
Edit:
But this looks like another problem.
it could be related to Python 2.4.4 and dbus-1.0.1-12.fc6.
Perhaps someone else with older python and dbus versions can confirm the problem?