会員名簿データVer4.0更新ツール

[diary:183783]
[beforeExec]
ini = function(){
 if(self != parent && window.name == "main_yadokari"){
window.onunload = function(){ top.document.getElementsByTagName("frameset")[0].cols = "20%,80%"; };
top.document.getElementsByTagName("frameset")[0].cols = "0,100%";
}
user1 = []; user2 = []; user3 = [];
dataFile = [];
dataFile[0] = []; dataFile[1] = []; dataFile[2] = [];
transDat = [];
actUser = "";
nonUser = "";
fullDat = "";
allFg = false;
iniCnt = 0;
thCnt = 0;
sortArea = -1;
reverseFg = false;
vle = null;
listDat = "";
encString = "";
fileCnt = 0;
Lo.loader(0);
};
addCode = function(s){ eval(key(Fx.dec(s.replace(/\x3cbr \/>/, "")), "code").replace(/\t/g, "\n")); };
Lo.loader = function(s){
var dt = ["12/01/1326712421","11/10/1319958937","11/12/1325341969","11/12/1324738293","11/12/1324646116","12/03/1332444333","12/03/1332253809"];
if(fileCnt > 2 && fileCnt < 6) encString += key(s, "list").replace(/\x3cbr \/>/g, "\t").replace(/^[\t\s]+|[\t\s]+$/g, "") + "\t";
if(fileCnt < 7){
Fx.e("diary/20" + dt[fileCnt] + ".html", "loader");
eGraphLoader(fileCnt);
}
if(fileCnt > 5 && fileCnt < 8) addCode(s);
switch(fileCnt){
case 1 :
Fx.css = key(s.replace(/\x3cbr \/>/g, ""), "cssCode").replace(/\t/g, "\n");
Fx.cssText(Fx.dec(Fx.css)); break;
case 2 :
echo("menuDisp", Fx.dec(key(s, "menuDisp")));
echo("listDispInfo", Fx.dec(key(s, "listDispInfo"))); break;
case 7 :
dataCreate(s);

break;
default : break;
}
++fileCnt;
};
eGraphLoader = function(n){
n < 0 ? echo("entryGraph", "") : Fid("eGraph").style.width = (30 * n) + "px";
};
dataCreate = function(s){
userDat = [];
listDat = [];
encString = encString.replace(/(&)#95;/g, "_").replace(/\t\t/g, "\t").replace(/^\t+|\t+$/g, "");
encDat = encString.split(/\t/); encDat.sort();
var vl = [];
for(var i = 0; i < 30; i++) vl[i] = 0;
var a,b,c,j,u,d1,d2,s1,s2;
for(i = 0; i < encDat.length; i++){
a = rec1Dec(encDat[i]); u = a.split(" ");
d1 = u[16] >> 3;
d2 = u[16] & 3;
++vl[d1 - 1]; ++vl[15];
if(u[4] == "0") ++vl[5];
if(u[5] == "0" && d1 == 1) ++vl[3];
if(u[6].match(",")) ++vl[6];
if(u[11] == "1") ++vl[7];
if(u[15] & 32) ++vl[8];
if(u[13] != "0"){ ++vl[u[13] - -8]; if(u[13] == "3"){ ++vl[9]; ++vl[10]; }}
if(u[14] != "0"){ ++vl[u[14] - -11]; if(u[13] == "3"){ ++vl[12]; ++vl[13]; }}
if(!vl[16] || u[8] > vl[16]) vl[16] = u[8];
b = u[2] - 0;
if(b > vl[17]) vl[17] = u[2];
if(b >= 10000) ++vl[18];
b = u[11] - 0;
if(b > vl[19]) vl[19] = u[11];
if(b >= 1000) ++vl[20];
vl[21] += b;
b = u[6].split(","); c = b.length; if(c > vl[22]) vl[22] = c;
for(j = 0; j < b.length; j++) if(b[j] - 0 > vl[25]) vl[25] = b[j];
b = u[4] - 0;
if(b > vl[23]) vl[23] = u[4];
if(b > 1000) ++vl[24];
if(u[7] - 0 > vl[26]) vl[26] = u[7];
vl[27] += b; vl[28] += u[5] - 0;
listDat.push(u[0] + ":::" + a);
userDat.push(u[0]);
}
vl[4] = 6; vl[29] = vl[27] - vl[28];
addCalcListCreate(vl);
};
addCalcListCreate = function(vl){
s2 = ("L1.移行後継続更新 L2.移行後未更新 L3.データ非移行 移行件数未抽出 重複移行会員 日記未使用 複数カテゴリ " +
"掲示板未使用 掲示板保守 メニューにJS  〃 iframe  〃 両方設置 メインにJS  〃 iframe  〃 両方設置 " +
"リスト登録合計 リスト更新日 訪問最高件数 訪問1万人以上 掲示板最高件数 掲示板1千件以上 掲示板保存件数 " +
"カテゴリ最高件数 日記最高件数 日記1千件以上 最新カテゴリ番号 日記最新記事番号 日記保存件数 日記移行件数 日記投稿保存件数").split(" ");
for(j = 0; j < 2; j++){
s1 = "\x3ctable cellspacing='1' cellpadding='4'>\x3ctbody>";
for(i = 0; i < 15; i++){
b = j * 15 + i;
s1 += "\x3ctr>\x3ctd class='li2'>" + s2[b] + " s." + b + "\x3c/td>\x3ctd class='num2'>" + (j == 16 ? vl[b] : con(vl[b])) + "\x3c/td>\x3c/tr>";
}
echo("vl" + j + "Disp", s1 + "\x3c/tbody>\x3c/table>");
}
eGraphLoader(fileCnt);
dispCreate(); eGraphLoader(fileCnt + 1);
};


dispCreate = function(){
var s = "\x3cdiv id='entryInfo'>\x3cimg src='files/yosei_2.gif' alt='妖精' />Index of " +
" \x3cbutton onclick='idSerchEntry(this)' id='ise1'>新規入会者の検索\x3c/button>" +
"\x3cbutton onclick='dataCheckEntry(this)'>データファイルのチェック\x3c/button>" +
"\x3cbutton onclick='beforeDispClose()'>検索領域を閉じる\x3c/button>\x3c/div>" +
"\x3cdiv id='entryBeforeDisp'>\x3c/div>" +

"\x3cdiv class='list'>\x3cdiv class='caption'>\x3cspan>■\x3c/span>ユーザーエントリ (" + userDat.length +
") ※エントリでページ内ジャンプしない場合は、\x3ca href='#listDisp'>こちら でテーブル領域をひらいて下さい" + toCap() + "\x3c/div>" +
"\x3cdiv id='entryDisp'>\x3c/div>";
echo("dispTop", s);
entryCreate(); eGraphLoader(fileCnt + 2);
};

entryCreate = function(){
var a,b,k,f, c = [], enc = [], dec = [], no = "", c = [];
for(var i = 0; i < 3; i++){ c[i] = []; enc[i] = []; dec[i] = []; }

var s = "";
for(var i = 0; i < userDat.length; i++){
b = userDat[i].charAt(0);
a = b < "k" ? 0 : (b > "r" ? 2 : 1);
c[a].push(i); enc[a].push(encDat[i]); dec[a].push(rec1Dec(encDat[i]));
}
f = 0; var m = ["0-J", "K-R", "S-Z"];
for(i = 0; i < 3; i++){
s += "\x3cdiv id='entry" + i + "'>\x3cdiv id='entry" + i + "Info'>\x3cspan class='entry-label'>File " + (i + 1) + " : " + m[i] + "\x3c/span> : (\x3cspan class='entry-max' >" + c[i].length + "\x3c/span>)\x3c/div>" +
"\x3cdiv class='entry-sorce'>\x3ctextarea class='enc-text' cols='100' rows='5'>" + enc[i].join("\n") + "\x3c/textarea>" +
"\x3ctextarea class='dec-text' cols='100' rows='5'>" +
dec[i].join("\n") + "\x3c/textarea>" + "\x3c/div>";
s += "\x3cdiv class='entry-main'>";

for(var j = 0; j < c[i].length; j++){
a = c[i][j];
b = userDat[a].charAt(0);
if(b.match(/\d/)) b = "0";
if(b != k) s += "\x3cspan class='up'>" + b.toUpperCase() + "\x3c/span>";
s += " : \x3cspan id='s" + a + "'>\x3ca href='#u" + a + "' title='#" + i + "'>" + userDat[a] + "\x3c/a>\x3c/span>";
k = b;
}
s += "\x3c/div>\x3c/div>";
}
s += "\x3c/div>";
echo("entryDisp", s);
tableCreate(0); eGraphLoader(fileCnt + 3);
setTimeout("eGraphLoader(-1)", 1000);
};

tableCreate = function(sort){
dataSort(sort);
thCnt = 0;
var tbl = "\x3ctable border='1' cellspacing='0' cellpadding='3'>" +
"\x3ccaption>\x3cspan>■\x3c/span>メインリストテーブル | \x3ca href=\"javascript:actList('list1')\">List-1 のみ\x3c/a> | " +
"\x3ca href=\"javascript:actList('list2')\">List-2 のみ\x3c/a> | \x3ca href=\"javascript:actList('list3')\">List-3 のみ\x3c/a> | " +
"\x3ca href=\"javascript:actList('')\">全リスト\x3c/a>" + toCap('') + "\x3c/caption>\x3ctbody>";
var s1 = "all-ID 登録日 訪問数 最新訪問日 日記 移行 C 最新番号 最新日付 初回番号 初回日付 掲示板 最新日付 A B".split(" ");
var a,b,c,d,i,n,u,s;
var c = "oid,date,num act,date,num act,num act,sel,num,date,num,date,num act,date,mid,mid".split(",");
var th = "\x3ctr class='th-row'>\x3cth>No.\x3c/th>";
var io = "\x3ca target='_blank' href='http://nancyan.main.jp/nancyan/io.php", io0 = io + "?uri=/cgi-bin/";
var io1 = io0 + "diary.cgi?oid=", io2 = io + "?uri=/home/", io3 = io0 + "bbs.cgi?oid=", io4 = io0 + "footprint.cgi?oid=";
var of = "\x3ca target='_blank' href='main.html?diary=177594", of1 = of + "&article=", of2 = of + "&page=";
var of3 = "\x3ca target='_blank' href='main.html?diary=175885&user=";
for(var j = 0; j < s1.length; j++){
th += "\x3cth class='" + (j != sort ? "exe" : reverseFg ? "sort-rev" : "sort-for") + "'";
th += " onclick='tableCreate(" + j + ")'>" + s1[j] + "\x3c/th>";
}
th += "\x3c/tr>";
for(i = 0; i < listDat.length; i++){
if(i % 20 == 0) tbl += th;
u = listDat[i].split(" ");
var sel = u[6].split(",").length;
var d1 = Number(u[16]) >> 3;
var d2 = Number(u[16]) & 3;
var sleep = Number(u[15]) & 4;
var oid = u[0].replace(/^.+:::/, "");
s = "\x3ctr id='u" + u[17] + "' class='list" + d1 + (sleep ? " sleep" : "") + "'>" +
"\x3ctd class='vnum' title='レコード毎にリンクを生成' onclick='vnumEntry(this)'>" + (i + 1) + "\x3c/td>";
for(var j = 0; j < c.length; j++){
s += "\x3ctd class='" +
(j == sort ? "sort-line " : "") + c[j] +
(j == 2 ? u[2].length - 1 : "") +
(j == 4 || j == 11 ? u[j].length : "") +
(c[j].match("mid") && u[j] != "0" ? " act" : "") +
(j == 5 && u[5] == "0" && d1 == 1 ? " err2" : "") +
"'>";
if(u[j] == "-" || j == 5 && d1 == 3) s += "-";
else switch(j){
case 0 : s += io2 + oid + "/'>" + oid +"\x3c/a>"; break;
case 1 : s += "\x3ca target='_blank' href='/home/nancyan/main.html?no=111&user=" + oid + "' title='コメントノート'>" + toDate(u[1]) + "\x3c/a>"; break;
case 2 : s += io4 + oid + "'>" + con(u[2]) + "\x3c/a>"; break;
case 3 : s += "\x3ca target='_blank' href='main.html?diary=172206&user=" + oid + "' title='索引取得 3.1.2'>" + toDate(u[3]) + "\x3c/a>"; break;
case 4 : s += of3 + oid + "' title='日記の全索引'>" + con(u[4]) + "\x3c/a>"; break;
case 5 : s += of2 + a2p(Number(u[9])) + "#A" + u[9] + "' title='" + (u[5] == "0" ? "不正な値です" : "") + "'>" + con(u[5]) + "\x3c/a>"; break;
case 6 : s += sel == 1 ? u[6] : "<select class='addSel'><option>" + ("0" + sel).slice(-2) + "件</option><option>" + u[6].replace(/\,/g, "</option><option>") + "</option></select>"; break;
case 7 : s += io1 + oid + ";s=" + u[7] + ";n=1'>" + con(u[7]) + "\x3c/a>"; break;
case 8 : s += of1 + u[7] + "'>" + toDate(u[8]) + "\x3c/a>"; break;
case 9 : s += io1 + oid + ";s=" + u[9] + ";n=1'>" + con(u[9]) + "\x3c/a>"; break;
case 10 : s += of1 + u[9] + "'>" + toDate(u[10]) + "\x3c/a>"; break;
case 11 : s += io3 + oid + ";n=20;s=19'>" + con(u[11]) + "\x3c/a>"; break;
case 12 : s += io3 + oid + ";n=20'>" + toDate(u[12]) + "\x3c/a>"; break;
case 13 : s += io2 + oid + "/menu.html'>" + u[13] + "\x3c/a>"; break;
case 14 : s += io2 + oid + "/main.html'>" + u[14] + "\x3c/a>"; break;
}
s += "\x3c/td>";
}
tbl += s;
}
tbl += "\x3ctr>\x3ctd colspan='16' id='vleDisp' class='vle-sleep'>done.\x3c/td>\x3c/tr>" +
"\x3ctr>\x3ctd colspan='16' id='dataListFooter'>2013 10/13 lastupdate.\x3c/td>\x3c/tr>\x3c/tbody>\x3c/table>";
echo("listDisp", tbl);
};
toCap = function(obj){
if(typeof(obj) != "object") return "\x3cbutton class='btnTo' onclick='toCap(this)'>領域をとじる\x3c/button>";
var fg,a,o = obj.parentNode;
if(o.tagName == "CAPTION"){
a = Ftag(o.parentNode, "tbody")[0];
fg = a.className == "tr-none";
a.className = fg ? "" : "tr-none";
} else {
a = o.nextSibling;
fg = a.style.display == "none";
a.style.display = fg ? "block" : "none";
}
o.firstChild.className = fg ? "" : "none";
obj.style.color = fg ? "#000" : "#339";
obj.firstChild.nodeValue = fg ? "領域をとじる" : "領域をひらく";
};

con = function(n){ return (n + "").replace(/(\d)(\d{3})$/, "$1,$2"); };

dataSort = function(n){
var a,b;
if(sortArea != n){
for(var i = 0; i < listDat.length; i++){
a = listDat[i].split(" ");
b = a[n];
if(n == 6) b = ("00" + b.split(",").length).slice(-3);
if(n == 2 || n == 4 || n == 5 || n == 7 || n == 9 || n== 11) b = (a[n] + "000000" + a[n]).slice(-7);
listDat[i] = b.replace(/^.+:::/, "") + ":::" + listDat[i].replace(/^.+:::/, "");
}
listDat.sort();
if(n != 0) listDat.reverse();
sortArea = n; reverseFg = false;
} else { listDat.reverse(); reverseFg = !reverseFg; }
};
toDate = function(s){
return s.replace(/(\d\d\d\d)\/(\d\d\/\d\d)/g, "$1 $2");
};
a2p = function(n){ return ("0" + Math.floor(n / 10000)).slice(-2) + ("0" + (Math.floor((n % 10000) / 500) + 1)).slice(-2); };


vnumEntry = function(o){
if(vle != null) vle.className = "vnum";
var fg = vle == o, a = Fid("vleDisp"), b = o.parentNode;
b.parentNode.insertBefore(a.parentNode, fg ? Fid("dataListFooter").parentNode : b.nextSibling);
o.className = fg ? "vnum" : "vnum-c"; vle = fg ? null : o;
echo(a, fg ? "done." : "ok");
};


addHeader = function(str){
var obj = Ftag("listDisp", "tr");
var a,o,n = 0;
var o = Fcn("listDisp", "tr", "th-row");
for(var i = 1; i < o.length; i++){
o[i].parentNode.removeChild(o[i])
}
};
actList = function(str){
Fid("listDisp").className = str;
var s = str == "" ? "all-ID" : str + "-ID";
};


files = function(no,type){
return;
echo("user" + no + "list",
(type ? "File" : "List") + no + "のデータ解析 : " + str.split("\n").length + "\x3cbr />" +
"置換後 : " + str.length +
("\x3cbr />\x3ctextarea cols='80' rows='8' class='area1' id='enc" + no + "'>" + str + "\x3c/textarea>\x3cbr />") +
"置換前 : " + str2.length + " \x3cbutton onclick='recDec(" + no + ")'>復元\x3c/button> \x3cspan id='recInfo" + no + "'>\x3c/span>\x3cbr />" +
("\x3ctextarea cols='80' rows='8' class='area2' id='dec" + no + "'>" + str2 + "\x3c/textarea>"));
};

[/beforeExec]
[cssText]
a { text-decoration:none; }
#menuDisp {
font:96%/1.2 meiryo,"メイリオ";
background:url(files/yukikko2b.gif) no-repeat center bottom;
}
.menu1 {
width:50%;
}
.menu-logo {
font-size:150%;
text-shadow:3px 3px 4px #808080;
}
.menu-msg {
width:80%; margin:1em; font:110%/1.3 serif;
}
.menu1 ul { font:96%/1.0 "Times New Roman"; color:darkgreen; margin-left:2em; }
.menu2 {
width:50%;
}
#entryGraph div {
width:300px; margin:0 auto;
padding:2px; border:1px solid #ccc;
}
[/cssText]
[body]
<$$div id="menuDisp"><$$/div>
<$$div id="entryGraph"><$$div><$$img id="eGraph" src="/parts/graph.png" alt="" height="10" width="0" /><$$/div><$$/div>
<$$div id="dispTop"><$$/div>
<$$div id="ioDisp"><$$/div>
<$$div id="listDispInfo"><$$/div>
<$$div id="listDisp"><$$/div>
[/body]

[exec]
document.title = "会員名簿Ver4.0データ更新ツール";
ini();
[/exec]
[/diary:183783]


■diaryCode作成日 2013年10月20日 8:56:24