diff --git a/static/skin/index.js b/static/skin/index.js index 5c435ac6..62e6d5d6 100644 --- a/static/skin/index.js +++ b/static/skin/index.js @@ -142,10 +142,21 @@ } } + async function getMagnetLink(downloadLink) { + const magnetUrl = downloadLink + '.magnet'; + const controller = new AbortController(); + setTimeout(() => controller.abort(), 5000); + const magnetLink = await fetch(magnetUrl, { signal: controller.signal }).then(response => { + return response.ok ? response.text() : ''; + }).catch((_error) => ''); + return magnetLink; + } + function insertModal(button) { const downloadLink = button.getAttribute('data-link'); - button.addEventListener('click', (event) => { + button.addEventListener('click', async (event) => { event.preventDefault(); + const magnetLink = await getMagnetLink(downloadLink); document.body.insertAdjacentHTML('beforeend', `