💖execCode C
[EXEC-C-DATA]
/* -------- PC情報 ログイン状態 --------- */
getPcInfo = () => {
let cook = doc.cookie + ";";
cook = cook.replace(/=(.+?);/g, (e0,e1) => {
return "=" + e1.replace(/(.{50})/g, "$1<br />") + "<br />"
});

// .replace(/;/g, "<br />");
let dat = "<ul>" +
"<li>body.offsetWidth : " + doc.body.offsetWidth + "px</li>" +
"<li>body.offsetHeight : " + doc.body.offsetHeight + "px</li>" +
"<li>#F0.offsetWidth : " + Fid("F0").offsetWidth + "px</li>" +
"<li>#F0.offsetHeight : " + Fid("F0").offsetHeight + "px</li>" +
"<li>referrer : " + doc.referrer + "</li>" +
"<li>cookie : " + cook + "</li>" +
"<li>login : <span id=\"info1\">ログアウトしています</span></li>";
dat += "</ul>";
echo("pcInfo", dat);
if(cook.indexOf("SID=") != -1){
xhr("/cgi-bin/bbs_form.cgi?oid=new-diary", null, e => {
if(e.match(/home\/([0-9a-z\-]+)\/" \/><\/td>/)) echo("info1", RegExp.$1);
});
}
};

allShow = s => {
xhr(s, null, echoAll);
};

/* -------- 新着日記エントリ -------- */
allEntry = s => {
let cate = s.replace(/.+(<div class="link_title)/,"$1").replace(/(<\/ul>).+/, "$1").split("<ul ");
cate = `${ cate[0] }
<div class="cate-cmd">
<span onclick="cateChg(0)">名前順</span>
<span onclick="cateChg(1)">番号順</span>
<span onclick="cateChg(2)">新着順</span>
</div>
<ul id="cateDisp" ${ cate[1] } `;

cate = cate.replace(/(">全カテゴリ)/, ";c=0$1");
cate = cate.replace(/(<li>)(<a .+?c=)(\d+)/g,
"$1<span class=\"vol\"></span><span class=\"cc\">$3</span><span class=\"date\"></span>$2$3");
cate = cate.replace(/(href=")([^"]+)/g, "onclick=\"allShow('$2'); return false;\" $1$2");
cate = cate.replace(/(<\/li>)[\t\s]+/g, "$1").replace(/[\t\s]+(<li)/, "$1");
cate = cate.replace(/(<\/li>)(<li)/g, "$1\t$2");
let no = 0;

cate = cate.replace(/class="vol">/g, e => e + (++no));

echo("categories", cate);
tabsCount("mTab", no, null);
dispChg(1, 0);
doc.body.classList.add("loaded");
echoAll(s);
allCNT = s.match(/oid=all;n=100;s=(\d+)/) ? Number(RegExp.$1) + 200 : null;


};

/* ------- 新着日記の書き出し ------- */
echoAll = s => {
s = s.replace(/.+<div id="main">/, "").replace(/<\/div>\t*<\/body>.+/, "");
s = s.replace(/(home\/)([0-9a-z\-]+)\/" target="_blank/g, "$1default/main.html?uri=site:/home/$2/diary/");
s = s.replace(/(home\/)([0-9a-z\-]+)\/diary\/" target="_blank/g, "$1new-diary/main.html?fn=1;user=$2");

s = s.replace(/(\/home\/[0-9a-z\-]+\/diary\/\d+\/\d\d\/\d+.html)" target="_blank/g,
"$1\" class=\"ax tb-m1\" onclick=\"mainShow('$1', this); return false");
s = s.replace(/(Category : <a href=")([^"]+)/g,
"$1$2\" class=\"ax tb-m2\" onclick=\"mainShow('$2', this); return false");
s = s.replace(/(href=")(http:\/\/www[^"]+)/g, "onclick=\"allShow('$2'); return false;\" $1$2");

if(mmCNT > 2 && !isF2) dispChg(1, 2);
if(isF2) dispChg(0, 2);
let objNo = isF2 ? 3 : mmCNT;
let objPar = "ABCD".charAt(objNo);
let obj = Fid(isF2 ? "f2Doc" : "m" + mmCNT + "Doc");
/*
const sec = Fce("div");
sec.className = "sec";
*/
echo(obj, "<div class='sec'>" + s + "</div>");
eTabCreate(objNo);




// obj.append(sec);
// sec.scrollIntoView();
};

/* -------- 新着日記のカテゴリ操作 -------- */
cateChg = no => {
let dat = echo("cateDisp");
let re = no ? /(<li>.+?\"cc\">)(\d+)/g : /(<li>.+?\"vol\">)(\d+)/g;
dat = dat.replace(re, (e0,e1,e2) => ("000" + e2).slice(-4) + e0);
dat = dat.split("\n");
dat.sort();
if(no == 2) dat.reverse();
dat = dat.join("\n");
dat = dat.replace(/\d+(<li)/g, "$1");
echo("cateDisp", dat);
};


/* -------- 投稿記事一覧 -------- */
allIndexEntry = () => {
echo("index", "<ul id='indexDoc'></ul>");
// if(allCNT == null) allCNT = 218318;
allCNT = 219430;
allLoopCNT = 0;
allLoop();
};

allLoop = () => {
if(allLoopCNT < 100){
const uri = "/cgi-bin/diary_form.cgi?oid=new-diary;mode=edit;article_id=" +
(allCNT - allLoopCNT);
xhr(uri, null, allIndexMain);
}
};

allIndexMain = s => {
const title = s.match(/name="article_title" value="([^"]+)" \/>/) ? RegExp.$1 : "";
let dat = s.match(/rows="8">(.+)<\/text/) ? RegExp.$1 : "";
let len = dat.length;
const e = Fce("li");
if(!s.match(/"1" checked="checked"/)) e.className = "nonup";
echo(e,
"<span class='up-id'>" + ("0" + allLoopCNT).slice(-2) +
"</span><span class='up-title'>" +
title + "</span><span class='up-len'>" + len + "</span>" +
"<div >" + dat + "</div>"
);

Fid("indexDoc").append(e);
allLoopCNT++;
setTimeout(allLoop, 10);

// alert(up + " : " + (allCNT - allLoopCNT) + " : " + title + " : " + len);
};

/* -- エントリ内部コマンド -- */
parMove = e => {
const par = e.parentNode.parentNode;
delayScroll(par, null);
};

/* -- メニュー内部コマンド -- */
loadDataTo = (no, user, obj) => {
const uri = "/home/" + user + dateToOnes(no);
const title = echo(obj);
xhr(uri, null, e => {
let dat = key(e, "TRANS-DATA").replace(/<br \/>/g, " ").replace(/\t/g, "");
dat = dat.replace(/^ +| +$/g, "").split(" ");
let s = "";
for(let i = 0; i < dat.length; i++){
let a = dat[i].split("_");
s += "<li><div class=\"trans-info\">" + a[1] +
"<span class=\"trans-now\">" + a[2] + "</span></div>" +
"<a target=\"_blank\" class=\"trans-lv" + (a[1] - 0 < a[2] - 50 ? "3" : "") +
"\" href=\"main.html?fn=3;user=" + a[0] + "\">" + a[0] + "</a>" +
"<div class=\"trans-date\">" + a[3] + "</div></li>";
}
s = "<div class=\"link_title\">" + title + "</div><div class=\"masMsg\">50件以上の方のリストです。\x3cbr class=\"\" />近いうちに操作関数を整えます。</div><ul>" + s + "</ul>";
echo(obj.parentNode, s);
const o = Fcn("F4", "link_title");
delayScroll(o[o.length -1]);
tabsCount("lTab", "f4Doc", "a");
});
};

transUpdate = () => {
alert("今、データを更新しています。");
return;

dispChg(1, 1);
let obj = Fid("transDisp");
if(obj){
obj.scrollIntoView();
} else {
obj = Fce("div");
obj.id = "trasnDisp";
Fid("m1Doc").append(obj);
}

const uri = "/home/new-diary/diary/2020/05/1590583861.html";
echo(obj, uri);
TRANS = [];
xhr(uri, null, e => {
let dat = key(e, "TRANS-DATA").replace(/<br \/>|\t/g, " ").
replace(/ *\(/, "").replace(/ +\(|\) : +/g, ",");
TRANS = dat.split(",");
let au = "";
for(let i = 0; i < TRANS.length; i += 2){
au += TRANS[i + 1] + "_" + TRANS[i] + " ";
}
au = au.replace(/^ +| +$/g, "").replace(/ {1,}/g, " ");
echo(obj, "<div id=\"auInfo\">done</div><div id=\"auDisp\">" + au + "</div>");
TRANS = au.split(" ");
transCNT = 0;
setTimeout(() => { transLoop() }, 500);
});
};

transLoop = () => {
const dat = TRANS[transCNT].split("_");
const user = dat[0].replace(/ /g, "");
const num = dat[1].replace(/ /g, "");;
echo("auInfo", "user : " + user + " , num = " + num + " ... cnt : " + transCNT + " / " + TRANS.length);
xhr("/cgi-bin/diary.cgi?oid=" + user + ";n=1", null, e => {
e = e.replace(/.+?<div id="main">/, "");
const no = e.match(/全カテゴリ \((\d+) 件\)/) ? RegExp.$1 : "*";
const date = e.match(/entry_date">(\d{4}) (\d\d\/\d\d)/) ? RegExp.$1 + "/" + RegExp.$2 : "*";
TRANS[transCNT] = user + "_" + num + "_" + no + "_" + date;
echo("auInfo", "user : " + user + " , num = " + num + " ... cnt : " + transCNT + " / " + TRANS.length + " : " + TRANS[transCNT]);
echo("auDisp", TRANS.join("\x3cbr />"));
transCNT++;
if(transCNT < TRANS.length) setTimeout(() => { transLoop() }, 800);

});
};

[/EXEC-C-DATA]