json:add get_stats method
This commit is contained in:
parent
7e076a82a0
commit
6f87ba0646
|
@ -43,9 +43,10 @@ design:
|
||||||
from traceback import format_exc
|
from traceback import format_exc
|
||||||
import web
|
import web
|
||||||
from web import webapi
|
from web import webapi
|
||||||
from deluge.ui.client import sclient
|
from deluge.ui.client import sclient,aclient
|
||||||
from deluge.log import LOG as log
|
from deluge.log import LOG as log
|
||||||
from deluge import component
|
from deluge import component
|
||||||
|
from utils import dict_cb
|
||||||
|
|
||||||
from page_decorators import check_session
|
from page_decorators import check_session
|
||||||
try:
|
try:
|
||||||
|
@ -82,6 +83,8 @@ class json_rpc:
|
||||||
result = self.exec_system_method(method, params,id)
|
result = self.exec_system_method(method, params,id)
|
||||||
elif method == ("list_torrents"):
|
elif method == ("list_torrents"):
|
||||||
result = self.list_torrents(method, params,id)
|
result = self.list_torrents(method, params,id)
|
||||||
|
elif method == ("get_stats"):
|
||||||
|
result = self.exec_get_stats(method, params,id)
|
||||||
else:
|
else:
|
||||||
result = self.exec_client_method(method, params,id)
|
result = self.exec_client_method(method, params,id)
|
||||||
|
|
||||||
|
@ -121,9 +124,37 @@ class json_rpc:
|
||||||
|
|
||||||
def exec_system_method(self, method, params, id):
|
def exec_system_method(self, method, params, id):
|
||||||
if method == "system.listMethods":
|
if method == "system.listMethods":
|
||||||
return self.exec_client_method("list_methods", params, id)
|
methods = sclient.list_methods()
|
||||||
|
return {
|
||||||
|
"version":"1.1",
|
||||||
|
"result":methods + ["get_stats"],
|
||||||
|
"id":id
|
||||||
|
}
|
||||||
raise Exception('Unknown method:%s', method)
|
raise Exception('Unknown method:%s', method)
|
||||||
|
|
||||||
|
def exec_get_stats(self, method, params, id):
|
||||||
|
stats = {}
|
||||||
|
|
||||||
|
aclient.get_download_rate(dict_cb('download_rate',stats))
|
||||||
|
aclient.get_upload_rate(dict_cb('upload_rate',stats))
|
||||||
|
aclient.get_config_value(dict_cb('max_download',stats)
|
||||||
|
,"max_download_speed")
|
||||||
|
aclient.get_config_value(dict_cb('max_upload',stats)
|
||||||
|
,"max_upload_speed")
|
||||||
|
aclient.get_num_connections(dict_cb("num_connections",stats))
|
||||||
|
aclient.get_config_value(dict_cb('max_num_connections',stats)
|
||||||
|
,"max_connections_global")
|
||||||
|
aclient.get_dht_nodes(dict_cb('dht_nodes',stats))
|
||||||
|
|
||||||
|
aclient.force_call(block=True)
|
||||||
|
|
||||||
|
return {
|
||||||
|
"version":"1.1",
|
||||||
|
"result":stats,
|
||||||
|
"id":id
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def list_torrents(self,params,id):
|
def list_torrents(self,params,id):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -75,7 +75,7 @@ class login:
|
||||||
if utils.check_pwd(vars.pwd):
|
if utils.check_pwd(vars.pwd):
|
||||||
#start new session
|
#start new session
|
||||||
start_session()
|
start_session()
|
||||||
do_redirect()
|
utils.seeother('/index')
|
||||||
elif vars.redir:
|
elif vars.redir:
|
||||||
utils.seeother(url('/login', error=1, redir=vars.redir))
|
utils.seeother(url('/login', error=1, redir=vars.redir))
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -62,6 +62,20 @@ function update_torrent(torrent) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
function get_stats() {
|
||||||
|
service.get_stats({params:[],
|
||||||
|
onSuccess:function(stats){
|
||||||
|
alert(stats.download_rate);
|
||||||
|
},
|
||||||
|
onException:function(errorObj){
|
||||||
|
alert("Error: " + errorObj);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,6 +86,7 @@ function update_torrent(torrent) {
|
||||||
|
|
||||||
<button onclick="list_torrents()">List torrents</button>
|
<button onclick="list_torrents()">List torrents</button>
|
||||||
|
|
||||||
|
<button onclick="get_stats()">get_stats()</button>
|
||||||
|
|
||||||
<div id="torrent_list">
|
<div id="torrent_list">
|
||||||
|
|
||||||
|
|
|
@ -87,12 +87,16 @@ def self_url(**kwargs):
|
||||||
return config["base"] + changequery(**kwargs)
|
return config["base"] + changequery(**kwargs)
|
||||||
|
|
||||||
def do_redirect():
|
def do_redirect():
|
||||||
|
import render
|
||||||
"""go to /index unless the redir var is set."""
|
"""go to /index unless the redir var is set."""
|
||||||
vars = web.input(redir=None)
|
vars = web.input(redir=None)
|
||||||
if vars.redir:
|
if vars.redir:
|
||||||
w_seeother(vars.redir) #redir variable contains base
|
w_seeother(vars.redir) #redir variable contains base
|
||||||
return
|
return
|
||||||
|
|
||||||
|
#test-alt-home
|
||||||
|
if hasattr(render,"home"):
|
||||||
|
return render.home()
|
||||||
#default:
|
#default:
|
||||||
seeother('/index')
|
seeother('/index')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue