Commit 46875bb7 authored by 神楽坂玲奈's avatar 神楽坂玲奈

logout

parent 8c4a26b8
...@@ -12,6 +12,7 @@ const EventEmitter = require('events'); ...@@ -12,6 +12,7 @@ const EventEmitter = require('events');
const eventemitter = new EventEmitter(); const eventemitter = new EventEmitter();
const electron = require('electron'); const electron = require('electron');
const ipcMain = electron.ipcMain;
const app = electron.app; const app = electron.app;
const BrowserWindow = electron.BrowserWindow; const BrowserWindow = electron.BrowserWindow;
...@@ -169,19 +170,31 @@ function start_server() { ...@@ -169,19 +170,31 @@ function start_server() {
} }
connection.on('message', (message) => { connection.on('message', (message) => {
message = JSON.parse(message); message = JSON.parse(message);
eventemitter.emit(message.event, ...message.data); if (message.event == 'login') {
let user = message.data[0];
for (let window of BrowserWindow.getAllWindows()) {
window.webContents.send('login', user);
}
message = JSON.stringify({event: 'login', data: [user]});
for (let client of server.clients) {
if (client != connection) {
client.send(message);
}
}
} else {
eventemitter.emit(message.event, ...message.data);
}
}); });
}); });
eventemitter.on('update', (app, local, resson)=> {
let message = JSON.stringify({event: 'update', data: [app, local, resson]});
for (let connection of server.clients) {
connection.send(message);
}
save_db();
})
} }
eventemitter.on('update', (app, local, resson)=> {
let message = JSON.stringify({event: 'update', data: [app, local, resson]});
for (let connection of server.clients) {
connection.send(message);
}
save_db();
});
function load(app, local, callback) { function load(app, local, callback) {
let pending = 1; let pending = 1;
......
...@@ -118,7 +118,7 @@ body.maximized #maximize { ...@@ -118,7 +118,7 @@ body.maximized #maximize {
padding: 0.175rem; padding: 0.175rem;
} }
#name { #username, #logout {
float: left; float: left;
padding-top: .425rem; padding-top: .425rem;
padding-bottom: .425rem; padding-bottom: .425rem;
......
...@@ -21,9 +21,10 @@ ...@@ -21,9 +21,10 @@
</li> </li>
</ul> </ul>
<div class="navbar-right"> <div class="navbar-right">
<div id="user"> <div id="user" hidden>
<img id="avatar" src="https://forum-cdn.touhou.cc/user_avatar/forum.touhou.cc/zh99998/36/167_1.png"> <img id="avatar">
<div id="name">zh99998</div> <div id="username"></div>
<div id="logout">切换</div>
</div> </div>
<div id="window-buttons" hidden> <div id="window-buttons" hidden>
<i id="minimize" class="icon-minimize"></i> <i id="minimize" class="icon-minimize"></i>
......
var platform = process.platform; 'use strict';
var remote = require('remote');
var current_window = remote.getCurrentWindow();
document.getElementById("minimize").onclick = function () { const ipcRenderer = require('electron').ipcRenderer;
const remote = require('remote');
const current_window = remote.getCurrentWindow();
document.getElementById("minimize").onclick = ()=> {
current_window.minimize() current_window.minimize()
}; };
document.getElementById("maximize").onclick = function () { document.getElementById("maximize").onclick = ()=> {
current_window.maximize(); current_window.maximize();
}; };
document.getElementById("restore").onclick = function () { document.getElementById("restore").onclick = ()=> {
current_window.unmaximize(); current_window.unmaximize();
}; };
document.getElementById("close").onclick = function () { document.getElementById("close").onclick = ()=> {
current_window.close(); current_window.close();
}; };
current_window.on('maximize', function () { current_window.on('maximize', ()=> {
document.body.className = platform + ' maximized' document.body.className = process.platform + ' maximized'
}); });
current_window.on('unmaximize', function () { current_window.on('unmaximize', ()=> {
document.body.className = platform document.body.className = process.platform
}); });
if (current_window.isMaximized()) { if (current_window.isMaximized()) {
document.body.className = platform + ' maximized' document.body.className = process.platform + ' maximized'
} else { } else {
document.body.className = platform document.body.className = process.platform
} }
window.onhashchange = function (event) { window.onhashchange = (event) => {
var hash = event.newURL.split('#', 2)[1]; let hash = event.newURL.split('#', 2)[1];
document.getElementsByClassName('active')[0].className = ""; document.getElementsByClassName('active')[0].className = "";
document.getElementById('nav-' + hash).className = "active"; document.getElementById('nav-' + hash).className = "active";
document.getElementById(event.oldURL.split('#', 2)[1]).style.display = 'none'; document.getElementById(event.oldURL.split('#', 2)[1]).style.display = 'none';
document.getElementById(hash).style.display = 'block'; document.getElementById(hash).style.display = 'block';
}; };
var hash = location.href.split('#', 2)[1]; let hash = location.href.split('#', 2)[1];
document.getElementById('nav-' + hash).className = "active"; document.getElementById('nav-' + hash).className = "active";
document.getElementById(hash).style.display = 'block'; document.getElementById(hash).style.display = 'block';
var webviews = document.getElementsByTagName('webview'); let webviews = document.getElementsByTagName('webview');
for (var i = 0; i < webviews.length; i++) { for (var i = 0; i < webviews.length; i++) {
webviews.item(i).addEventListener('new-window', function (event) { webviews.item(i).addEventListener('new-window', (event) => {
require('electron').shell.openExternal(event.url); require('electron').shell.openExternal(event.url);
}); });
} }
\ No newline at end of file
document.getElementById("logout").onclick = ()=> {
current_window.webContents.session.clearStorageData(()=> {
location.reload();
})
};
ipcRenderer.on('login', (event, user)=> {
console.log(event, user);
document.getElementById('avatar').src = user.avatar_url;
document.getElementById('username').innerHTML = user.username;
document.getElementById('user').removeAttribute('hidden');
});
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment