Diving-Fish / maimaidx-prober

舞萌 DX 查分器
https://www.diving-fish.com/maimaidx/prober
MIT License
750 stars 53 forks source link

添加了一种新的导入方法 #8

Closed Fros1er closed 3 years ago

Fros1er commented 3 years ago

7 是我在这里面说过的那种直接用手机导入的方法。

除了导入数据库的部分,其他在本地都已经测试过了,暂时没有发现问题。

Fros1er commented 3 years ago

有一些奇怪的改动(指换行)是因为格式化的问题,另外在写readme里那个脚本的时候顺手改了个函数。。 总之非常抱歉( readme里的一团代码压缩之前长这样(当时写的时候就在尽量压行了,所以有一点点混乱):

//getSibN()
z = (n, i) => {
    for (j = 0; j < Math.abs(i); j++) n = i < 0 ? n.previousSibling : n.nextSibling;
    return n;
};
y = (n) => n.src.match("_icon_(.*).png")[1].replace("back", "");

r = "";
c = 0;
for (let n of document.getElementsByClassName("break")) {
    d = n.parentNode.parentNode.parentNode.getAttribute("id");
    let s = z(n, 2);
    if (s.tagName.toLowerCase() == "div")
    r += 
        //fc
        y(z(n, 8))
        //fs
        + y(z(n, 6))
        //level
        + z(n, -2).innerText
        //dx or std
        + (d ? ((d.slice(0, 3) == "sta") ? "s" : "d") : ((z(n.parentNode.parentNode, 2).src.match("_(.*).png")[1] == "standard") ? "s" : "d"))
        //difficulty(master)
        + z(n, -6).src.match("diff_(.*).png")[1][0]
        //id
        + (c < 37 ? "0" : "") + c.toString(36)
        //dxscore
        + z(n, 4).innerText.replace(",", "")
        //rate(sssp)
        + z(n, 10).src.match("con_(.*).png")[1]
        //achievement
        + s.innerText.replace(".", "");
    c++;
}
r;