diff --git a/app/index.html b/app/index.html index f3c75e0..54970c0 100644 --- a/app/index.html +++ b/app/index.html @@ -312,7 +312,8 @@ + target="_blank">chrome://flags/#disable-accelerated-2d-canvas set to + Disabled] @@ -348,7 +349,7 @@ - +

Other

@@ -363,12 +364,15 @@
- +
+

Restart may be required for some settings to take effect.

diff --git a/app/js/settingsHandler.js b/app/js/settingsHandler.js index ef56cc1..37b65cc 100644 --- a/app/js/settingsHandler.js +++ b/app/js/settingsHandler.js @@ -66,6 +66,15 @@ function renderSettings() { } }) } +function registerProtocol() { + if ('registerProtocolHandler' in navigator) { + navigator.registerProtocolHandler( + 'magnet', + `${location.href.replace(location.hash, '')}#&m=%s`, + 'Miru' + ); + } +} if (!localStorage.getItem("settings")) { restoreDefaults() @@ -74,6 +83,7 @@ settings = JSON.parse(localStorage.getItem("settings")) renderSettings() setRes.addEventListener("click", restoreDefaults) settingsTab.addEventListener("click", applySettings) +regProtButton.addEventListener("click", registerProtocol) let searchParams = new URLSearchParams(location.href) if (searchParams.get("access_token")) { diff --git a/app/js/torrentHandler.js b/app/js/torrentHandler.js index 66b261c..7f4c96a 100644 --- a/app/js/torrentHandler.js +++ b/app/js/torrentHandler.js @@ -28,7 +28,13 @@ const announceList = [ '.avi', '.mp4', '.m4v', '.webm', '.mov', '.mkv', '.mpg', '.mpeg', '.ogv', '.wmv', '.m2ts' ], scope = '/app/', - sw = navigator.serviceWorker.register('sw.js', { scope }) + sw = navigator.serviceWorker.register('sw.js', { scope }).then(e => { + if (searchParams.get("m")) { + addTorrent(searchParams.get("m")) + } + }).catch(e => { + location.reload() + }) //for debugging function t(a) { switch (a) { diff --git a/index.html b/index.html index 8d3add6..656f48c 100644 --- a/index.html +++ b/index.html @@ -57,7 +57,7 @@
Add App
- + Open In Browser diff --git a/manifest.json b/manifest.json index 1dc5e42..979978b 100644 --- a/manifest.json +++ b/manifest.json @@ -23,5 +23,11 @@ "scope_url_scheme": "https", "scope_url_host": "miru.moe", "scope_url_path": "/app/" - } + }, + "protocol_handlers": [ + { + "protocol": "magnet", + "url": "/app/#&m=%s" + } + ] } \ No newline at end of file