mirror of
https://github.com/onionshare/onionshare.git
synced 2024-10-01 01:35:40 -04:00
renamed check_for_requests to heartbeat, and made the heartbeat serve all items in the queue instead of just the latest (#36)
This commit is contained in:
parent
68bba73a8c
commit
1cc817db3c
@ -29,13 +29,13 @@ REQUEST_LOAD = 0
|
||||
REQUEST_DOWNLOAD = 1
|
||||
REQUEST_PROGRESS = 2
|
||||
REQUEST_OTHER = 3
|
||||
request_q = Queue.Queue()
|
||||
q = Queue.Queue()
|
||||
|
||||
download_count = 0
|
||||
|
||||
def add_request(type, path, data=None):
|
||||
global request_q
|
||||
request_q.put({
|
||||
global q
|
||||
q.put({
|
||||
'type': type,
|
||||
'path': path,
|
||||
'data': data
|
||||
@ -50,7 +50,7 @@ def index():
|
||||
|
||||
@app.route("/{0}/download".format(slug))
|
||||
def download():
|
||||
global filename, filesize, request_q, download_count
|
||||
global filename, filesize, q, download_count
|
||||
global REQUEST_DOWNLOAD, REQUEST_PROGRESS
|
||||
|
||||
# each download has a unique id
|
||||
|
@ -25,24 +25,28 @@ $(function(){
|
||||
var REQUEST_OTHER = 3;
|
||||
function check_for_requests() {
|
||||
$.ajax({
|
||||
url: '/check_for_requests',
|
||||
url: '/heartbeat',
|
||||
success: function(data, textStatus, jqXHR){
|
||||
if(data != '') {
|
||||
var r = JSON.parse(data);
|
||||
if(r.type == REQUEST_LOAD) {
|
||||
update($('<span>').addClass('weblog').html(onionshare.strings['download_page_loaded']));
|
||||
} else if(r.type == REQUEST_DOWNLOAD) {
|
||||
var $download = $('<span>')
|
||||
.attr('id', 'download-'+r.data.id)
|
||||
.addClass('weblog').html(onionshare.strings['download_started'])
|
||||
.append($('<span>').addClass('progress'));
|
||||
update($download);
|
||||
} else if(r.type == REQUEST_PROGRESS) {
|
||||
var percent = Math.floor((r.data.bytes / onionshare.filesize) * 100);
|
||||
$('#download-'+r.data.id+' .progress').html(' '+human_readable_filesize(r.data.bytes)+', '+percent+'%');
|
||||
} else {
|
||||
if(r.path != '/favicon.ico')
|
||||
update($('<span>').addClass('weblog-error').html(onionshare.strings['other_page_loaded']+': '+r.path));
|
||||
var events = JSON.parse(data);
|
||||
for(var i=0; i<events.length; i++) {
|
||||
var r = events[i];
|
||||
|
||||
if(r.type == REQUEST_LOAD) {
|
||||
update($('<span>').addClass('weblog').html(onionshare.strings['download_page_loaded']));
|
||||
} else if(r.type == REQUEST_DOWNLOAD) {
|
||||
var $download = $('<span>')
|
||||
.attr('id', 'download-'+r.data.id)
|
||||
.addClass('weblog').html(onionshare.strings['download_started'])
|
||||
.append($('<span>').addClass('progress'));
|
||||
update($download);
|
||||
} else if(r.type == REQUEST_PROGRESS) {
|
||||
var percent = Math.floor((r.data.bytes / onionshare.filesize) * 100);
|
||||
$('#download-'+r.data.id+' .progress').html(' '+human_readable_filesize(r.data.bytes)+', '+percent+'%');
|
||||
} else {
|
||||
if(r.path != '/favicon.ico')
|
||||
update($('<span>').addClass('weblog-error').html(onionshare.strings['other_page_loaded']+': '+r.path));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,12 +51,18 @@ def copy_url():
|
||||
clipboard.set_text(url)
|
||||
return ''
|
||||
|
||||
@app.route("/check_for_requests")
|
||||
@app.route("/heartbeat")
|
||||
def check_for_requests():
|
||||
global onionshare
|
||||
try:
|
||||
r = onionshare.request_q.get(False)
|
||||
return json.dumps(r)
|
||||
except onionshare.Queue.Empty:
|
||||
return ''
|
||||
events = []
|
||||
|
||||
done = False
|
||||
while not done:
|
||||
try:
|
||||
r = onionshare.q.get(False)
|
||||
events.append(r)
|
||||
except onionshare.Queue.Empty:
|
||||
done = True
|
||||
|
||||
return json.dumps(events)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user