47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
|
// ==UserScript==
|
||
|
// @name DLSite TL Unclaimed Works
|
||
|
// @namespace https://xeno.science/
|
||
|
// @version 1.0
|
||
|
// @description See which works on DLSite Translators Unite haven't already been started by other translators
|
||
|
// @author xenofem
|
||
|
// @match https://*.dlsite.com/*/works/translatable
|
||
|
// @match https://*.dlsite.com/*/works/translatable?*
|
||
|
// @match https://*.dlsite.com/*/works/translatable/*
|
||
|
// @run-at document-idle
|
||
|
// @sandbox DOM
|
||
|
// @license MIT
|
||
|
// ==/UserScript==
|
||
|
|
||
|
const MY_LANGUAGE = "英語";
|
||
|
|
||
|
function checkUnclaimed() {
|
||
|
const works = document.getElementsByClassName("search_result_img_box_inner");
|
||
|
|
||
|
for (const work of works) {
|
||
|
let unclaimed = false;
|
||
|
const tlTable = work.getElementsByClassName("translation_table")[0];
|
||
|
for (const row of tlTable.getElementsByTagName("tr")) {
|
||
|
if (row.children[0].textContent === MY_LANGUAGE &&
|
||
|
row.children[1].textContent === "受付中" &&
|
||
|
row.children[2].textContent === "0" &&
|
||
|
row.children[3].textContent === "0") {
|
||
|
unclaimed = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if (!unclaimed) {
|
||
|
work.style.opacity = "0.2";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const checkButton = document.createElement("button");
|
||
|
checkButton.textContent = "Check unclaimed works";
|
||
|
checkButton.style.position = "fixed";
|
||
|
checkButton.style.top = "10px";
|
||
|
checkButton.style.right = "10px";
|
||
|
checkButton.addEventListener("click", checkUnclaimed);
|
||
|
document.body.appendChild(checkButton);
|
||
|
|
||
|
checkUnclaimed();
|