Better handling of Torrents.StopRefresh() Keep the order of torrents Encode html entities from torrent name (prevent execution of unwanted html tags)
58 lignes
2,1 Kio
JavaScript
58 lignes
2,1 Kio
JavaScript
var Torrents = {
|
|
CanRefresh: false,
|
|
timeout: undefined,
|
|
Seconds: 300, // Every five minutes, can be overridden directly in home.html (not here is better)
|
|
SearchURL: "/api/search",
|
|
Method: "prepend",
|
|
LastID: 0,
|
|
StopRefresh: function() {
|
|
clearTimeout(this.timeout)
|
|
this.timeout = undefined
|
|
this.CanRefresh = false
|
|
},
|
|
Refresh: function() {
|
|
if (this.CanRefresh) {
|
|
console.log("Start Refresh...")
|
|
this.timeout = setTimeout(function() {
|
|
var searchArgs = (window.location.search != "") ? window.location.search.substr(1) : ""
|
|
searchArgs = (Torrents.LastID > 0) ? "?fromID="+Torrents.LastID+"&"+searchArgs : "?"+searchArgs
|
|
Query.Get(Torrents.SearchURL+searchArgs,
|
|
Templates.ApplyItemListRenderer({
|
|
templateName: "torrents.item", method: "prepend", element: document.getElementById("torrentListResults")
|
|
}), function(torrents) {
|
|
for (var i =0; i < torrents.length; i++) { if (Torrents.LastID < torrents[i].id) Torrents.LastID = torrents[i].id; }
|
|
parseAllDates();
|
|
Torrents.Refresh()
|
|
});
|
|
}, this.Seconds*1000);
|
|
}
|
|
},
|
|
StartRefresh: function() {
|
|
this.CanRefresh = true;
|
|
this.Refresh()
|
|
}
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function() { // if Torrents.CanRefresh is enabled, refresh is automatically done (no need to start it anually)
|
|
if (Torrents.CanRefresh) {
|
|
Torrents.StartRefresh()
|
|
}
|
|
})
|
|
|
|
|
|
// Credits to mpen (StackOverflow)
|
|
function humanFileSize(bytes, si) {
|
|
var thresh = si ? 1000 : 1024;
|
|
if(Math.abs(bytes) < thresh) {
|
|
return bytes + ' B';
|
|
}
|
|
var units = si
|
|
? ['kB','MB','GB','TB','PB','EB','ZB','YB']
|
|
: ['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];
|
|
var u = -1;
|
|
do {
|
|
bytes /= thresh;
|
|
++u;
|
|
} while(Math.abs(bytes) >= thresh && u < units.length - 1);
|
|
return bytes.toFixed(1)+' '+units[u];
|
|
} |