parent
8f9f05b4ed
commit
931aa577d3
@ -0,0 +1 @@
|
||||
[{"lx":"单选题","uuid":"e6d957c8-7d7b-4df1-999f-7959e776317a","xuexiang":[{"lx":"wb","wb":"选项A 正确","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d"},{"lx":"wb","wb":"选项B","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d"}],"tm":{"lx":"pic","pic":"http://localhost:89/e6d957c8-7d7b-4df1-999f-7959e776317a/askforteakcb.png","wb":"test"},"daan":"A"},{"lx":"多选题","uuid":"9bc5fe7b-9d41-42ff-8e3d-a37154e2fad1","xuexiang":[{"lx":"wb","wb":"选项A 正确","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d"},{"lx":"wb","wb":"选项B 正确","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d"},{"lx":"wb","wb":"选项C","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d"}],"tm":{"lx":"pic","pic":"http://localhost:89/9bc5fe7b-9d41-42ff-8e3d-a37154e2fad1/askforteakcb.png","wb":""},"daan":["A","B"]},{"lx":"填空题","uuid":"1b100b1b-ebaa-469c-bd2d-3227760cb32f","xuexiang":[],"tm":{"lx":"wb","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d","wb":"填空题 答案为TEST"},"sr":"TEST"},{"lx":"填空题","uuid":"91e4ffa9-21e2-47f0-9480-6c0d6ffc41dc","xuexiang":[],"tm":{"lx":"wb","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d","wb":"填空题 由老师判"},"sr":"pick up me 满分"},{"lx":"简答题","uuid":"8f577885-a8a4-43cf-94d4-b3a50828275a","xuexiang":[],"tm":{"lx":"wb","pic":"https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fddd83bc0-4c41-482a-8888-083d09096ae9%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1739691239&t=f2f6f3c92693182304a737e6faf0e97d","wb":"简答题 老师判"},"filelist":[{"url":"8f577885-a8a4-43cf-94d4-b3a50828275a202413501062/0ab5b8c5-1cdb-4531-b178-cc6ba74737e1.png","file":"a8.png"}]}]
|
@ -0,0 +1,124 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const uuidv4 = require('uuid');
|
||||
var q = require('qiao-zip');
|
||||
const os = require("os");
|
||||
/*
|
||||
name:biao[j][nameid],
|
||||
xuehao:biao[j][xuehaoid],
|
||||
sex:biao[j][sex],
|
||||
classid:biao[j][classid],
|
||||
xueyuan:biao[j][xueyaunid],
|
||||
idcard:biao[j][idcardid],
|
||||
ruxuetime:ruxue,
|
||||
iphone:biao[j][iphone],
|
||||
parentphone:biao[j][parentphone],
|
||||
parentname:biao[j][parentname],
|
||||
*/
|
||||
function nametop(){
|
||||
|
||||
}
|
||||
async function makeExcel(exceljson) {
|
||||
|
||||
let wblist=[]//excel文本列表
|
||||
wblist.push("姓名");
|
||||
wblist.push("学号")
|
||||
wblist.push("性别")
|
||||
wblist.push("专业");
|
||||
wblist.push("学院")
|
||||
wblist.push("身份证号")
|
||||
wblist.push("入学时间")
|
||||
wblist.push("手机号")
|
||||
wblist.push("默认密码")
|
||||
let listexcel=""
|
||||
//console.log(exceljson);
|
||||
exceljson.map((value,index) => {
|
||||
let nameindex = wblist.indexOf(value.name);
|
||||
|
||||
if (nameindex == -1) {
|
||||
wblist.push(value.name);
|
||||
nameindex = wblist.indexOf(value.name);
|
||||
}
|
||||
let namexml = `<c r="A${index + 2}" t="s"><v>${nameindex}</v></c> `;
|
||||
let xuehaoindex
|
||||
= wblist.indexOf(value.xuehao);
|
||||
if (xuehaoindex === -1) {
|
||||
wblist.push(value.xuehao);
|
||||
xuehaoindex = wblist.indexOf(value.xuehao);
|
||||
}
|
||||
let xuehaoxml = `<c r="B${index + 2}" t="s"><v>${xuehaoindex}</v></c> `
|
||||
let sexindex = wblist.indexOf(value.sex);
|
||||
if (sexindex === -1) {
|
||||
wblist.push(value.sex)
|
||||
sexindex = wblist.indexOf(value.sex)
|
||||
}
|
||||
let sexxml = `<c r="C${index + 2}" t="s"><v>${sexindex}</v></c>`
|
||||
let classindex = wblist.indexOf(value.classid);
|
||||
if (classindex === -1) {
|
||||
wblist.push(value.classid);
|
||||
classindex = wblist.indexOf(value.classid);
|
||||
}
|
||||
let classxml = `<c r="D${index + 2}" t="s"><v>${classindex}</v></c>`
|
||||
let xueyuanindex = wblist.indexOf(value.xueyuan);
|
||||
if (xueyuanindex === -1) {
|
||||
wblist.push(value.xueyuan);
|
||||
xueyuanindex = wblist.indexOf(value.xueyuan);
|
||||
}
|
||||
let xueyuanxml = `<c r="E${index + 2}" t="s"><v>${xueyuanindex}</v></c>`
|
||||
let idcardindex = wblist.indexOf(value.idcard);
|
||||
if (idcardindex === -1) {
|
||||
wblist.push(value.idcard);
|
||||
idcardindex = wblist.indexOf(value.idcard);
|
||||
}
|
||||
let idcardxml = `<c r="F${index + 2}" t="s"><v>${idcardindex}</v></c>`
|
||||
let ruxuetimeindex = wblist.indexOf(value.ruxuetime);
|
||||
if (ruxuetimeindex === -1) {
|
||||
wblist.push(value.ruxuetime);
|
||||
ruxuetimeindex = wblist.indexOf(value.ruxuetime);
|
||||
}
|
||||
let ruxuetimexml = `<c r="G${index + 2}" t="s"><v>${ruxuetimeindex}</v></c>`
|
||||
let iphoneindex = wblist.indexOf(value.iphone);
|
||||
if (iphoneindex === -1) {
|
||||
wblist.push(value.iphone);
|
||||
iphoneindex = wblist.indexOf(value.iphone);
|
||||
}
|
||||
let iphonexml = `<c r="H${index + 2}" t="s"><v>${iphoneindex}</v></c>`
|
||||
let passwordindex = wblist.indexOf(value.password);
|
||||
console.log(value.password)
|
||||
if (passwordindex === -1) {
|
||||
wblist.push(value.password);
|
||||
passwordindex = wblist.indexOf(value.password);
|
||||
}
|
||||
let passwordxml = `<c r="I${index + 2}" t="s"><v>${passwordindex}</v></c>`
|
||||
const xmlall=namexml+xuehaoxml+sexxml+classxml+xueyuanxml+idcardxml+ruxuetimexml+iphonexml+passwordxml;
|
||||
const row=`<row r = "${index+2}" spans = "1:9" >${xmlall}</row> `
|
||||
listexcel+=row;
|
||||
})
|
||||
let moban=fs.readFileSync("sheet2.xml","utf8")
|
||||
let shuzu= moban.split("shuliang");
|
||||
moban=shuzu[0]+`I${exceljson.length+1}`+shuzu[1];
|
||||
shuzu=moban.split("charuwengjian");
|
||||
moban=shuzu[0]+listexcel+shuzu[1];
|
||||
let stringlist="";
|
||||
wblist.map((value,index)=>{
|
||||
const wbxml=`<si><t>${value}</t></si>`
|
||||
stringlist+=wbxml;
|
||||
})
|
||||
let wbxml=fs.readFileSync("sharedStrings.xml","utf8")
|
||||
let wbshuzu=wbxml.split("wblist");
|
||||
wbxml=wbshuzu[0]+stringlist+wbshuzu[1];
|
||||
const cacheDir = path.join(os.homedir(), '.cache');
|
||||
const filedir=cacheDir+'\\learn\\'+uuidv4.v4();
|
||||
console.log(filedir)
|
||||
fs.mkdirSync(filedir);
|
||||
await q.unzip("scexcelstu.zip", filedir)
|
||||
fs.writeFileSync(`${filedir}\\xl\\sharedStrings.xml`,wbxml)
|
||||
fs.writeFileSync(`${filedir}\\xl\\worksheets\\sheet1.xml`,moban)
|
||||
const uuidv41=uuidv4.v4();
|
||||
const dir=`C:\\Users\\l\\WebstormProjects\\examp\\serve\\nginx\\html\\stuexcel\\${uuidv41}.zip`;
|
||||
|
||||
await q.zip(filedir, dir,false)
|
||||
fs.copyFileSync(dir,`C:\\Users\\l\\WebstormProjects\\examp\\serve\\nginx\\html\\stuexcel\\${uuidv41}.xlsx`)
|
||||
return(`http://localhost:89/stuexcel/${uuidv41}.xlsx`);
|
||||
}
|
||||
exports.makeExcel=makeExcel;
|
@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "serve",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@napi-rs/canvas": "^0.1.70",
|
||||
"archiver": "^7.0.1",
|
||||
"axios": "^1.7.9",
|
||||
"cors": "^2.8.5",
|
||||
"express": "^4.21.1",
|
||||
"http": "^0.0.1-security",
|
||||
"lz-string": "^1.5.0",
|
||||
"moment": "^2.30.1",
|
||||
"multer": "^1.4.5-lts.1",
|
||||
"mysql": "^2.18.1",
|
||||
"node-xlsx": "^0.24.0",
|
||||
"nodemon": "^3.1.9",
|
||||
"pdfjs-dist": "^3.10.111",
|
||||
"qiao-zip": "^4.7.4",
|
||||
"qrcode": "^1.5.4",
|
||||
"socket.io": "^4.8.1",
|
||||
"speakeasy": "^2.0.0",
|
||||
"tar": "^7.4.3",
|
||||
"uuid": "^11.0.3",
|
||||
"xlsx": "^0.18.5",
|
||||
"xml2js": "^0.6.2"
|
||||
}
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
async function panduanyuejuan(){
|
||||
const sqlstd="SELECT * FROM kaoshipaper WHERE uuid=?";
|
||||
const resultstd=await new Promise((resolve, reject) => {
|
||||
connection.query(sqlstd,[req.query.ksh],(error, results, fields) => {
|
||||
if(error)throw error;
|
||||
resolve(results[0]);
|
||||
})
|
||||
})
|
||||
if(JSON.parse(resultstd.xx).pan_jue_finsih===false) {
|
||||
const sql = "SELECT * FROM kaoshiend WHERE ks=?";
|
||||
const resultksdaan = await new Promise((resolve, reject) => {
|
||||
connection.query(sql, [parseInt(req.query.ksh)], (error, results, fields) => {
|
||||
if (error) throw error;
|
||||
resolve(results);
|
||||
})
|
||||
})
|
||||
|
||||
let finish = true;
|
||||
for (let i = 0; i < resultksdaan.length; i++) {
|
||||
const ksdaan = JSON.parse(resultksdaan[i].ksdaan);
|
||||
|
||||
ksdaan.map((value, index) => {
|
||||
if (value.lx === "填空题") {
|
||||
console.log(resultstd)
|
||||
const stddaan = JSON.parse(resultstd.std);
|
||||
if (stddaan[i].panjaun === "teacher") {
|
||||
if (value.teacherid === undefined) {
|
||||
finish = false
|
||||
}
|
||||
}
|
||||
}
|
||||
if (value.lx === "简答题") {
|
||||
if (value.teacherid === undefined) {
|
||||
finish = false
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
if(finish===true){
|
||||
let jsonxx=JSON.parse(resultstd.xx);
|
||||
jsonxx.pan_jue_finsih=true
|
||||
const sqlupdate = 'UPDATE kaoshipaper SET xx=? WHERE `uuid`=?';
|
||||
const up = await new Promise((resolve, reject) => {
|
||||
connection.query(sqlupdate, [JSON.stringify(jsonxx, null, 4), req.query.ksh], (error, results, fields) => {
|
||||
if (error) throw error;
|
||||
resolve(results);
|
||||
})
|
||||
})
|
||||
}
|
||||
let infor=[]
|
||||
let allprint=[]
|
||||
if(finish===true){
|
||||
|
||||
for (let i = 0; i < resultksdaan.length; i++) {
|
||||
const ksdaan = JSON.parse(resultksdaan[i].ksdaan);
|
||||
let num=0;
|
||||
let ksdaantemp=[...ksdaan]
|
||||
ksdaan.map((value, index) => {
|
||||
if (value.lx === "填空题") {
|
||||
console.log(resultstd)
|
||||
const stddaan = JSON.parse(resultstd.std);
|
||||
if (stddaan[index].panjaun === "teacher") {
|
||||
num=num+value.teacherprint
|
||||
ksdaantemp[index].way="teacher"
|
||||
ksdaantemp[index].printstu=value.teacherprint
|
||||
}else{
|
||||
if(value.sr.trimStart()===stddaan[index].std.trimStart()){
|
||||
num=num+stddaan[index].print
|
||||
ksdaantemp[index].way="computer"
|
||||
ksdaantemp[index].printstu=stddaan[index].print
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (value.lx === "简答题") {
|
||||
const stddaan = JSON.parse(resultstd.std);
|
||||
num=num+value.teacherprint
|
||||
//ksdaantemp[index].way="teacher"
|
||||
ksdaantemp[index].printstu=value.teacherprint
|
||||
}else if(value.lx==="多选题"){
|
||||
let zq=true
|
||||
const stddaan = JSON.parse(resultstd.std);
|
||||
value.daan.map((item,xuaho)=>{
|
||||
if(!stddaan[index].std.includes(item)){}
|
||||
zq=false
|
||||
})
|
||||
if(value.daan.length!==stddaan[index].std.length){
|
||||
zq=false
|
||||
}
|
||||
if(zq){
|
||||
num=num+stddaan[index].print
|
||||
//ksdaantemp[index].way="teacher"
|
||||
ksdaantemp[index].printstu=stddaan[index].print
|
||||
}else{
|
||||
ksdaantemp[index].printstu=0
|
||||
}
|
||||
|
||||
|
||||
}else if(value.lx==="单选题"){
|
||||
const stddaan = JSON.parse(resultstd.std);
|
||||
if(value.daan===stddaan[index].std){
|
||||
num=num+stddaan[index].print
|
||||
//ksdaantemp[index].way="teacher"
|
||||
ksdaantemp[index].printstu=stddaan[index].print
|
||||
}else{
|
||||
ksdaantemp[index].printstu=0
|
||||
num=num+0
|
||||
}
|
||||
}else if(value.lx==="判断题"){
|
||||
const stddaan = JSON.parse(resultstd.std);
|
||||
if(value.daan===stddaan[index].std){
|
||||
num=num+stddaan[index].print
|
||||
//ksdaantemp[index].way="teacher"
|
||||
ksdaantemp[index].printstu=stddaan[index].print
|
||||
}else{
|
||||
ksdaantemp[index].printstu=0
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
const sqlupdate = 'UPDATE kaoshiend SET ksdaan=?,allprint=? WHERE id=?';
|
||||
//resultksdaan[i].
|
||||
await new Promise((resolve, reject) => {
|
||||
connection.query(sqlupdate,[JSON.stringify(ksdaantemp,null,4),num,resultksdaan[i].id],(error, results) => {
|
||||
if (error) throw error;
|
||||
resolve(results);
|
||||
|
||||
})
|
||||
})
|
||||
allprint.push(num)
|
||||
infor.push({infor:ksdaantemp,num:num})
|
||||
}
|
||||
}
|
||||
|
||||
res.send({finish: finishr})
|
||||
}else{
|
||||
res.send({finish: true})
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,165 @@
|
||||
const xml2js = require('xml2js');
|
||||
const parser = new xml2js.Parser();
|
||||
const fs = require('fs');
|
||||
const moment = require('moment');
|
||||
const os = require('os');
|
||||
const path = require('path');
|
||||
var q = require('qiao-zip');
|
||||
const uuidv4 = require('uuid');
|
||||
|
||||
const sheetlist=async(xlsx)=>{
|
||||
const cacheDir = path.join(os.homedir(), '.cache');
|
||||
const filedir=cacheDir+'\\learn\\'+uuidv4.v4();
|
||||
fs.mkdirSync(filedir);
|
||||
await q.unzip(xlsx, filedir)
|
||||
const xmlwb=fs.readFileSync(filedir+"/[Content_Types].xml",'utf8');
|
||||
const wbresult=await new Promise((resolve,reject)=>{
|
||||
parser.parseString(xmlwb, (err, result) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
resolve(result);
|
||||
});
|
||||
})
|
||||
//console.log(wbresult);
|
||||
let slist=[];
|
||||
let wblist=await wblsit(filedir+"/xl/sharedStrings.xml")
|
||||
|
||||
wbresult.Types.Override.map((value,index)=>{
|
||||
//console.log(value);
|
||||
if(value['$'].ContentType==="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"){
|
||||
slist.push(value['$'].PartName);
|
||||
}
|
||||
|
||||
})
|
||||
let chengji=[];
|
||||
//console.log(slist);
|
||||
let chengname=[];
|
||||
for(let i=0;i<slist.length;i++){
|
||||
|
||||
const biao=await wjb(filedir+slist[i],wblist);
|
||||
//
|
||||
let xiangnum=-1;//姓名项在第几列
|
||||
for(let j=0;j<biao.length;j++){
|
||||
if(biao[j].includes("姓名")){
|
||||
xiangnum=j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
let nameid=biao[xiangnum].indexOf("姓名");
|
||||
let xuehaoid=biao[xiangnum].indexOf("学号");
|
||||
let sex=biao[xiangnum].indexOf("性别");
|
||||
let classid=biao[xiangnum].indexOf("班级");
|
||||
let xueyaunid=biao[xiangnum].indexOf("学院");
|
||||
let idcardid=biao[xiangnum].indexOf("身份证号");
|
||||
let ruxuetime=biao[xiangnum].indexOf("入学日期")
|
||||
let iphone=biao[xiangnum].indexOf("学生手机号");
|
||||
let parentname=biao[xiangnum].indexOf("家长姓名")
|
||||
let parentphone=biao[xiangnum].indexOf("家长手机号")
|
||||
//console.log(nameid)
|
||||
// console.log(xiangnum);
|
||||
//console.log(biao);
|
||||
const stulsit=[];
|
||||
for(let j=xiangnum+1;j<biao.length;j++){
|
||||
let ruxue="" ;
|
||||
if( /^\d+$/.test(biao[j][ruxuetime])){
|
||||
if (parseInt(biao[j][ruxuetime])<80000){
|
||||
ruxue=moment("1900-01-01").add(parseInt(biao[j][ruxuetime])-2,'day').format();
|
||||
//console.log(mom);
|
||||
}
|
||||
}else{
|
||||
ruxue=moment(biao[j][ruxuetime]).format();
|
||||
}
|
||||
const stu={
|
||||
name:biao[j][nameid],
|
||||
xuehao:biao[j][xuehaoid],
|
||||
sex:biao[j][sex],
|
||||
classid:biao[j][classid],
|
||||
xueyuan:biao[j][xueyaunid],
|
||||
idcard:biao[j][idcardid],
|
||||
ruxuetime:ruxue,
|
||||
iphone:biao[j][iphone],
|
||||
parentphone:biao[j][parentphone],
|
||||
parentname:biao[j][parentname],
|
||||
choose:true
|
||||
}
|
||||
// console.log(stu);
|
||||
stulsit.push(stu);
|
||||
}
|
||||
chengji.push({stu:stulsit,name:path.parse(filedir+slist[i]).name,add:false});
|
||||
chengname.push(path.parse(filedir+slist[i]).name);
|
||||
}
|
||||
//
|
||||
// console.log(chengname);
|
||||
// console.log(chengji);
|
||||
return chengji;
|
||||
}
|
||||
const wblsit=async (file)=>{
|
||||
const xmlwb=fs.readFileSync(file,'utf8');
|
||||
// console.log(xmlwb);
|
||||
const wbresult=await new Promise((resolve,reject)=>{
|
||||
parser.parseString(xmlwb, (err, result) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
resolve(result);
|
||||
});
|
||||
})
|
||||
let wbone=[];
|
||||
wbresult.sst.si.map((value)=>{
|
||||
//console.log(value);
|
||||
wbone.push(value.t[0]);
|
||||
})
|
||||
//console.log(wbone);
|
||||
return wbone;
|
||||
}
|
||||
const wjb=async(file,list)=>{
|
||||
const xmlwb=fs.readFileSync(file,'utf8');
|
||||
const wbresult=await new Promise((resolve,reject)=>{
|
||||
parser.parseString(xmlwb, (err, result) => {
|
||||
if (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
resolve(result);
|
||||
});
|
||||
})
|
||||
const excerow=wbresult.worksheet.sheetData[0].row;
|
||||
let allexcel=[]
|
||||
|
||||
wbresult.worksheet.sheetData[0].row.map((value,index)=>{
|
||||
let hangexcel=[];
|
||||
value.c.map((value,index)=>{
|
||||
//console.log(value);
|
||||
const t=value['$'].t;
|
||||
const v=value.v[0];
|
||||
let zhi="";
|
||||
// if (parseInt(v)<40000&&parseInt(v)>80000) {
|
||||
if (t === undefined) {
|
||||
zhi = v;
|
||||
} else if (t === 's') {
|
||||
zhi = list[parseInt(v)];
|
||||
} else {
|
||||
zhi = v;
|
||||
}
|
||||
// }else{
|
||||
// zhi =moment("1900-01-01").add(parseInt(v),'days').format('YYYY-MM-DD');
|
||||
//}
|
||||
|
||||
hangexcel.push(zhi);
|
||||
|
||||
})
|
||||
allexcel.push(hangexcel);
|
||||
});
|
||||
// console.log(allexcel);
|
||||
return allexcel;
|
||||
}
|
||||
//wblsit("C:/Users/l/Desktop/a1/xl/sharedStrings.xml").then(t=>{
|
||||
// wjb("C:/Users/l/Desktop/a1/xl/worksheets/sheet1.xml",t)
|
||||
//})
|
||||
//sheetlist("C:\\Users\\l\\Desktop\\12\\a141.xlsx")
|
||||
const cacheDir = path.join(os.homedir(), '.cache');
|
||||
console.log(cacheDir);
|
||||
exports.sheetlist=sheetlist;
|
@ -0,0 +1,109 @@
|
||||
//生成课表
|
||||
|
||||
const fs = require('fs');
|
||||
const LkbString = require('lz-string');
|
||||
const kb=[];
|
||||
function compressText(text) {
|
||||
return LkbString.compressToEncodedURIComponent(text);
|
||||
}
|
||||
|
||||
for (let i = 0; i < 11; i++) {
|
||||
|
||||
kb[i*28+0]={ke:1,time:"n"+i.toString()+"z1A1"};
|
||||
kb[i*28+1]={ke:2,time:"n"+i.toString()+"z1A2"};
|
||||
kb[i*28+2]={ke:0,time:"n"+i.toString()+"z1A3"};
|
||||
kb[i*28+3]={ke:0,time:"n"+i.toString()+"z1A4"};
|
||||
kb[i*28+4]={ke:0,time:"n"+i.toString()+"z2A1"};
|
||||
kb[i*28+5]={ke:2,time:"n"+i.toString()+"z2A2"};
|
||||
kb[i*28+6]={ke:3,time:"n"+i.toString()+"z2A3"};
|
||||
kb[i*28+7]={ke:0,time:"n"+i.toString()+"z2A4"};
|
||||
kb[i*28+8]={ke:1,time:"n"+i.toString()+"z3A1"};
|
||||
kb[i*28+9]={ke:4,time:"n"+i.toString()+"z3A2"};
|
||||
kb[i*28+10]={ke:0,time:"n"+i.toString()+"z3A3"};
|
||||
kb[i*28+11]={ke:0,time:"n"+i.toString()+"z3A4"};
|
||||
kb[i*28+12]={ke:1,time:"n"+i.toString()+"z4A1"};
|
||||
kb[i*28+13]={ke:2,time:"n"+i.toString()+"z4A2"};
|
||||
kb[i*28+14]={ke:3,time:"n"+i.toString()+"z4A3"};
|
||||
kb[i*28+15]={ke:0,time:"n"+i.toString()+"z4A4"};
|
||||
kb[i*28+16]={ke:3,time:"n"+i.toString()+"z5A1"};
|
||||
kb[i*28+17]={ke:4,time:"n"+i.toString()+"z5A2"};
|
||||
kb[i*28+18]={ke:5,time:"n"+i.toString()+"z5A3"};
|
||||
kb[i*28+19]={ke:0,time:"n"+i.toString()+"z5A4"};
|
||||
kb[i*28+20]={ke:0,time:"n"+i.toString()+"z6A1"};
|
||||
kb[i*28+21]={ke:0,time:"n"+i.toString()+"z6A2"};
|
||||
kb[i*28+22]={ke:0,time:"n"+i.toString()+"z6A3"};
|
||||
kb[i*28+23]={ke:0,time:"n"+i.toString()+"z6A4"};
|
||||
kb[i*28+24]={ke:0,time:"n"+i.toString()+"z7A1"};
|
||||
kb[i*28+25]={ke:0,time:"n"+i.toString()+"z7A2"};
|
||||
kb[i*28+26]={ke:0,time:"n"+i.toString()+"z7A3"};
|
||||
kb[i*28+27]={ke:0,time:"n"+i.toString()+"z7A4"};
|
||||
}
|
||||
for (let i = 11; i < 15; i++) {
|
||||
|
||||
kb[i*28+0]={ke:1,time:"n"+i.toString()+"z1A1"};
|
||||
kb[i*28+1]={ke:2,time:"n"+i.toString()+"z1A2"};
|
||||
kb[i*28+2]={ke:0,time:"n"+i.toString()+"z1A3"};
|
||||
kb[i*28+3]={ke:6,time:"n"+i.toString()+"z1A4"};
|
||||
kb[i*28+4]={ke:0,time:"n"+i.toString()+"z2A1"};
|
||||
kb[i*28+5]={ke:2,time:"n"+i.toString()+"z2A2"};
|
||||
kb[i*28+6]={ke:3,time:"n"+i.toString()+"z2A3"};
|
||||
kb[i*28+7]={ke:0,time:"n"+i.toString()+"z2A4"};
|
||||
kb[i*28+8]={ke:1,time:"n"+i.toString()+"z3A1"};
|
||||
kb[i*28+9]={ke:4,time:"n"+i.toString()+"z3A2"};
|
||||
kb[i*28+10]={ke:0,time:"n"+i.toString()+"z3A3"};
|
||||
kb[i*28+11]={ke:0,time:"n"+i.toString()+"z3A4"};
|
||||
kb[i*28+12]={ke:1,time:"n"+i.toString()+"z4A1"};
|
||||
kb[i*28+13]={ke:2,time:"n"+i.toString()+"z4A2"};
|
||||
kb[i*28+14]={ke:3,time:"n"+i.toString()+"z4A3"};
|
||||
kb[i*28+15]={ke:0,time:"n"+i.toString()+"z4A4"};
|
||||
kb[i*28+16]={ke:3,time:"n"+i.toString()+"z5A1"};
|
||||
kb[i*28+17]={ke:4,time:"n"+i.toString()+"z5A2"};
|
||||
kb[i*28+18]={ke:5,time:"n"+i.toString()+"z5A3"};
|
||||
kb[i*28+19]={ke:0,time:"n"+i.toString()+"z5A4"};
|
||||
kb[i*28+20]={ke:0,time:"n"+i.toString()+"z6A1"};
|
||||
kb[i*28+21]={ke:0,time:"n"+i.toString()+"z6A2"};
|
||||
kb[i*28+22]={ke:0,time:"n"+i.toString()+"z6A3"};
|
||||
kb[i*28+23]={ke:0,time:"n"+i.toString()+"z6A4"};
|
||||
kb[i*28+24]={ke:0,time:"n"+i.toString()+"z7A1"};
|
||||
kb[i*28+25]={ke:0,time:"n"+i.toString()+"z7A2"};
|
||||
kb[i*28+26]={ke:0,time:"n"+i.toString()+"z7A3"};
|
||||
kb[i*28+27]={ke:0,time:"n"+i.toString()+"z7A4"};
|
||||
|
||||
}
|
||||
for (let i = 15; i < 20; i++) {
|
||||
|
||||
kb[i*28+0]={ke:1,time:"n"+i.toString()+"z1A1"};
|
||||
kb[i*28+1]={ke:0,time:"n"+i.toString()+"z1A2"};
|
||||
kb[i*28+2]={ke:0,time:"n"+i.toString()+"z1A3"};
|
||||
kb[i*28+3]={ke:0,time:"n"+i.toString()+"z1A4"};
|
||||
kb[i*28+4]={ke:0,time:"n"+i.toString()+"z2A1"};
|
||||
kb[i*28+5]={ke:0,time:"n"+i.toString()+"z2A2"};
|
||||
kb[i*28+6]={ke:3,time:"n"+i.toString()+"z2A3"};
|
||||
kb[i*28+7]={ke:0,time:"n"+i.toString()+"z2A4"};
|
||||
kb[i*28+8]={ke:1,time:"n"+i.toString()+"z3A1"};
|
||||
kb[i*28+9]={ke:0,time:"n"+i.toString()+"z3A2"};
|
||||
kb[i*28+10]={ke:0,time:"n"+i.toString()+"z3A3"};
|
||||
kb[i*28+11]={ke:0,time:"n"+i.toString()+"z3A4"};
|
||||
kb[i*28+12]={ke:1,time:"n"+i.toString()+"z4A1"};
|
||||
kb[i*28+13]={ke:0,time:"n"+i.toString()+"z4A2"};
|
||||
kb[i*28+14]={ke:3,time:"n"+i.toString()+"z4A3"};
|
||||
kb[i*28+15]={ke:0,time:"n"+i.toString()+"z4A4"};
|
||||
kb[i*28+16]={ke:3,time:"n"+i.toString()+"z5A1"};
|
||||
kb[i*28+17]={ke:0,time:"n"+i.toString()+"z5A2"};
|
||||
kb[i*28+18]={ke:5,time:"n"+i.toString()+"z5A3"};
|
||||
kb[i*28+19]={ke:0,time:"n"+i.toString()+"z5A4"};
|
||||
kb[i*28+20]={ke:0,time:"n"+i.toString()+"z6A1"};
|
||||
kb[i*28+21]={ke:0,time:"n"+i.toString()+"z6A2"};
|
||||
kb[i*28+22]={ke:0,time:"n"+i.toString()+"z6A3"};
|
||||
kb[i*28+23]={ke:0,time:"n"+i.toString()+"z6A4"};
|
||||
kb[i*28+24]={ke:0,time:"n"+i.toString()+"z7A1"};
|
||||
kb[i*28+25]={ke:0,time:"n"+i.toString()+"z7A2"};
|
||||
kb[i*28+26]={ke:0,time:"n"+i.toString()+"z7A3"};
|
||||
kb[i*28+27]={ke:0,time:"n"+i.toString()+"z7A4"};
|
||||
//kb.push(JSON.stringify(kb));
|
||||
}
|
||||
const compressedText = JSON.stringify(kb);
|
||||
fs.appendFile('wj3.json',compressedText, (err) => {
|
||||
if (err) throw err;
|
||||
console.log('数据已成功写入文件');
|
||||
});
|
@ -0,0 +1,64 @@
|
||||
const fs=require('fs');
|
||||
const moment=require('moment');
|
||||
var mysql = require('mysql');
|
||||
const LZString = require('lz-string');
|
||||
const e = require("express");
|
||||
var connection = mysql.createConnection({
|
||||
host : 'localhost',
|
||||
user : 'root',
|
||||
password : '416416',
|
||||
database : 'neigongda'
|
||||
});
|
||||
function decompressText(compressedText) {
|
||||
return LZString.decompressFromEncodedURIComponent(compressedText);
|
||||
}
|
||||
connection.connect();
|
||||
|
||||
function qjkebiao(xuehao,start,end) {
|
||||
const startxueiq=moment("2024-09-02T00:00:27+08:00");
|
||||
const daystart=moment(start).diff(startxueiq,"days");
|
||||
const dayend=moment(end).diff(startxueiq,"days");
|
||||
console.log(daystart);
|
||||
const minutestart=moment(start).minutes()+moment(start).hours()*60;
|
||||
const minutesend=moment(end).minutes()+moment(end).hours()*60;
|
||||
let kestart=0;
|
||||
if(minutestart<500){
|
||||
kestart=1;
|
||||
}else if(minutestart<620){
|
||||
kestart=2;
|
||||
}else if(minutestart<840){
|
||||
kestart=3;
|
||||
}else if(minutestart<960){
|
||||
kestart=4;
|
||||
}else {
|
||||
kestart=5;
|
||||
}
|
||||
let keend=0;
|
||||
if(minutesend>1060){
|
||||
keend=4;
|
||||
}else if(minutesend<940){
|
||||
keend=3;
|
||||
}else if(minutesend<720){
|
||||
keend=2;
|
||||
}else if(minutesend<600){
|
||||
keend=1;
|
||||
}else {
|
||||
keend=0;
|
||||
}
|
||||
const kaishi=daystart+kestart*4;
|
||||
const jieshu=dayend+keend*4;
|
||||
const sql = 'SELECT xunhuan(?,?,?)';
|
||||
|
||||
|
||||
connection.query(sql, [kaishi,jieshu,xuehao], (error, results, fields) => {
|
||||
if (error) throw error;
|
||||
|
||||
// 处理查询结果
|
||||
console.log(results);
|
||||
});
|
||||
console.log(dayend);
|
||||
return 0;
|
||||
}
|
||||
|
||||
exports.qjkebiao = qjkebiao;
|
||||
|
@ -0,0 +1 @@
|
||||
[{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":6,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":6,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":6,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":2,"z1A3":0,"z1A4":6,"z2A1":0,"z2A2":2,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":4,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":2,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":4,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":0,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":0,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":0,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":0,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":0,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":0,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":0,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":0,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":0,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":0,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":0,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":0,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":0,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":0,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":0,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":0,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":0,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":0,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":0,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":0,"z5A3":5,"z5A4":0},{"z1A1":1,"z1A2":0,"z1A3":0,"z1A4":0,"z2A1":0,"z2A2":0,"z2A3":3,"z2A4":0,"z3A1":1,"z3A2":0,"z3A3":0,"z3A4":0,"z4A1":1,"z4A2":0,"z4A3":3,"z4A4":0,"z5A1":3,"z5A2":0,"z5A3":5,"z5A4":0}]
|
@ -0,0 +1 @@
|
||||
N4IgJgDARgjAgjEAuGAac14CZlfZWOAZmQn0zgBZTyosEaM64ck8n6Skjb7qkyTIgxS1hrSmOKMCw-oIKURaJktbtF07rSXzaAVhE8mhiQa37ze8DEKJRNwuvy34XBa6ozb9ex+bOjpzIxmA+XgIuUML2KmHRLMiSjsLuUXLeUEqxUWq4uVqhtrqZhvZFUKZJUYZclo6G1mBYdshxLdj54B1aCj1NLb4yg4ls+CNcoSMDCTndCWbzqcMJM9lt41mjGi1Kk5slkfNlIZtVSMnNlRZnEQpErQ5gD51j4C+9+B9ND0NHzwEugDgtp3swfrMNmDxNVoZ84RD1k8Hnk3gC9qcwYd7tdyl9rosAbVkPUiXd8JRHnFKa8NDT4WB6U1KX8FCzthTmPtwOzmZCnpSYRdOct-oLyTytnNGVtAjKMaD5RKZSdFZTzpd1TdJY0ZPoqfh9bTDYQ0uAjcr9ayTfQ5VbCjbLfy4vqhZdXQyPU19UiXbKgT6Heatt7cZiwPqNSbiUhSZHlQA2A3gJPGlOmmSpxPMPz4JO2oH5oNgItNJMxKElhawquihTl7O+vP+tFJhWhNvZ1Udgk1pMx0n95UAdmTYFHafHGf+E5HOZko4LaMXxZXTVHFaeG9Gl23ZqnGRnUsro9RGlPq5DC7DitHUfAd+1U91-wAHGP35PPwzv0139bwH-DlAK5cMgL-Z18HfN0oISfdoOVd8mxAs9YPbNDEJvUJ33vMAcKffCmgATjHEjJzIhkKOI+d-hIpcNDo4tGOozc4hImDwHYyjVhkEjkLAPjgIErZuWE7F8BI7sJN7YVOOuOppJfDwKGlGAKDlNTp2Uwgmk0gCwmgeiXEM4s9OVTTWOM6tZIMuDvGgQ9tP4zTUJsaB0Lcq9-k0qTPNwnynwC3TPFUzwNM8fcYE8fgExccJcxscJwtAxUovBbxbEsxLrMuNK6zinjvOKZQCtcsJitEtLxOy3zypk3LbAHAqlJcHpVJ6DSeki-pkFimwRgSsIRk6lKimmbwWiyoactauzvMm8zdhK-qWw0GAlsqpbdJaWr1vq2ampWlqbA+VSPg0j5Iu+XqXF+EQPDui7Rtu9LvIeKaYHencXvyk7Coe48nk+1aXo8sIUXMh5dqh76-sO8Hrl0+lVPpDT6UipkbpsdlBpgdk0ee7HXo8cUUZmonfrCcUkcBuI8ZBomwfp6qqawlwtUJen4a58yLVUi1WA8C1IotXT7Vx+1BZce1KvtMXIJsD0pcVuahf+6XaY11E1aZwN5d2+NlbCeMFJV46wizVSsyNmAs0irNdKLXGixtotKtLbwGyt6yPAbe31ZsTtve1lxO3drzfbZwOZMj7mh102dVNnG3Z0i2cE5ojwVxTwmwjXbxtyTn2XD3AuA7zzWbAvHOmYvDPdsfHPucfXTv1U78be-SLf28IDcaAzvc5gcDe4VsIEMHynh-L6fnKQ0YPHnyr59bqPx5jlx8NN9fzZgCjVIom2KMiqjvEY3HGKPofmLPse9+LmwuJPmfBIPlsPEEyrBN0ySjBcX+r7c1-vIAAvkAA
|
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue