Use EventTarget

Getting torrent info from servers now uses Events
instead of magic callbacks.
This commit is contained in:
2025-10-09 13:08:24 +02:00
parent 4986ee0ea5
commit b2f155c0b4
3 changed files with 59 additions and 7 deletions

View File

@@ -34,7 +34,9 @@ class trweb {
this.#logger = logger;
}
this.#dom_servermanager = new trdom_servermanager(this.#loadcb, this.#savecb, this.#logcb, this.#registerServer)
this.#dom_servermanager = new trdom_servermanager(this.#loadcb, this.#savecb, this.#logcb, this.#registerServer);
this.#dom_servermanager.addEventListener('torrent-update', this);
this.#guiFooter = document.createElement('div');
this.#guiFooter.classList.add('trweb_footer');
@@ -182,6 +184,16 @@ class trweb {
this.#dom_servermanager.saveServers();
this.setTimer();
break;
case 'torrent-update':
let mergedTorrentInfo = this.#knownTorrents[e.detail.torrentHash];
if (mergedTorrentInfo == null) {
mergedTorrentInfo = this.#createTorrentEntry(e.detail.torrentHash);
}
mergedTorrentInfo.setStatus(e.detail.serverName, e.detail.torrentInfo);
mergedTorrentInfo.name = e.detail.torrentInfo.name;
this.#updateTorrentDisplay(mergedTorrentInfo);
break;
}
}