const fs = require('fs'); const path = require('path') const libdata = require(path.join(__dirname, "data.js")); const libdata2 = require(path.join(__dirname, "../data.js")); const ipc = require('electron').ipcRenderer const dialog = require('electron').remote.dialog function get(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return (r[2]); return null; } var config = libdata2.GetConfig(); var lastTime = config["loadhit-lastTime"]; if (!lastTime) { lastTime = config["loadhit-lastTime"] = Date.parse(new Date()) / 1000; libdata2.SyncConfig(config); } window.addEventListener('DOMContentLoaded', () => { libdata.syncTaskToFile(function () { ipc.send('put-in-tray') }) setInterval(function () { if (libdata.syncDaibanCount()) { libdata.syncTaskToFile(); } }, 5 * 1000) function Loadhit() { setTimeout(() => { let url = `http://oa.ouxuan.net/api.php?m=indexreim&a=loadhit&cfrom=mweb&time=${lastTime}`; $.get(url, function (data) { data = JSON.parse(data); console.log(data); if (data.code == 200) { data = data.data; if (data.rows.length > 0) { lastTime = data.loadtime; config = libdata2.GetConfig(); config["loadhit-lastTime"] = lastTime; libdata2.SyncConfig(config); for (var i = 0; i < data.rows.length; i++) { var xgurlSplice = data.rows[i].xgurl.split("|") if (xgurlSplice[0] == "work") { let id = xgurlSplice[1]; let taskData = libdata.getTaskById(id); let taskUrl = `http://oa.ouxuan.net/task.php?a=x&num=work&show=mweb&mid=${id}`; ipc.send('new-notification' , `${taskData["标题"]}` , `${taskData["创建人"]} ${taskData["所属项目"]} ${taskData["创建时间"]}\n说明:${taskData["说明"]}` , taskUrl) } } Loadhit() } } }) }, 5000); } Loadhit(); function CommitByQueue() { setTimeout(() => { let item = libdata2.PopCommitByQueue(); console.log("PopCommitByQueue") if (item && item.id) { console.log(item) let data = { sm: item.commit, name: "评论", mid: item.id, modenum: "work" }; $.ajax({ url: "http://oa.ouxuan.net/index.php?a=pinglun&m=flowopt&d=flow&ajaxbool=true", async: false, data: data, success: function () { ipc.send('new-notification', "有一条新的评论被同步", `分支:${item.branch} 评论内容:${item.commit}`) } }); } CommitByQueue(); }, 1000); } CommitByQueue(); function doDaib() { let igdbmap = libdata2.GetIgnoreDaibMap() let url = `http://oa.ouxuan.net/api.php?m=index&a=getyydata&page=1&event=daib&num=daiban`; $.get(url, function (data) { data = JSON.parse(data); if (data.code == 200) { data = data["data"]["rows"] for (var i in data) { if (data[i]["modenum"] != "work" && !igdbmap[data[i]["id"]]) { console.log(data[i]["cont"].replace("
", "\n", -1)) let index = dialog.showMessageBoxSync({ type: "info", buttons: ["通过", "拒绝", "忽略"], defaultId: 2, cancelId: 2, title: data[i]["modename"], message: data[i]["cont"].replace(/
/g, "\n") }); switch (index) { case 0: $.post("http://oa.ouxuan.net/index.php?a=check&m=flowopt&d=flow&ajaxbool=true", { tuiid: 0, mid: data[i]["id"], modenum: data[i]["modenum"], zt: 1, }, function (raw) { console.log("通过") console.log(raw) }) break; case 1: break; case 2: igdbmap = libdata2.GetIgnoreDaibMap(); igdbmap[data[i]["id"]] = true; libdata2.SyncIgnoreDaibMap(); break; default: } console.log(index); } } setTimeout(() => { doDaib() }, 10 * 1000); } }); } doDaib() let m = get("m"); if (PageJs[m]) { PageJs[m]() } else { // alert("未有指定动作:" + m); } }) PageJs = { login() { _loginsubmit = loginsubmit loginsubmit = function () { const adminuser = document.getElementById("adminuser") const adminpass = document.getElementById("adminpass") fs.writeFileSync(libdata2.UsernamePath, JSON.stringify({ username: adminuser.value, password: adminpass.value, })) _loginsubmit(0) } if (fs.existsSync(libdata2.UsernamePath)) { let data = fs.readFileSync(libdata2.UsernamePath); data = JSON.parse(data) const adminuser = document.getElementById("adminuser") adminuser.value = data["username"]; const adminpass = document.getElementById("adminpass") adminpass.value = data["password"]; loginsubmit(0) } } }