Merge pull request #770 from kiwix/magnetLink

Use real magnet link in download modal
This commit is contained in:
Kelson 2022-05-14 17:05:05 +02:00 committed by GitHub
commit 8dbf015689
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 5 deletions

View File

@ -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', `<div class="modal-wrapper">
<div class="modal">
<div class="modal-heading">
@ -181,12 +192,13 @@
<div>Sha256 hash</div>
</a>
</div>
<div class="modal-regular-download">
<a href="${downloadLink}.magnet" target="_blank">
${magnetLink ?
`<div class="modal-regular-download">
<a href="${magnetLink}" target="_blank">
<img src="../skin/magnet.png?KIWIXCACHEID" alt="download magnet" />
<div>Magnet link</div>
</a>
</div>
</div>` : ``}
<div class="modal-regular-download">
<a href="${downloadLink}.torrent" download>
<img src="../skin/bittorrent.png?KIWIXCACHEID" alt="download torrent" />

View File

@ -319,7 +319,7 @@ R"EXPECTEDRESULT( src="/ROOT/skin/jquery-ui/external/jquery/jquery.js?cache
src: url("/ROOT/skin/fonts/Roboto.ttf?cacheid=84d10248") format("truetype");
<script src="/ROOT/skin/isotope.pkgd.min.js?cacheid=2e48d392" defer></script>
<script src="/ROOT/skin/iso6391To3.js?cacheid=ecde2bb3"></script>
<script type="text/javascript" src="/ROOT/skin/index.js?cacheid=0951f06f" defer></script>
<script type="text/javascript" src="/ROOT/skin/index.js?cacheid=c434aa35" defer></script>
)EXPECTEDRESULT"
},
{