<commit_before>const {app, BrowserWindow} = require('electron')
var jayson = require('jayson');
var client = jayson.client.http('http://localhost:5279/lbryapi');


// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let win
// Also keep the daemon subprocess alive
let subpy
// set to true when the quitting sequence has started
let quitting = false;

function createWindow () {
  // Create the browser window.
  //win = new BrowserWindow({x: 0, y: 0, width: 1440, height: 414, backgroundColor: '#155b4a'})
  win = new BrowserWindow({backgroundColor: '#155b4a'})
  win.maximize()

  //win.webContents.openDevTools()

  // and load the index.html of the app.
  win.loadURL(`file://${__dirname}/dist/index.html`)

  // Emitted when the window is closed.
  win.on('closed', () => {
    // Dereference the window object, usually you would store windows
    // in an array if your app supports multi windows, this is the time
    // when you should delete the corresponding element.
    win = null
  })
};

function lauchDaemon() {
  if (subpy) {
    return;
  }
  console.log(`${__dirname}/dist/lbry`);
  subpy = require('child_process').spawn(`${__dirname}/dist/lbry`, ['--no-launch', '--log-to-console'], {stdio: ['ignore', process.stdout, process.stderr]})
  subpy.on('exit', () => {
    console.log('The daemon has exited. Quitting the app');
    subpy = null;
    if (quitting) {
      app.quit();
    } else {
      win.loadURL(`file://${__dirname}/dist/warning.html`);
      setTimeout(app.quit, 5000)
    }
  });
  console.log('lbrynet daemon has launched')
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', function(){
    // Check if the daemon is already running. If we get
    // an error its because its not running
    client.request(
	'status', [],
	function (err, res) {
	    // Did it all work ? 
	    if (err) {
		lauchDaemon();
	    }
	}
    );
    createWindow();
});


// Quit when all windows are closed.
app.on('window-all-closed', () => {
  // On macOS it is common for applications and their menu bar
  // to stay active until the user quits explicitly with Cmd + Q<commit_msg>more logging around daemon process management<commit_after>const {app, BrowserWindow} = require('electron')
var jayson = require('jayson');
var client = jayson.client.http('http://localhost:5279/lbryapi');


// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let win
// Also keep the daemon subprocess alive
let subpy
// set to true when the quitting sequence has started
let quitting = false;

function createWindow () {
  // Create the browser window.
  //win = new BrowserWindow({x: 0, y: 0, width: 1440, height: 414, backgroundColor: '#155b4a'})
  win = new BrowserWindow({backgroundColor: '#155b4a'})
  win.maximize()

  //win.webContents.openDevTools()

  // and load the index.html of the app.
  win.loadURL(`file://${__dirname}/dist/index.html`)

  // Emitted when the window is closed.
  win.on('closed', () => {
    // Dereference the window object, usually you would store windows
    // in an array if your app supports multi windows, this is the time
    // when you should delete the corresponding element.
    win = null
  })
};

function lauchDaemon() {
  if (subpy) {
    return;
  }
  console.log(`${__dirname}/dist/lbry`);
  subpy = require('child_process').spawn(`${__dirname}/dist/lbry`, ['--no-launch', '--log-to-console'], {stdio: ['ignore', process.stdout, process.stderr]})
  subpy.on('exit', () => {
    console.log('The daemon has exited. Quitting the app');
    subpy = null;
    if (quitting) {
      app.quit();
    } else {
      win.loadURL(`file://${__dirname}/dist/warning.html`);
      setTimeout(app.quit, 5000)
    }
  });
  console.log('lbrynet daemon has launched')
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', function(){
    // Check if the daemon is already running. If we get
    // an error its because its not running
    console.log('Checking for lbrynet daemon')
    client.request(
	'status', [],
	function (err, res) {
	    // Did it all work ? 
	    if (err) {
		console.log('lbrynet daemon needs to be launched')
		lauchDaemon();
	    } else {
		console.log('lbrynet daemon is already running')
	    }
	}
    );
    createWindow();
});


// Quit when all windows are closed.
app.on('window-all-closed', () => {
  // On macOS it is common for applications and their menu bar
  // to stay active until the user quits explicitly with Cmd + Q
{'fraction_non_alphanumeric': 0.13553413984006563, 'fraction_numerical': 0.01025220422390814, 'mean_word_length': 3.256544502617801, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1293220', 'n_tokens_mistral': 1547, 'n_tokens_neox': 1463, 'n_words': 518}