Windows: register protocol handler for magnet links

This commit is contained in:
Feross Aboukhadijeh
2016-03-19 18:32:58 -07:00
parent 381087208c
commit 2cc8ebc9f8
3 changed files with 33 additions and 3 deletions

View File

@@ -1,10 +1,12 @@
var electron = require('electron')
var app = electron.app
var ipc = require('./ipc')
var menu = require('./menu')
var shortcuts = require('./shortcuts')
var windows = require('./windows')
var app = electron.app
var registerProtocolHandler = require('./register-protocol-handler')
app.on('open-file', onOpen)
app.on('open-url', onOpen)
@@ -16,6 +18,7 @@ app.on('ready', function () {
menu.init()
windows.createMainWindow()
shortcuts.init()
registerProtocolHandler()
})
app.on('before-quit', function () {

View File

@@ -0,0 +1,26 @@
module.exports = function () {
if (process.platform === 'win32') {
registerProtocolHandler('magnet', 'URL:BitTorrent Magnet URL', 'WebTorrent.exe')
}
}
function registerProtocolHandler (protocol, name, command) {
var Registry = require('winreg')
var protocolKey = new Registry({
hive: Registry.HKCR, // HKEY_CLASSES_ROOT
key: '\\' + protocol
})
protocolKey.set('', Registry.REG_SZ, name, callback)
protocolKey.set('URL Protocol', Registry.REG_SZ, '', callback)
var commandKey = new Registry({
hive: Registry.HKCR,
key: '\\' + protocol + '\\shell\\open\\command'
})
commandKey.set('', Registry.REG_SZ, '"' + command + '" "%1"', callback)
function callback (err) {
if (err) console.error(err.message || err)
}
}

View File

@@ -25,7 +25,8 @@
"prettier-bytes": "^1.0.1",
"upload-element": "^1.0.1",
"virtual-dom": "^2.1.1",
"webtorrent": "^0.86.0"
"webtorrent": "^0.86.0",
"winreg": "^1.0.1"
},
"devDependencies": {
"electron-packager": "^5.0.0",