const fs = require('fs'); const path = require('path'); const libdata2 = require(path.join(__dirname, "../data.js")); console.log("libdata2") console.log(libdata2) function syncTask(page, cb) { $.get(`http://oa.ouxuan.net/api.php?m=index&a=getyydata&adminid=${adminid}&cfrom=mweb&event=${libdata2.GetConfig().TaskType}&num=work&key=&loadci=1&page=${page}`, function (data) { var data = JSON.parse(data); if (data.code == 200) { if (page < data["data"]["maxpage"]) { syncTask(page + 1, function (rows) { cb(data["data"]["rows"].concat(rows)) }) } else { for (var i in data["data"]["rows"]) { $.ajax({ url: "http://oa.ouxuan.net/task.php?a=x&num=work&show=we&mid=" + data["data"]["rows"][i]["id"], async: false, success: function (html) { var last = "" $(html).find("div").each(function (item) { if (last == "所属项目") { a = ($(this).text()).split("(") a.pop() a = a.join("(") data["data"]["rows"][i]["project"] = a; } last = $(this).text() }) if (!data["data"]["rows"][i]["project"] || data["data"]["rows"][i]["project"] == "") { data["data"]["rows"][i]["project"] = "未归属项目" } } }); } cb(data["data"]["rows"], data["data"]["count"]) } } }) } function syncTaskConfig(url, key, apikey) { var isNew = false; var config = libdata2.GetConfig() $.ajax({ url: url, async: false, success: function (data) { data = JSON.parse(data) console.log(data) if (data.code == 200) { if (config[key] != data["data"][apikey]) { isNew = true } config[key] = data["data"][apikey] libdata2.SyncConfig(config) } }, error: function (err) { console.log(err) } }) console.log("isNew", isNew) return isNew; } exports.syncDaibanCount = function () { return syncTaskConfig(`http://oa.ouxuan.net/api.php?m=index&a=getyydata&adminid=${adminid}&cfrom=mweb&page=1&event=daib&num=daiban&key=&loadci=1`, "DaibanCount", "count") } exports.syncTaskCount = function () { return syncTaskConfig(`http://oa.ouxuan.net/api.php?m=index&a=getyydata&adminid=${adminid}&cfrom=mweb&event=my&num=work&key=&loadci=1&page=1`, "TaskCount", "count") } exports.syncTaskToFile = function (cb) { if (!fs.existsSync(libdata2.ProjectMapPath)) fs.writeFileSync(libdata2.ProjectMapPath, JSON.stringify({})) syncTask(1, function (data, count) { result = {}; for (let i in data) { if (!result[data[i]["project"]]) { result[data[i]["project"]] = []; } result[data[i]["project"]].push(data[i]) } fs.writeFileSync(libdata2.TaskPath, JSON.stringify(result)) for (var i in result) { var project_map = JSON.parse(fs.readFileSync(libdata2.ProjectMapPath)); if (!project_map[i]) { project_map[i] = ""; } } fs.writeFileSync(libdata2.ProjectMapPath, JSON.stringify(project_map)) if (cb) cb(); }) } exports.getTask = function () { return JSON.parse(fs.readFileSync(libdata2.TaskPath)); } exports.getProjectMap = function () { return JSON.parse(fs.readFileSync(libdata2.ProjectMapPath)); }