diff --git a/app/config.json b/app/config.json new file mode 100644 index 0000000..184ed71 --- /dev/null +++ b/app/config.json @@ -0,0 +1 @@ +{"music":"true","desktopDanmu":"false"} \ No newline at end of file diff --git a/app/css/index.css b/app/css/index.css index a4e93f8..5477108 100644 --- a/app/css/index.css +++ b/app/css/index.css @@ -24,3 +24,7 @@ .num { margin: 5px; } + +#set { + margin-top: 25px; +} diff --git a/app/player/playlist.txt b/app/player/playlist.txt index c10f6c1..213ecd6 100644 --- a/app/player/playlist.txt +++ b/app/player/playlist.txt @@ -1 +1,2 @@ 播放列表 +1. 玫瑰 diff --git a/app/render/frameless.html b/app/render/frameless.html new file mode 100644 index 0000000..e69de29 diff --git a/app/render/frameless.js b/app/render/frameless.js new file mode 100644 index 0000000..e69de29 diff --git a/app/render/github.js b/app/render/github.js new file mode 100644 index 0000000..96b3e6b --- /dev/null +++ b/app/render/github.js @@ -0,0 +1,8 @@ +const { shell } = require('electron'); + +$(document).ready(function() { + const githubLink = document.getElementById('github'); + githubLink.addEventListener('click', function(event) { + shell.openExternal('http://github.com/zephyrzoom'); + }); +}); diff --git a/app/render/index.html b/app/render/index.html index 4d6b804..e4734f8 100644 --- a/app/render/index.html +++ b/app/render/index.html @@ -11,6 +11,7 @@ @@ -19,7 +20,7 @@
- diff --git a/app/render/index.js b/app/render/index.js index fa15438..cae8469 100644 --- a/app/render/index.js +++ b/app/render/index.js @@ -1,6 +1,12 @@ -const danmu = require('../danmu/danmu'); -const { shell, ipcRenderer } = require('electron'); +const electron = require('electron'); +const { shell, ipcRenderer } = electron; +const { BrowserWindow, ipcMain } = electron.remote; + const diange = require('../player/system'); +const danmu = require('../danmu/danmu'); +const config = require('../util/config'); + +let cfg; // 处理格式化的弹幕 function splitDanmu(totalDanmu) { @@ -17,10 +23,12 @@ function updateMsg(nn, txt) { const pane = document.getElementById('pane'); pane.scrollTop = pane.scrollHeight; } + // 更新观众人数 function updateAudience(content) { $('#audience').text(content); } + // 设置房间号 function setRoomId(roomid) { $('#show-roomid').text(roomid); @@ -33,26 +41,39 @@ function setRoomId(roomid) { // github链接 $(document).ready(function() { - const githubLink = document.getElementById('github'); - githubLink.addEventListener('click', function(event) { - shell.openExternal('http://github.com/zephyrzoom'); - }); - const playlist = document.getElementById('playlist'); playlist.addEventListener('click', (event) => { - const { BrowserWindow } = require('electron').remote; let playlistWin = new BrowserWindow({ width: 200, height: 300, autoHideMenuBar: true, icon: __dirname + '../assets/favicon.ico', }); - playlistWin.loadURL(`file://${__dirname}/../render/playlist.html`); + playlistWin.loadURL(`file://${__dirname}/playlist.html`); playlistWin.on('closed', () => { playlistWin = null; }); }); + + const settings = document.getElementById('settings'); + settings.addEventListener('click', (event) => { + let settingsWin = new BrowserWindow({ + width: 200, + height: 100, + autoHideMenuBar: true, + icon: __dirname + '../assets/favicon.ico', + }); + settingsWin.loadURL(`file://${__dirname}/settings.html`); + + settingsWin.on('closed', () => { + settingsWin = null; + }); + }); + + config.getConfig((data) => { + cfg = data; + }); }); // 获取roomid @@ -60,6 +81,12 @@ ipcRenderer.on('roomid', (event, arg) => { setRoomId(arg); }); + +ipcMain.on('update-config', (event, arg) => { + cfg = arg; + console.log('update config', cfg); +}); + function formatMsg(msg) { const DANMU_TYPE = '1'; const BAMBOO_TYPE = '206'; @@ -73,7 +100,9 @@ function formatMsg(msg) { if (msg.type == DANMU_TYPE) { const identity = msg.data.from.identity; let nickName = msg.data.from.nickName; - diange([0, nickName, content]); // 处理点歌 + if (cfg.music == 'true') { // 设置可以开启点歌则处理点歌 + diange([0, nickName, content]); + } if (msg.data.from.sp_identity == SP_MANAGER) { nickName = '*超管*' + nickName; } diff --git a/app/render/login.html b/app/render/login.html index aac86de..850c1ab 100644 --- a/app/render/login.html +++ b/app/render/login.html @@ -11,6 +11,7 @@ diff --git a/app/render/login.js b/app/render/login.js index 92efbc5..353c159 100644 --- a/app/render/login.js +++ b/app/render/login.js @@ -6,11 +6,6 @@ function setRoomId() { } // github链接 $(document).ready(function() { - const { shell } = require('electron'); - const githubLink = document.getElementById('github'); - githubLink.addEventListener('click', function(event) { - shell.openExternal('http://github.com/zephyrzoom'); - }); // 回车登录 $('#roomid').keypress(function(event) { if (event.which == 13) { diff --git a/app/render/playlist.html b/app/render/playlist.html index 2f7e006..de76ff2 100644 --- a/app/render/playlist.html +++ b/app/render/playlist.html @@ -11,6 +11,7 @@ diff --git a/app/render/playlist.js b/app/render/playlist.js index 5da9b42..a8a3bd6 100644 --- a/app/render/playlist.js +++ b/app/render/playlist.js @@ -1,11 +1,6 @@ const { shell, ipcRenderer } = require('electron'); $(document).ready(function() { - const githubLink = document.getElementById('github'); - githubLink.addEventListener('click', function(event) { - shell.openExternal('http://github.com/zephyrzoom'); - }); - ipcRenderer.send('getList'); }); diff --git a/app/render/settings.html b/app/render/settings.html new file mode 100644 index 0000000..380e084 --- /dev/null +++ b/app/render/settings.html @@ -0,0 +1,36 @@ + + + + + + 系统设置 + + + + + + + + +
+
+
+
+
+ + +
+
+
+
+ +
+ + + diff --git a/app/render/settings.js b/app/render/settings.js new file mode 100644 index 0000000..0418214 --- /dev/null +++ b/app/render/settings.js @@ -0,0 +1,44 @@ +const config = require('../util/config'); + +const { ipcRenderer } = require('electron'); + +let cfg; +$(document).ready(() => { + config.getConfig((data) => { + cfg = data; + if (data.music == 'true') { + $('#music').addClass('btn-negative').text('关闭点歌'); + } else { + $('#music').addClass('btn-positive').text('开启点歌'); + } + if (data.desktopDanmu == 'true') { + $('#desktopDanmu').addClass('btn-negative').text('关闭弹幕'); + } else { + $('#desktopDanmu').addClass('btn-positive').text('开启弹幕'); + } + }); + + $('#music').click(() => { + if ($('#music').hasClass('btn-negative')) { + cfg.music = 'false'; + $('#music').removeClass('btn-negative').addClass('btn-positive').text('开启点歌'); + } else { + cfg.music = 'true'; + $('#music').removeClass('btn-positive').addClass('btn-negative').text('关闭点歌'); + } + ipcRenderer.send('update-config', cfg); + config.setConfig(cfg); + }); + + $('#desktopDanmu').click(() => { + if ($('#desktopDanmu').hasClass('btn-negative')) { + cfg.desktopDanmu = 'false'; + $('#desktopDanmu').removeClass('btn-negative').addClass('btn-positive').text('开启弹幕'); + } else { + cfg.desktopDanmu = 'true'; + $('#desktopDanmu').removeClass('btn-positive').addClass('btn-negative').text('关闭弹幕'); + } + ipcRenderer.send('update-config', cfg); + config.setConfig(cfg); + }); +}); diff --git a/app/util/config.js b/app/util/config.js new file mode 100644 index 0000000..3e4a65f --- /dev/null +++ b/app/util/config.js @@ -0,0 +1,22 @@ +const fs = require('fs'); + +const CONFIG_PATH = __dirname + '/../config.json'; +let config; + + +exports.getConfig = function getConfig(callback) { + fs.readFile(CONFIG_PATH, (err, data) => { + if (err) throw err; + config = JSON.parse(data); + if (callback) { + callback(config); + } + }); +}; + +exports.setConfig = function setConfig(newConfig) { + config = newConfig; + fs.writeFile(CONFIG_PATH, JSON.stringify(config), (err) => { + if (err) throw err; + }); +}; diff --git a/log/log.txt b/log/log.txt index 449c40d..fc75a84 100644 --- a/log/log.txt +++ b/log/log.txt @@ -1,2 +1,3 @@ -8/2/2016, 3:13:25 AM 点歌成功 -8/2/2016, 3:15:25 AM 点歌成功 +8/3/2016, 3:15:36 AM 点歌成功 +8/3/2016, 3:16:21 AM 切歌成功 +8/3/2016, 3:16:27 AM 点歌成功 diff --git a/todo b/todo index 30a97f6..4b9ecdf 100644 --- a/todo +++ b/todo @@ -5,5 +5,3 @@ 点歌升级 设置播放列表文件路径 弹幕显示的透明页面 -增加系统配置文件 -设置点歌开关