You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.4 KiB
88 lines
2.4 KiB
const {_Crypto} = require('./cryptoLib');
|
|
const mongoose = require('mongoose');
|
|
const {app, BrowserWindow, ipcMain} = require('electron');
|
|
const mongoDB = 'mongodb+srv://admin:admin@cluster0.hrgvn.mongodb.net/LegendaryLeague?retryWrites=true&w=majority';
|
|
const userModel = require('./models/users');
|
|
const {LeagueAPI} = require('./leagueAPI')
|
|
var window;
|
|
function createWindow()
|
|
{
|
|
var width = 800;
|
|
var height=600;
|
|
const win = new BrowserWindow({
|
|
width,
|
|
height,
|
|
frame:false,
|
|
minimizable: true,
|
|
webPreferences:
|
|
{
|
|
nodeIntegration:false,
|
|
contextIsolation:true,
|
|
preload: __dirname + '/preload.js'
|
|
}
|
|
|
|
})
|
|
win.removeMenu();
|
|
win.webContents.openDevTools();
|
|
win.loadURL('http://localhost:3000');
|
|
return win;
|
|
|
|
}
|
|
app.on('ready', ()=>
|
|
{
|
|
mongoose.Promise = global.Promise;
|
|
window = createWindow();
|
|
mongoose.connect(mongoDB);
|
|
} )
|
|
|
|
ipcMain.on('close', (event, data) =>
|
|
{
|
|
app.quit();
|
|
})
|
|
ipcMain.on('maximize', (event, data) =>
|
|
{
|
|
window.isMaximized() ? window.unmaximize() : window.maximize()
|
|
})
|
|
ipcMain.on('minimize', (event, data) =>
|
|
{
|
|
window.minimize();
|
|
});
|
|
ipcMain.on('login', async (event, data) =>
|
|
{
|
|
console.log('data',data);
|
|
const Hash = await new _Crypto(data.email, data.pw).bouncer();
|
|
console.log(Hash)
|
|
if(Hash)
|
|
{
|
|
window.webContents.send('login', Hash)
|
|
}
|
|
});
|
|
ipcMain.on('register', async (event, data) =>
|
|
{
|
|
//console.log('event',event,'data',data);
|
|
var nick_tag = data.nick_tag.split('#');
|
|
var name = nick_tag[0];
|
|
var tag = nick_tag[1]
|
|
var RiotExists = await new LeagueAPI().verifyUserName(name, tag);
|
|
if(!RiotExists) return window.webContents.send('register', 'No account on league with this name and/or tag.')
|
|
const crypto = new _Crypto(data.email, data.pw)
|
|
const Hash = crypto.hash();
|
|
const eHash = crypto.eHash();
|
|
const isNew = await crypto.isNew(eHash);
|
|
if(!isNew) return window.webContents.send('register', 'There is already an account with this email.')
|
|
var uModel = new userModel();
|
|
uModel.Hash = Hash;
|
|
uModel.eHash = eHash;
|
|
uModel.leagueName = data.nick_tag;
|
|
const saved = await uModel.save();
|
|
window.webContents.send('register',JSON.stringify(saved))
|
|
});
|
|
|
|
app.on('window-all-closed', ()=>
|
|
{
|
|
if(process.platform !== 'darwin') app.quit();
|
|
})
|
|
app.on('activate', ()=>
|
|
{
|
|
if(BrowserWindow.getAllWindows().length === 0) createWindow();
|
|
}) |