Magnet link handler (#15)
* feat: Magnet link handler registration on the config page
This commit is contained in:
committed by
GitHub
parent
d58b327957
commit
d9b06fb518
@@ -21,6 +21,15 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!-- Register Magnet Link Button -->
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label>
|
||||||
|
<!-- Empty label to keep the button aligned -->
|
||||||
|
</label>
|
||||||
|
<div class="btn btn-primary w-100" onclick="registerMagnetLinkHandler()">
|
||||||
|
Open Magnet Links in DecyphArr
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Debrid Configuration -->
|
<!-- Debrid Configuration -->
|
||||||
@@ -75,7 +84,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Repair Configuration -->
|
<!-- Repair Configuration -->
|
||||||
<div class="section">
|
<div class="section mb-5">
|
||||||
<h5 class="border-bottom pb-2">Repair Configuration</h5>
|
<h5 class="border-bottom pb-2">Repair Configuration</h5>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6 mb-3">
|
<div class="col-md-6 mb-3">
|
||||||
@@ -306,5 +315,22 @@
|
|||||||
arrCount++;
|
arrCount++;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// Register magnet link handler
|
||||||
|
function registerMagnetLinkHandler() {
|
||||||
|
if ('registerProtocolHandler' in navigator) {
|
||||||
|
try {
|
||||||
|
navigator.registerProtocolHandler(
|
||||||
|
'magnet',
|
||||||
|
`${window.location.origin}/download?magnet=%s`,
|
||||||
|
'DecyphArr'
|
||||||
|
);
|
||||||
|
console.log('Registered magnet link handler successfully.');
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Failed to register magnet link handler:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -69,6 +69,19 @@
|
|||||||
submitBtn.innerHTML = originalText;
|
submitBtn.innerHTML = originalText;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Read the URL parameters for a magnet link and add it to the download queue if found
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
const magnetURI = urlParams.get('magnet');
|
||||||
|
if (magnetURI) {
|
||||||
|
document.getElementById('magnetURI').value = magnetURI;
|
||||||
|
try {
|
||||||
|
document.getElementById('submitDownload').click();
|
||||||
|
history.replaceState({}, document.title, window.location.pathname);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error adding download:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
Reference in New Issue
Block a user