refactor: Flag loading mode adjusted to async.

将国旗加载方式调整为异步
This commit is contained in:
栽培者 2020-09-15 22:15:00 +08:00
parent 2361675410
commit 9e5e369440
2 changed files with 49 additions and 39 deletions

View File

@ -98,24 +98,25 @@ function(a,b){switch(a){case "rateDownload":case "rateUpload":b=formatSize(b,!0,
31536E8<=b?"\u221e":getTotalTime(b);break;case "comment":b=system.replaceURI(b)}system.panel.attribute.find("#torrent-attribute-value-"+a).html(b)});var b=(new Base64).decode_bytes(a.pieces),c=0,d=a.pieceCount,e=a.pieceSize;for(a=[];c<d;)for(var f=b.codePointAt(c>>3),g=128;0<g&&c<d;g>>=1,++c)a.push(f&g?!1:!0);b=parseInt((499+d)/500);e=formatSize(e*b);d=parseInt((b-1+d)/b);f=0;g="";for(c=f=0;f<d;++f){for(var h=b,k=0;k<b;++k,++c)a[c]&&--h;h=parseInt(100*h/b);k=parseInt(100*(Math.pow(128,h/100)-1)/127)/
100;g+='\x3ci style\x3d"filter:saturate('+k+')" title\x3d"'+e+" x "+h+'%"\x3e\x3c/i\x3e'}system.panel.attribute.find("#torrent-attribute-pieces").html(g)},fillTorrentFileList:function(a){var b=a.files,c=a.fileStats,d=[],e=a.name.length+1,f;for(f in b){var g=b[f],h=c[f],k=parseFloat(h.bytesCompleted/g.length*100).toFixed(2);d.push({name:g.name==a.name?g.name:g.name.substr(e),index:f,bytesCompleted:h.bytesCompleted,percentDone:system.getTorrentProgressBar(k,transmission._status.download),length:g.length,
wanted:system.lang.torrent.attribute.status[h.wanted],priority:'\x3cspan class\x3d"iconlabel icon-flag-'+h.priority+'"\x3e'+system.lang.torrent.attribute.priority[h.priority]+"\x3c/span\x3e"})}this.updateCurrentPageDatas("index",d,system.panel.attribute.find("#torrent-files-table"))},fillTorrentServerList:function(a){var b=a.trackerStats,c=[],d;for(d in b){var e=b[d],f={},g;for(g in e)switch(g){case "downloadCount":case "leecherCount":case "seederCount":f[g]=-1==e[g]?system.lang["public"]["text-unknown"]:
e[g];break;case "announceState":f[g]=system.lang.torrent.attribute["servers-fields"].announceStateText[e[g]];break;case "lastAnnounceTime":case "nextAnnounceTime":f[g]=formatLongTime(e[g]);break;case "lastAnnounceSucceeded":case "lastAnnounceTimedOut":f[g]=system.lang.torrent.attribute.status[e[g]];break;default:f[g]=e[g]}c.push(f)}transmission.torrents.addTracker(a);this.updateCurrentPageDatas("id",c,system.panel.attribute.find("#torrent-servers-table"))},fillTorrentPeersList:function(a){a=a.peers;
var b=[],c={},d;for(d in a){var e=a[d],f={},g;for(g in e)f[g]=e[g];if(""!==system.config.ipInfoToken){c.flag$0="";var h=f.address;void 0===this.flags[h]?($.ajax({url:"https://ipinfo.io/"+h+"/country?token\x3d"+system.config.ipInfoToken,method:"GET",async:!1}).done(function(a){return function(b){a.flag$0=b.toLowerCase().trim()}}(c)),this.flags[h]=c.flag$0):c.flag$0=this.flags[h];f.address='\x3cimg src\x3d"'+this.rootPath+"/style/flags/"+c.flag$0+'.png" alt\x3d"'+c.flag$0+'" title\x3d"'+c.flag$0+'"\x3e '+
h}f.isUTP=system.lang.torrent.attribute.status[e.isUTP];e=parseFloat(100*e.progress).toFixed(2);f.progress=system.getTorrentProgressBar(e,transmission._status.download);b.push(f);c={flag$0:c.flag$0}}this.updateCurrentPageDatas("address",b,system.panel.attribute.find("#torrent-peers-table"))},fillTorrentConfig:function(a){4==system.panel.attribute.find("#torrent-attribute-tabs").data("selectedIndex")&&transmission.torrents.getConfig(a.id,function(a){null!=a&&(jQuery.extend(transmission.torrents.all[system.currentTorrentId],
a[0]),0!=system.currentTorrentId&&$.each(a[0],function(a,b){var c=!1,d=!1,g=!1;switch(a){case "seedIdleMode":case "seedRatioMode":0==b&&(d=!1,c=!0),g=!0;case "downloadLimited":case "uploadLimited":if(1==b||1==b)d=!0;system.panel.attribute.find("input[enabledof\x3d'"+a+"']").prop("disabled",!d);g&&system.panel.attribute.find("#"+a).prop("indeterminate",c).data("_tag",b);system.panel.attribute.find("#"+a).prop("checked",d);break;default:system.panel.attribute.find("#"+a).val(b),system.panel.attribute.find("#"+
a).numberspinner("setValue",b)}}))})},setFieldFormat:function(a){if(a.formatter)switch(a.formatter){case "size":a.formatter=function(a,c,d){return formatSize(a)};break;case "speed":a.formatter=function(a,c,d){return formatSize(a,!0,"speed")};break;case "longtime":a.formatter=function(a,c,d){return formatLongTime(a)};break;case "progress":a.formatter=function(a,c,d){a=parseFloat(100*a).toFixed(2);return system.getTorrentProgressBar(a,transmission.torrents.all[c.id])};break;case "_usename_":switch(a.field){case "name":a.formatter=
function(a,c,d){return system.getTorrentNameBar(transmission.torrents.all[c.id])}}break;case "ratio":a.formatter=function(a,c,d){c="";1>parseFloat(a)&&-1!=a&&(c="text-status-warning");return'\x3cspan class\x3d"'+c+'"\x3e'+(-1==a?"\u221e":a)+"\x3c/span\x3e"};break;case "remainingTime":a.formatter=function(a,c,d){return 31536E8<=a?"\u221e":getTotalTime(a)};break;case "labels":a.formatter=function(a,c,d){return system.formetTorrentLabels(a,c.hashString)};break;case "color":a.formatter=function(a,c,d){return $("\x3cspan class\x3d'user-label'/\x3e").html(a).css({"background-color":a,
color:.5<getGrayLevel(a)?"#000":"#fff"}).get(0).outerHTML}}},reloadData:function(){0<this.popoverCount?setTimeout(function(){system.reloadData()},2E3):(this.reloadSession(),this.reloading=!1,this.getServerStatus(),this.reloading=!1,this.reloadTorrentBaseInfos())},loadFolderList:function(a){this.removeTreeNode("folders-loading");for(var b in a){var c=a[b];c&&system.removeTreeNode(c.nodeid)}0!=transmission.downloadDirs.length&&timedChunk(transmission.downloadDirs,this.appendFolder,this,10,function(){"Firefox"==
$.ua.browser.name&&60>$.ua.browser.major&&system.panel.left.find("span.nav-total-size").css({"margin-top":"-19px"});system.initUIStatus()})},appendFolder:function(a){if(a){var b="folders",c=a.replace(/\\/g,"/").split("/"),d="folders-",e="",f;for(f in c){var g=c[f];if(""!=g){e+=g;var h=this.B64.encode(g);d+=h.replace(/[+|\/|=]/g,"0");h=this.panel.left.tree("find",d);var k=transmission.torrents.folders[d];k?(g+=this.showNodeMoreInfos(k.count,k.size),h?this.updateTreeNodeText(d,g):(this.appendTreeNode(b,
[{id:d,path:e,downDir:a,text:g,iconCls:"iconfont tr-icon-file"}]),"folders"!=b&&(h=this.panel.left.tree("find",b),this.panel.left.tree("collapse",h.target))),b=d):(this.debug("appendFolder:key",d),this.debug("appendFolder:name",g),this.debug("appendFolder:node",h))}}}},replaceURI:function(a){return a.replace(/(http|https|ftp):\/\/([^/:]+)(:\d*)?([^# ]*)/ig,function(a){return'\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"})},readConfig:function(){this.readUserConfig();var a=this.getStorageData(this.configHead+
".system");a&&(this.config=$.extend(!0,this.config,JSON.parse(a)));for(var b in this.storageKeys.dictionary)this.dictionary[b]=this.getStorageData(this.storageKeys.dictionary[b])},saveConfig:function(){this.setStorageData(this.configHead+".system",JSON.stringify(this.config));for(var a in this.storageKeys.dictionary)this.setStorageData(this.storageKeys.dictionary[a],this.dictionary[a]);this.saveUserConfig()},saveLabelsConfig:function(a,b){system.config.nav.labels&&(0==b.length?delete system.config.labelMaps[a]:
system.config.labelMaps[a]=b)},readUserConfig:function(){var a=window.localStorage[this.configHead];a&&(a=JSON.parse(a),this.userConfig=$.extend(!0,this.userConfig,a))},saveUserConfig:function(){window.localStorage[this.configHead]=JSON.stringify(this.userConfig)},uploadTorrentFile:function(a,b,c,d){if(window.FileReader){var e=$("input[id\x3d'"+a+"']")[0].files;$.each(e,function(a,g){transmission.addTorrentFromFile(g,b,c,d,e.length)})}else alert(system.lang["public"]["text-browsers-not-support-features"])},
checkUpdate:function(){$.ajax({url:this.checkUpdateScript,dataType:"json",success:function(a){if(a&&a.tag_name){var b=a.created_at.substr(0,10).replace(/-/g,""),c=a.tag_name;if(-1==$.inArray(c,system.config.ignoreVersion))if(system.codeupdate<b){$("#area-update-infos").show();$("#msg-updateInfos").html(b+" -\x3e "+a.name);var d=$("\x3cdiv/\x3e"),e=a.body.replace(/\r\n/g,"\x3cbr/\x3e"),f=$("\x3cdiv style\x3d'text-align:right;'/\x3e").appendTo(d);$('\x3ca href\x3d"https://github.com/ronggang/transmission-web-control/releases/latest" target\x3d"_blank" class\x3d"easyui-linkbutton" data-options\x3d"iconCls:\'iconfont tr-icon-github\'"/\x3e').html(a.name+
" ("+b+")").appendTo(f).linkbutton();$("\x3cspan/\x3e").html(" ").appendTo(f);$('\x3ca href\x3d"https://github.com/ronggang/transmission-web-control/wiki" target\x3d"_blank" class\x3d"easyui-linkbutton" data-options\x3d"iconCls:\'iconfont tr-icon-help\'"/\x3e').html(system.lang["public"]["text-how-to-update"]).appendTo(f).linkbutton();$("\x3cspan/\x3e").html(" ").appendTo(f);$("\x3cbutton onclick\x3d\"javascript:system.addIgnoreVersion('"+c+'\');" class\x3d"easyui-linkbutton" data-options\x3d"iconCls:\'iconfont tr-icon-cancel-checked\'"/\x3e').html(system.lang["public"]["text-ignore-this-version"]).appendTo(f).linkbutton();
$("\x3chr/\x3e").appendTo(d);$("\x3cdiv/\x3e").html(e).appendTo(d);$("#button-download-update").webuiPopover({content:d.html(),backdrop:!0})}else $("#area-update-infos").hide()}}})},addIgnoreVersion:function(a){-1==$.inArray(a,system.config.ignoreVersion)&&(this.config.ignoreVersion.push(a),this.saveConfig());$("#button-download-update").webuiPopover("hide");$("#area-update-infos").hide()},changeLanguages:function(a){a!=this.lang.name&&a&&(this.config.defaultLang=a,this.saveConfig(),location.href=
"?lang\x3d"+a)},getStorageData:function(a,b){return null==window.localStorage[a]?b:window.localStorage[a]},setStorageData:function(a,b){window.localStorage[a]=b},openDialogFromTemplate:function(a){a=$.extend(!0,{id:null,options:null,datas:null,type:0},a);if(null!=a.id){var b=a.id,c=a.options,d=a.datas,e=$("#"+b);if(e.length){d&&$.each(d,function(a,b){e.data(a,b)});if(0==a.type&&e.attr("type")==a.type){e.dialog("open");e.dialog({content:system.templates[b]});return}if(0!=system.popoverCount){setTimeout(function(){system.openDialogFromTemplate(a)},
350);return}e.remove()}c=$.extend(!0,{title:"",width:100,height:100,resizable:!1,cache:!0,content:system.lang.dialog["system-config"].loading,modal:!0},c);e=$("\x3cdiv/\x3e").attr({id:b,type:a.type}).appendTo(document.body);0==a.type?e.dialog(c):(e.css({width:c.width,height:c.height}).data("popoverSource",a.source),$(a.source).webuiPopover({url:"#"+b,title:c.title,width:c.width,height:c.height-18,padding:!1,onHide:function(c){$(a.source).webuiPopover("destroy");$("#"+b).remove();$(c).remove();system.popoverCount--;
if(a.onClose)a.onClose(a.source)},onShow:function(){system.popoverCount++}}));$.get(system.rootPath+"template/"+b+".html?time\x3d"+new Date,function(c){system.templates[b]=c;d&&$.each(d,function(a,c){$("#"+b).data(a,c)});0==a.type?$("#"+b).dialog({content:c}):(e.html(c),$.parser.parse("#"+b),$(a.source).webuiPopover("show"))})}},debug:function(a,b){window.console&&window.console.log&&window.console.log(a,b)},initThemes:function(){this.themes&&$("#select-themes").combobox({groupField:"group",data:this.themes,
editable:!1,panelHeight:"auto",onChange:function(a){var b=(a+";").split(";"),c=b[0];b=b[1]||"logo.png";$("#styleEasyui").attr("href","tr-web-control/script/easyui/themes/"+c+"/easyui.css");$("#logo").attr("src","tr-web-control/"+b);system.config.theme=a;system.saveConfig()},onLoadSuccess:function(){$(this).combobox("setValue",system.config.theme||"default")}})},getValidTreeKey:function(a){return a?this.B64.encode(a).replace(/[+|\/|=]/g,"0"):""}};
e[g];break;case "announceState":f[g]=system.lang.torrent.attribute["servers-fields"].announceStateText[e[g]];break;case "lastAnnounceTime":case "nextAnnounceTime":f[g]=formatLongTime(e[g]);break;case "lastAnnounceSucceeded":case "lastAnnounceTimedOut":f[g]=system.lang.torrent.attribute.status[e[g]];break;default:f[g]=e[g]}c.push(f)}transmission.torrents.addTracker(a);this.updateCurrentPageDatas("id",c,system.panel.attribute.find("#torrent-servers-table"))},fillTorrentPeersList:function(a){var b=this;
a=a.peers;var c=[],d={},e;for(e in a){var f=a[e],g={},h;for(h in f)g[h]=f[h];if(""!==system.config.ipInfoToken){d.flag="";d.ip=g.address;void 0===this.flags[d.ip]?$.ajax({type:"GET",url:"https://ipinfo.io/"+d.ip+"/country?token\x3d"+system.config.ipInfoToken}).done(function(a){return function(c){c&&(a.flag=c.toLowerCase().trim(),b.flags[a.ip]=a.flag,$("img.img_ip-"+a.ip).attr({src:b.rootPath+"style/flags/"+a.flag+".png",alt:a.flag,title:a.flag}).show())}}(d)):d.flag=this.flags[d.ip];var k="";k=d.flag?
'\x3cimg src\x3d"'+this.rootPath+"style/flags/"+d.flag+'.png" alt\x3d"'+d.flag+'" title\x3d"'+d.flag+'"\x3e ':'\x3cimg src\x3d"" class\x3d"img_ip-'+d.ip+'" style\x3d"display:none;"\x3e ';g.address=k+d.ip}g.isUTP=system.lang.torrent.attribute.status[f.isUTP];f=parseFloat(100*f.progress).toFixed(2);g.progress=system.getTorrentProgressBar(f,transmission._status.download);c.push(g);d={flag:d.flag,ip:d.ip}}this.updateCurrentPageDatas("address",c,system.panel.attribute.find("#torrent-peers-table"))},fillTorrentConfig:function(a){4==
system.panel.attribute.find("#torrent-attribute-tabs").data("selectedIndex")&&transmission.torrents.getConfig(a.id,function(a){null!=a&&(jQuery.extend(transmission.torrents.all[system.currentTorrentId],a[0]),0!=system.currentTorrentId&&$.each(a[0],function(a,b){var c=!1,d=!1,g=!1;switch(a){case "seedIdleMode":case "seedRatioMode":0==b&&(d=!1,c=!0),g=!0;case "downloadLimited":case "uploadLimited":if(1==b||1==b)d=!0;system.panel.attribute.find("input[enabledof\x3d'"+a+"']").prop("disabled",!d);g&&system.panel.attribute.find("#"+
a).prop("indeterminate",c).data("_tag",b);system.panel.attribute.find("#"+a).prop("checked",d);break;default:system.panel.attribute.find("#"+a).val(b),system.panel.attribute.find("#"+a).numberspinner("setValue",b)}}))})},setFieldFormat:function(a){if(a.formatter)switch(a.formatter){case "size":a.formatter=function(a,c,d){return formatSize(a)};break;case "speed":a.formatter=function(a,c,d){return formatSize(a,!0,"speed")};break;case "longtime":a.formatter=function(a,c,d){return formatLongTime(a)};
break;case "progress":a.formatter=function(a,c,d){a=parseFloat(100*a).toFixed(2);return system.getTorrentProgressBar(a,transmission.torrents.all[c.id])};break;case "_usename_":switch(a.field){case "name":a.formatter=function(a,c,d){return system.getTorrentNameBar(transmission.torrents.all[c.id])}}break;case "ratio":a.formatter=function(a,c,d){c="";1>parseFloat(a)&&-1!=a&&(c="text-status-warning");return'\x3cspan class\x3d"'+c+'"\x3e'+(-1==a?"\u221e":a)+"\x3c/span\x3e"};break;case "remainingTime":a.formatter=
function(a,c,d){return 31536E8<=a?"\u221e":getTotalTime(a)};break;case "labels":a.formatter=function(a,c,d){return system.formetTorrentLabels(a,c.hashString)};break;case "color":a.formatter=function(a,c,d){return $("\x3cspan class\x3d'user-label'/\x3e").html(a).css({"background-color":a,color:.5<getGrayLevel(a)?"#000":"#fff"}).get(0).outerHTML}}},reloadData:function(){0<this.popoverCount?setTimeout(function(){system.reloadData()},2E3):(this.reloadSession(),this.reloading=!1,this.getServerStatus(),
this.reloading=!1,this.reloadTorrentBaseInfos())},loadFolderList:function(a){this.removeTreeNode("folders-loading");for(var b in a){var c=a[b];c&&system.removeTreeNode(c.nodeid)}0!=transmission.downloadDirs.length&&timedChunk(transmission.downloadDirs,this.appendFolder,this,10,function(){"Firefox"==$.ua.browser.name&&60>$.ua.browser.major&&system.panel.left.find("span.nav-total-size").css({"margin-top":"-19px"});system.initUIStatus()})},appendFolder:function(a){if(a){var b="folders",c=a.replace(/\\/g,
"/").split("/"),d="folders-",e="",f;for(f in c){var g=c[f];if(""!=g){e+=g;var h=this.B64.encode(g);d+=h.replace(/[+|\/|=]/g,"0");h=this.panel.left.tree("find",d);var k=transmission.torrents.folders[d];k?(g+=this.showNodeMoreInfos(k.count,k.size),h?this.updateTreeNodeText(d,g):(this.appendTreeNode(b,[{id:d,path:e,downDir:a,text:g,iconCls:"iconfont tr-icon-file"}]),"folders"!=b&&(h=this.panel.left.tree("find",b),this.panel.left.tree("collapse",h.target))),b=d):(this.debug("appendFolder:key",d),this.debug("appendFolder:name",
g),this.debug("appendFolder:node",h))}}}},replaceURI:function(a){return a.replace(/(http|https|ftp):\/\/([^/:]+)(:\d*)?([^# ]*)/ig,function(a){return'\x3ca href\x3d"'+a+'" target\x3d"_blank"\x3e'+a+"\x3c/a\x3e"})},readConfig:function(){this.readUserConfig();var a=this.getStorageData(this.configHead+".system");a&&(this.config=$.extend(!0,this.config,JSON.parse(a)));for(var b in this.storageKeys.dictionary)this.dictionary[b]=this.getStorageData(this.storageKeys.dictionary[b])},saveConfig:function(){this.setStorageData(this.configHead+
".system",JSON.stringify(this.config));for(var a in this.storageKeys.dictionary)this.setStorageData(this.storageKeys.dictionary[a],this.dictionary[a]);this.saveUserConfig()},saveLabelsConfig:function(a,b){system.config.nav.labels&&(0==b.length?delete system.config.labelMaps[a]:system.config.labelMaps[a]=b)},readUserConfig:function(){var a=window.localStorage[this.configHead];a&&(a=JSON.parse(a),this.userConfig=$.extend(!0,this.userConfig,a))},saveUserConfig:function(){window.localStorage[this.configHead]=
JSON.stringify(this.userConfig)},uploadTorrentFile:function(a,b,c,d){if(window.FileReader){var e=$("input[id\x3d'"+a+"']")[0].files;$.each(e,function(a,g){transmission.addTorrentFromFile(g,b,c,d,e.length)})}else alert(system.lang["public"]["text-browsers-not-support-features"])},checkUpdate:function(){$.ajax({url:this.checkUpdateScript,dataType:"json",success:function(a){if(a&&a.tag_name){var b=a.created_at.substr(0,10).replace(/-/g,""),c=a.tag_name;if(-1==$.inArray(c,system.config.ignoreVersion))if(system.codeupdate<
b){$("#area-update-infos").show();$("#msg-updateInfos").html(b+" -\x3e "+a.name);var d=$("\x3cdiv/\x3e"),e=a.body.replace(/\r\n/g,"\x3cbr/\x3e"),f=$("\x3cdiv style\x3d'text-align:right;'/\x3e").appendTo(d);$('\x3ca href\x3d"https://github.com/ronggang/transmission-web-control/releases/latest" target\x3d"_blank" class\x3d"easyui-linkbutton" data-options\x3d"iconCls:\'iconfont tr-icon-github\'"/\x3e').html(a.name+" ("+b+")").appendTo(f).linkbutton();$("\x3cspan/\x3e").html(" ").appendTo(f);$('\x3ca href\x3d"https://github.com/ronggang/transmission-web-control/wiki" target\x3d"_blank" class\x3d"easyui-linkbutton" data-options\x3d"iconCls:\'iconfont tr-icon-help\'"/\x3e').html(system.lang["public"]["text-how-to-update"]).appendTo(f).linkbutton();
$("\x3cspan/\x3e").html(" ").appendTo(f);$("\x3cbutton onclick\x3d\"javascript:system.addIgnoreVersion('"+c+'\');" class\x3d"easyui-linkbutton" data-options\x3d"iconCls:\'iconfont tr-icon-cancel-checked\'"/\x3e').html(system.lang["public"]["text-ignore-this-version"]).appendTo(f).linkbutton();$("\x3chr/\x3e").appendTo(d);$("\x3cdiv/\x3e").html(e).appendTo(d);$("#button-download-update").webuiPopover({content:d.html(),backdrop:!0})}else $("#area-update-infos").hide()}}})},addIgnoreVersion:function(a){-1==
$.inArray(a,system.config.ignoreVersion)&&(this.config.ignoreVersion.push(a),this.saveConfig());$("#button-download-update").webuiPopover("hide");$("#area-update-infos").hide()},changeLanguages:function(a){a!=this.lang.name&&a&&(this.config.defaultLang=a,this.saveConfig(),location.href="?lang\x3d"+a)},getStorageData:function(a,b){return null==window.localStorage[a]?b:window.localStorage[a]},setStorageData:function(a,b){window.localStorage[a]=b},openDialogFromTemplate:function(a){a=$.extend(!0,{id:null,
options:null,datas:null,type:0},a);if(null!=a.id){var b=a.id,c=a.options,d=a.datas,e=$("#"+b);if(e.length){d&&$.each(d,function(a,b){e.data(a,b)});if(0==a.type&&e.attr("type")==a.type){e.dialog("open");e.dialog({content:system.templates[b]});return}if(0!=system.popoverCount){setTimeout(function(){system.openDialogFromTemplate(a)},350);return}e.remove()}c=$.extend(!0,{title:"",width:100,height:100,resizable:!1,cache:!0,content:system.lang.dialog["system-config"].loading,modal:!0},c);e=$("\x3cdiv/\x3e").attr({id:b,
type:a.type}).appendTo(document.body);0==a.type?e.dialog(c):(e.css({width:c.width,height:c.height}).data("popoverSource",a.source),$(a.source).webuiPopover({url:"#"+b,title:c.title,width:c.width,height:c.height-18,padding:!1,onHide:function(c){$(a.source).webuiPopover("destroy");$("#"+b).remove();$(c).remove();system.popoverCount--;if(a.onClose)a.onClose(a.source)},onShow:function(){system.popoverCount++}}));$.get(system.rootPath+"template/"+b+".html?time\x3d"+new Date,function(c){system.templates[b]=
c;d&&$.each(d,function(a,c){$("#"+b).data(a,c)});0==a.type?$("#"+b).dialog({content:c}):(e.html(c),$.parser.parse("#"+b),$(a.source).webuiPopover("show"))})}},debug:function(a,b){window.console&&window.console.log&&window.console.log(a,b)},initThemes:function(){this.themes&&$("#select-themes").combobox({groupField:"group",data:this.themes,editable:!1,panelHeight:"auto",onChange:function(a){var b=(a+";").split(";"),c=b[0];b=b[1]||"logo.png";$("#styleEasyui").attr("href","tr-web-control/script/easyui/themes/"+
c+"/easyui.css");$("#logo").attr("src","tr-web-control/"+b);system.config.theme=a;system.saveConfig()},onLoadSuccess:function(){$(this).combobox("setValue",system.config.theme||"default")}})},getValidTreeKey:function(a){return a?this.B64.encode(a).replace(/[+|\/|=]/g,"0"):""}};
$(document).ready(function(){$.getJSON(system.rootPath+"i18n/en.json").done(function(a){system.defaultLang=a});$.getJSON(system.rootPath+"i18n.json").done(function(a){system.languages=a;system.init(location.search.getQueryString("lang"),location.search.getQueryString("local"))})});function fileFilter(a,b){b=new RegExp(b||".*");for(var c=[],d=0;d<a.length;++d)b.test(a[d].name)&&c.push(a[d]);return c}
function restoreFileFilterInputbox(a){var b=system.lang.torrent.attribute["filter-template-text"];b=[{id:1,text:b?b["1"]:"All",desc:".*"},{id:2,text:b?b["2"]:"BitComet padding file",desc:"____padding_file"},{id:3,text:b?b["3"]:"Unnecessary files",desc:"(.*\\.(url|lnk)$)|(RARBG_DO_NOT_MIRROR\\.exe)|(____padding_file)"}];$('\x3cinput id\x3d"torrent-files-filter-string" style\x3d"width:300px;"\x3e').insertAfter("#torrent-files-filter").combobox({valueField:"desc",textField:"desc",panelWidth:400,panelHeight:"auto",
formatter:function(a){return'\x3cspan style\x3d"font-weight:bold; padding:3px;"\x3e'+a.text+'\x3c/span\x3e\x3cbr/\x3e\x3cspan style\x3d"padding-left:10px;"\x3e'+a.desc+"\x3c/span\x3e"}}).combobox("loadData",b).combobox("setValue",a)}

View File

@ -2851,7 +2851,7 @@ var system = {
fillTorrentPeersList: function (torrent) {
var peers = torrent.peers;
var datas = new Array();
let flag;
for (var index in peers) {
var item = peers[index];
var rowdata = {};
@ -2859,27 +2859,36 @@ var system = {
rowdata[key] = item[key];
}
if (system.config.ipInfoToken !== '') {
let flag = '';
let ip = rowdata['address'];
if (system.config.ipInfoToken !== '') {
let flag = '';
let ip = rowdata['address'];
if (this.flags[ip] === undefined) {
let settings = {
'url': 'https://ipinfo.io/' + ip + '/country?token=' + system.config.ipInfoToken,
'method': 'GET',
'async': false
};
$.ajax(settings).done(function (response) {
flag = response.toLowerCase().trim();
});
this.flags[ip] = flag;
} else {
flag = this.flags[ip];
}
rowdata['address'] = '<img src="' + this.rootPath + '/style/flags/' + flag + '.png" alt="' + flag + '" title="' + flag + '"> ' + ip;
if (this.flags[ip] === undefined) {
let url = 'https://ipinfo.io/' + ip + '/country?token=' + system.config.ipInfoToken;
$.ajax({
type: "GET",
url: url
}).done((data) => {
if (data) {
flag = data.toLowerCase().trim();
this.flags[ip] = flag;
$("img.img_ip-"+ip).attr({
src: this.rootPath + 'style/flags/' + flag + '.png',
alt: flag,
title: flag
}).show();
}
});
} else {
flag = this.flags[ip];
}
let img = "";
if (flag) {
img = '<img src="' + this.rootPath + 'style/flags/' + flag + '.png" alt="' + flag + '" title="' + flag + '"> ';
} else {
img = '<img src="" class="img_ip-'+ip+'" style="display:none;"> ';
}
rowdata['address'] = img + ip;
}
// 使用同类已有的翻译文本