Files
pyTorrent/pytorrent/static/js/peerRefresh.js
T
Mateusz Gruszczyński b2cede7b63 fix in peers
2026-06-09 11:19:14 +02:00

2 lines
2.1 KiB
JavaScript

export const peerRefreshSource = " function setupPeersRefresh(tab=activeTab()){ clearInterval(peersRefreshTimer); peersRefreshTimer=null; if($('peersRefreshSelect')) $('peersRefreshSelect').value=String(peersRefreshSeconds||0); if(tab==='peers' && peersRefreshSeconds>0){ peersRefreshTimer=setInterval(()=>{ if(activeTab()==='peers' && selectedHash) loadDetails('peers',{silent:true}); }, peersRefreshSeconds*1000); } }\n function clearPeerEmptyRetry(){\n clearTimeout(peerEmptyRetryTimer);\n peerEmptyRetryTimer=null;\n peerEmptyRetryHash=null;\n peerEmptyRetryAttempts=0;\n }\n function peerActivityLooksActive(activity){\n return !!(activity && (Number(activity.peers_connected||0)>0 || Number(activity.up_rate||0)>0 || Number(activity.down_rate||0)>0));\n }\n function schedulePeerEmptyRetry(peers, activity){\n if((peers||[]).length || !peerActivityLooksActive(activity)){ clearPeerEmptyRetry(); return; }\n if(activeTab()!=='peers' || !selectedHash) return;\n const hash=selectedHash;\n if(peerEmptyRetryHash!==hash){ peerEmptyRetryHash=hash; peerEmptyRetryAttempts=0; }\n if(peerEmptyRetryTimer || peerEmptyRetryAttempts>=PEER_EMPTY_RETRY_MAX_ATTEMPTS) return;\n peerEmptyRetryAttempts+=1;\n peerEmptyRetryTimer=setTimeout(async()=>{\n peerEmptyRetryTimer=null;\n if(activeTab()!=='peers' || selectedHash!==hash) return;\n await loadDetails('peers',{silent:true});\n }, PEER_EMPTY_RETRY_SECONDS*1000);\n }\n function refreshPeersOnceForReverseDns(){\n // Note: Enabling reverse DNS immediately refreshes peers; pending hostnames then use their own follow-up loop.\n if(activeTab()==='peers' && selectedHash) loadDetails('peers');\n const modal=$('mobileDetailsModal');\n if(modal?.classList.contains('show') && selectedHash) openMobileDetails(selectedHash);\n }\n function syncMobileMode(){ const auto=window.matchMedia&&window.matchMedia(\"(max-width: 900px)\").matches; document.body.classList.toggle(\"mobile-mode\", auto || document.body.classList.contains(\"mobile-mode-manual\")); scheduleRender(true); }\n\n\n let automationRulesCache=[];\n let automationConditions=[];\n let automationEffects=[];\n";