Rutile3
Rutile3(ルチルさん)
https://gyazo.com/ce478882ad824239f1682f4675cee34d
問い合わせ先
UserScript
code:script.js
// PageMenu(ドキュメントアイコン)に「WIXOSS画像生成」を追加します。
scrapbox.PageMenu.addItem({
title: () => "WIXOSS画像生成",
onClick: () => {
const table_text = window.prompt("tableテキストの入力", "");
let icon_list_text = "";
if (/\.*?\\t\d/.test(table_text)) { icon_list_text = "[~| ";
table_text.match(/\.*?\\t\d/g).forEach(function (e) { const tmp_name = e.match(/\.*?\/)0; const tmp_number = e.match(/\]\t\d/)0; const name = tmp_name.replace(""").replace("", "");
const number = tmp_number.replace("]\t", "");
for (let i = 0; i < number; i++) {
icon_list_text += "+ name + ".icon";
}
});
}
else if (/\.*?\/.test(table_text)) { icon_list_text = "[| ";
table_text.match(/\.*?\/g).forEach(function (e) { const name = e.replace(""").replace("", "");
icon_list_text += "+ name + ".icon";
});
}
icon_list_text += "]";
window.prompt("iconリスト記法", icon_list_text);
}
});
code:script.js
// PageMenu(ドキュメントアイコン)に「プロキシ生成」を追加します。
scrapbox.PageMenu.addItem({
title: () => "プロキシ生成",
onClick: () => {
const project = "Rutile3-WIXOSS/";
let url_parameter = [];
const replaceNameList = {
"#" : "%23",
"/" : "%2F",
}
const replaceName = (name) => {
let tmp = name;
for (const key in replaceNameList) {
tmp = tmp.replaceAll(key, replaceNameListkey); }
return tmp;
}
const pushUrlParameter = (text) => {
const rows = text.split("\n");
for (let row_i = 1; row_i < rows.length; row_i++) {
const cells = rowsrow_i.split(","); // ルリグデッキは枚数が明記されていないので1~4以外は1枚とする
const qty = /^1-4$/.test(cells1) ? cells1 : 1; for (let qty_i = 0; qty_i < qty; qty_i++) {
const name = cells0.substring(1, cells0.length - 1); // カード名 console.log(name);
const image = scrapbox + "api/pages/" + project + replaceName(name) + "/icon"; //
url_parameter.push(image);
}
}
}
const getPromise = (name) => {
return new Promise((resolver) => {
// ページ内のテーブルの取得
let csv = location.href.replace(/io\//, "io/api/table/") + "/" + name + ".csv";
let req = new XMLHttpRequest();
req.open("get", csv, true); // 非同期
req.send(null);
req.onload = function () {
pushUrlParameter(this.responseText);
resolver(this); // Promiseに読み込み完了を伝える?
}
});
}
let promise = []; // 非同期で複数のCSVファイルを読み込むのでPromiseを使用
promise0 = getPromise("ルリグデッキ"); promise1 = getPromise("メインデッキLB有り"); promise2 = getPromise("メインデッキLB無し"); Promise.all(promise).then(function () {
console.log(url_parameter);
});
}
});
code:script.js
// PageMenuに「Twitterにシェア」を追加します。
scrapbox.PageMenu.addItem({
title: () => "Twitterにシェア",
onClick: () => {
const href = encodeURIComponent(location.href);
const title = encodeURIComponent(document.title);
window.open(url, "_blank", "width=600,height=300");
}
});