mirror of
https://kkgithub.com/chinese-poetry/chinese-poetry.git
synced 2026-04-08 07:47:32 +00:00
格式化回滚
This commit is contained in:
161
ci/fun.js
Normal file
161
ci/fun.js
Normal file
@@ -0,0 +1,161 @@
|
||||
/**
|
||||
* 异步请求
|
||||
*/
|
||||
const get = function (url, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
if (data) {
|
||||
url = url + '?' + Object.keys(data).map(key => `${key}=${data[key]}`).join('&')
|
||||
}
|
||||
xhr.open('GET', url, true);
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState == 4) {
|
||||
if (xhr.status >= 200 && xhr.status < 400) {
|
||||
let result = JSON.parse(xhr.responseText)
|
||||
resolve(result);
|
||||
} else {
|
||||
reject ? reject() : errorMsg(result.msg || '失败')
|
||||
}
|
||||
}
|
||||
}
|
||||
xhr.send(null);
|
||||
})
|
||||
}
|
||||
const post = function (url, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('POST', url, true);
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState == 4) {
|
||||
if (xhr.status >= 200 && xhr.status < 400) {
|
||||
let result = JSON.parse(xhr.responseText)
|
||||
resolve(result);
|
||||
successMsg(result.msg || '成功')
|
||||
} else {
|
||||
reject ? reject() : errorMsg(result.msg || '失败')
|
||||
}
|
||||
}
|
||||
}
|
||||
xhr.send(json2FormData(data));
|
||||
})
|
||||
}
|
||||
|
||||
const json2FormData = function (data) {
|
||||
let formData = new FormData()
|
||||
for (let key in data) {
|
||||
formData.set(key, data[key])
|
||||
}
|
||||
return formData
|
||||
}
|
||||
|
||||
|
||||
Array.prototype.getMost = function(){
|
||||
var obj = this.reduce((p,n) =>(p[n]++ ||(p[n] = 1),(p.max=p.max>=p[n]?p.max:p[n]), (p.key=p.max>p[n]?p.key:n), p), {});
|
||||
return obj.key;
|
||||
}
|
||||
let result = {}
|
||||
get('http://127.0.0.1:8880/%E8%AF%8D%E7%89%8C%E5%90%8D%E5%BD%92%E7%B1%BB%E9%95%BF%E5%BA%A6%E5%AF%B9%E6%AF%94.json').then(r => {
|
||||
let keys = Object.keys(r);
|
||||
keys.forEach(k => {
|
||||
let v = r[k]
|
||||
let dataList = []
|
||||
let _keys = Object.keys(v);
|
||||
_keys.forEach(_k => {
|
||||
let _o = v[_k]
|
||||
dataList = dataList.concat(Object.keys(_o).map(__k => _o[__k]))
|
||||
});
|
||||
|
||||
result[k] = dataList.getMost()
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
get('http://127.0.0.1:8880/%E8%AF%8D%E7%89%8C%E5%90%8D%E5%BD%92%E7%B1%BB%E9%95%BF%E5%BA%A6%E5%AF%B9%E6%AF%94.json').then(r => {
|
||||
let keys = Object.keys(r);
|
||||
keys.forEach(k => {
|
||||
let standard = result[k]
|
||||
let v = r[k]
|
||||
let _keys = Object.keys(v);
|
||||
_keys.forEach(_k => {
|
||||
let _o = v[_k]
|
||||
Object.keys(_o).map(__k => {
|
||||
let __v = _o[__k]
|
||||
if (__v === standard) {
|
||||
delete _o[__k]
|
||||
}
|
||||
})
|
||||
if (Object.keys(_o).length === 0) {
|
||||
delete v[_k]
|
||||
}
|
||||
});
|
||||
|
||||
if (Object.keys(v).length === 0) {
|
||||
delete r[k]
|
||||
}
|
||||
if (r[k]) {
|
||||
r[k][-1] = standard
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
console.log(JSON.stringify(r))
|
||||
})
|
||||
|
||||
function diff(standard, source) {
|
||||
let result = source
|
||||
let len_1 = standard.length
|
||||
let len_2 = source.length
|
||||
if (len_1 !== len_2 || standard.indexOf('-') !== source.indexOf('-')) {
|
||||
return `[?]${source}`
|
||||
}
|
||||
|
||||
let offset = 1;
|
||||
for (let i = 0; i < len_1; i++) {
|
||||
let v = standard[i]
|
||||
let _v = source[i]
|
||||
if (v !== _v) {
|
||||
let _array = result.split('')
|
||||
_array.splice(i+offset, 0, `[${v}]`)
|
||||
result = _array.join('')
|
||||
offset = offset + 3
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
get('http://127.0.0.1:8880/有问题的对象.json').then(r => {
|
||||
let keys = Object.keys(r);
|
||||
keys.forEach(k => {
|
||||
let v = r[k]
|
||||
let standard = v[-1]
|
||||
let _keys = Object.keys(v);
|
||||
_keys.forEach(_k => {
|
||||
let _o = v[_k]
|
||||
Object.keys(_o).map(__k => {
|
||||
let __v = _o[__k]
|
||||
if (__v !== standard) {
|
||||
// 对比差异
|
||||
_o[__k] = diff(standard, __v)
|
||||
}
|
||||
})
|
||||
});
|
||||
})
|
||||
|
||||
console.log(JSON.stringify(r))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* sql 生成
|
||||
*/
|
||||
let result = ''
|
||||
for(let i = 0; i < 22; i++) {
|
||||
get(`http://127.0.0.1:8880/ci.song.${i * 1000}.json`).then(r => {
|
||||
result += r.map((item, idx) => {
|
||||
return `insert into json_ci (author, paragraphs, rhythmic, fileIdx, idx, tags) values ('${item.author}', '${item.paragraphs.join('\\n')}', '${item.rhythmic}', ${i}, ${idx}, '${item.tags ? item.tags.join() : ""}');`
|
||||
}).join('\n')
|
||||
})
|
||||
}
|
||||
console.log(result)
|
||||
|
||||
Reference in New Issue
Block a user