oa助手类工具
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.
 
 

191 lines
5.3 KiB

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("<br>", "\n", -1))
let index = dialog.showMessageBoxSync({
type: "info",
buttons: ["通过", "拒绝", "忽略"],
defaultId: 2,
cancelId: 2,
title: data[i]["modename"],
message: data[i]["cont"].replace(/<br>/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)
}
}
}