sbot/app/index.js

72 lines
1.9 KiB
JavaScript
Raw Normal View History

2015-06-24 17:41:17 +02:00
var app = require('app')
2015-06-25 04:42:31 +02:00
var path = require('path')
2015-06-24 17:41:17 +02:00
var Tray = require('tray')
var Menu = require('menu')
var shell = require('shell')
var BrowserWindow = require('browser-window')
2015-06-25 04:23:27 +02:00
2015-06-24 17:41:17 +02:00
var config = require('ssb-config')
2015-06-25 04:42:31 +02:00
var toPath = require('multiblob/util').toPath
2015-06-24 17:41:17 +02:00
// Report crashes to our server.
//require('crash-reporter').start();
var tray
var mainWindow
2015-06-24 17:41:17 +02:00
app.on('ready', function ready () {
2015-06-25 04:42:31 +02:00
var blobs_dir = path.join(config.path, 'blobs')
2015-06-24 17:41:17 +02:00
// start sbot
2015-06-25 04:23:27 +02:00
require('scuttlebot').init(config, function (err, sbot) {
// register protocols
2015-06-25 18:16:23 +02:00
require('protocol').registerProtocol('blob', require('./lib/blob-protocol')(config))
2015-06-25 04:23:27 +02:00
2015-06-24 20:14:52 +02:00
// open the web app
mainWindow = new BrowserWindow({width: 1000, height: 720})
mainWindow.loadUrl('file://' + __dirname + '/index.html')
2015-06-25 04:42:31 +02:00
mainWindow.webContents.on('new-window', onNewWindow)
mainWindow.on('closed', function() { mainWindow = null })
2015-06-24 20:14:52 +02:00
2015-06-25 04:42:31 +02:00
function onNewWindow (e, url) {
e.preventDefault() // hell naw
2015-06-25 18:16:23 +02:00
if (url.indexOf('blob:') === 0) {
2015-06-25 04:42:31 +02:00
// open the file
var id = url.split(':')[1]
shell.openItem(toPath(blobs_dir, id))
} else {
// open in the browser
shell.openExternal(url)
}
}
2015-06-24 20:14:52 +02:00
// setup menu
2015-06-24 23:48:00 +02:00
// Menu.setApplicationMenu(Menu.buildFromTemplate([{
// label: 'Window',
// submenu: [
// // { label: 'Open Web App', click: onopen },
// { label: 'Quit', click: onquit }
// ]
// }]))
2015-06-24 17:41:17 +02:00
// setup tray icon
2015-06-24 19:24:53 +02:00
tray = new Tray(__dirname+'/icon.png')
2015-06-24 20:14:52 +02:00
tray.setContextMenu(Menu.buildFromTemplate([
// { label: 'Open Web App', click: onopen },
2015-06-24 17:41:17 +02:00
{ label: 'Quit', click: onquit }
2015-06-24 20:14:52 +02:00
]))
2015-06-24 17:41:17 +02:00
tray.setToolTip('Secure Scuttlebutt: Running on port 8008')
// tray.on('double-clicked', onopen)
2015-06-24 17:41:17 +02:00
2015-06-24 20:14:52 +02:00
// menu handlers
2015-06-24 17:41:17 +02:00
function onopen () {
shell.openExternal('http://localhost:8008')
}
function onquit () {
tray = null
sbot.close()
process.exit()
}
})
});