sbot/app/index.js

65 lines
2.0 KiB
JavaScript
Raw Normal View History

2015-06-24 17:41:17 +02:00
var app = require('app')
var Menu = require('menu')
var shell = require('shell')
var BrowserWindow = require('browser-window')
var path = require('path')
2015-06-25 04:23:27 +02:00
2015-06-24 17:41:17 +02:00
var config = require('ssb-config')
var setupRpc = require('./lib/muxrpc-ipc')
2015-06-24 17:41:17 +02:00
// Report crashes to our server.
//require('crash-reporter').start();
var mainWindow
2015-06-24 17:41:17 +02:00
app.on('ready', function ready () {
// setup blobs
2015-06-25 04:42:31 +02:00
var blobs_dir = path.join(config.path, 'blobs')
var downloads_dir = app.getPath('userDesktop')
var blobs = require('./lib/blobs')(blobs_dir, downloads_dir)
2015-06-25 04:42:31 +02:00
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
require('protocol').registerProtocol('blob', blobs.protocol)
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})
2015-06-26 01:53:06 +02:00
// mainWindow.openDevTools()
mainWindow.loadUrl('file://' + path.join(__dirname, '../node_modules/ssbplug-phoenix/home.html'))
2015-06-25 04:42:31 +02:00
mainWindow.webContents.on('new-window', onNewWindow)
mainWindow.on('closed', function() { mainWindow = null })
setupRpc(sbot, mainWindow)
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
blobs.checkout(url, function (err, path) {
if (err) {
if (err.badUrl)
alert('Error: Not a valid file reference')
else if (err.notFound)
alert('Error: This file has not yet been synced. Please try again soon.') // :TODO: show 'search' window
else
console.log(err) // :TODO: something nicer
} else
shell.openItem(path)
})
2015-06-25 04:42:31 +02:00
} 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
})
});