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

[diary:182977]
[beforeExec]
window.onunload = function(){
if(self != parent && window.name == "main_yadokari") top.document.getElementsByTagName("frameset")[0].cols = "20%,80%";
};


dispCreate = function(){
var s = "";
msg = "移行後継続更新会員 移行後未更新会員 データ非移行会員".split(" ");
for(var i = 0; i < 3; i++){
var no = i + 1;
s += "\x3cdiv id='user" + no + "Disp' class='list-1 user-disp'>" +
"\x3cdiv class='user-info'>\x3cdiv class='info1'>\x3cspan class='logo1'>List-\x3c/span>\x3cspan class='logo2'>" + no + "\x3c/span> " +
"\x3cspan>" + msg[i] + " : \x3c/span>\x3cspan id='user" + no + "num'>\x3c/span>名\x3c/div>" +
"\x3cdiv class='info2'>\x3cbutton onclick='uriChange(" + no + ",1)' id='btn" + no +
"1' class='fg1'>ページ内ジャンプに設定\x3c/button> \x3cbutton onclick='uriChange(" + no + ",0)' id='btn" + no +
"0' class=''>詳細なリンク生成に設定\x3c/button> \x3cbutton onclick='dataUpDate(" + no + ",1)'>ファイルの解析 (" + no + ") \x3c/button> \x3cbutton onclick='dataUpDate(" + no + ",0)'>データの解析 ( " + no + ") \x3c/button>\x3c/div>\x3c/div>" +
"\x3cdiv class='listDisp'>\x3cdiv id='user" + no + "list' class='user-list'>\x3c/div>\x3c/div>\x3c/div>";
}

echo("dispTop", s);
};
ini = function(){
 if(self != parent && window.name == "main_yadokari") top.document.getElementsByTagName("frameset")[0].cols = "0,100%";
Fx.e("/home/yadokari/diary/2012/01/1326712421.html", "css");
};
Lo.css = function(s){
Fx.css = key(s.replace(/\x3cbr \/>/g, ""), "cssCode").replace(/\t/g, "\n");
Fx.cssText(Fx.dec(Fx.css));
echo("listDispInfo", Fx.dec(key(s, "body")));
user1 = [];
user2 = [];
user3 = [];
dispCreate();
uriDat = "05/1338120757 05/1337087291 04/1333222882".split(" ");
listString = "";
transDat = [];
listCreate();
actUser = "";
nonUser = "";
fullDat = "";
allFg = false;
iniCnt = 0;
thCnt = 0;
sortArea = -1;
reverseFg = false;
};
listCreate = function(){
if(uriDat.length){
var uri = uriDat.shift();

Fx.e("/home/yadokari/diary/2012/" + uri + ".html", "c1");
} else Fx.e("/home/yadokari/diary/2012/02/1329218988.html", "ent");
};
userListOut = function(user,obj,fg){
var s = fg ? "" : "\x3cdiv class='links-info'>done.\x3c/div>";
for(var i = 0, k = ""; i < obj.length; i++){
var a = obj[i].split(":");
var b = a[0].substring(0,1);
if(b != k) s += "\x3cspan class='up'>" + b.toUpperCase() + "\x3c/span>";
s += " : \x3ca class='ua' id='" + user + "a" + i + "' href='" +
(fg ? "#u" + a[1] : "javascript:userLinks(\"" + user + "a" + i + "\",\"" + user + "\",\"" + a[0] + "\"," + a[1] + ")") +
"'>" + a[0] + "\x3c/a>";
k = b;
}
echo(user + "list", s + " .");
Fx[user] = Fid(user + "list").firstChild;
};
uriChange = function(no, fg){
var a = Fid("btn" + no + fg);
if(a.className == "fg1") return;
userListOut("user" + no, window["user" + no], fg);
Fid("btn" + no + (fg ? 0 : 1)).className = "";
a.className = "fg1";
// Fid("user" + no + "Disp").className = "list-" + fg + " user-list";
};
Lo.c1 = function(s){
listString += key(s, "list").replace(/\x3cbr \/>/g, "").replace(/^[\t\s]+|[\t\s]+$/g, "") + "\t";
listCreate();
};
con = function(n){ return (n + "").replace(/(\d)(\d{3})$/, "$1,$2"); };
Lo.ent = function(s){
var re = key(s.replace(/\x3cbr \/>/g, ""), "list").replace(/^[\t\s]+|[\t\s]+$/g, "").split(" ");
for(var i = 0; i < re.length; i++){
var a = re[i].split(":");
transDat[a[0]] = a[1];
}
c1Entry();
};

c1Entry = function(){
listDat = listString.replace(/^[\t\s]+|[\t\s]+$/g, "").split(/\t/);
listDat.sort();
iniDat = [];
var str = "";
var u = [],b;
for(var i = 0; i < listDat.length; i++){
u = listDat[i].split(" ");
// str += "\x3ca href=\"javascript:entry('" + u[0] + "')\">" + u[0] + "\x3c/a> : ";
str += "\x3ca href='#u" + i + "'>" + u[0] + "\x3c/a> : ";

var a = u[0] + ":" + i;
if(u[10] != "-" && ((u[10].substring(0,2) == "99" ? "19" : "20") + u[10] < "20" + u[1])){
if(u[5] == "/"){ user2.push(a); b = 2; }
else { user1.push(a); b = 1; }
} else { user3.push(a); b = 3; }

iniDat[i] = u[0];
listDat[i] = u[0] + ":::" + listDat[i] + " u" + i + ":" + b;
}
// echo("linkDisp", user1);
for(var i = 1; i <= 3; i++){
var a = "user" + i, b = window[a];
echo(a + "num", b.length);
userListOut(a, b, 1);
}
tableCreate(0);
setTimeout("sub3()", 1000);
};
sub3 = function(){ Fx.e("/home/yadokari/diary/2012/03/1332253809.html", "c2"); };
Lo.c2 = function(s){
eval(key(Fx.dec(s.replace(/\x3cbr \/>/, "")), "code").replace(/\t/g, "\n"));
};

userListOut = function(user,obj,fg){
var s = fg ? "" : "\x3cdiv class='links-info'>done.\x3c/div>";
for(var i = 0, k = ""; i < obj.length; i++){
var a = obj[i].split(":");
var b = a[0].substring(0,1);
if(b != k) s += "\x3cspan class='up'>" + b.toUpperCase() + "\x3c/span>";
s += " : \x3ca id='" + user + "a" + i + "' href='" +
(fg ? "#u" + a[1] : "javascript:userLinks(\"" + user + "a" + i + "\",\"" + user + "\",\"" + a[0] + "\"," + a[1] + ")") +
"'>" + a[0] + "\x3c/a>";
k = b;
}
echo(user + "list", s + " .");
Fx[user] = Fid(user + "list").firstChild;
};
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 == 7 || n == 9 || n== 11) b = (a[n] + "000000" + a[n]).slice(-7);
if(n == 10 && b != "-") b = (b .substring(0,2) == "99" ? "19" : "20") + b;
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)/g, function(e0,e1,e2){ return (e1 == "99" ? "19" : "20") + e1 + " " + e2;});
};
tableCreate = function(sort){
dataSort(sort);
thCnt = 0;
var tbl = "\x3ctable border='1' cellspacing='0' cellpadding='3'>\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>";
for(var j = 0; j < s1.length; j++){
if(j == 13) continue;
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 d = u[u.length - 1].split(":");
s = "\x3ctr id='" + d[0] + "' class='list" + d[1] + (u[5] == "/" ? " sleep" : "") + "'>\x3ctd class='vnum'>" + (i + 1) + "\x3c/td>";
var oid = u[0].replace(/^.+:::/, "");
var trans = transDat[oid] || "0";
for(var j = 0; j < c.length; j++){
if(j == 13) continue;
s += "\x3ctd class='" + (j == sort ? "sort-line " : "") + c[j] +
(j == 2 ? u[2].length - 1 : "") +
(j == 4 || j == 11 ? u[j].length : "") +
(j == 5 ? trans.length : "") +
(j == 12 && (Number(u[11]) - Number(u[13])) > 1 ? " act4" : "") +
(c[j].match("mid") && u[j] != "0" ? " act" : "") + "'>" +
(c[j].match("num") ? con(j == 5 ? trans : u[j]) : "") +
(j == 0 ? oid : "") +
(c[j].match("sel") ? (sel == 1 ? u[j] : "<select class='addSel'><option>" +
("0" + sel).slice(-2) + "件</option><option>" + u[j].replace(/\,/g, "</option><option>") + "</option></select>") : "") +
(c[j].match("mid") ? u[j] : "") +
(c[j] == "date" ? toDate(u[j]) : "") + "\x3c/td>";
}
tbl += s;
}
tbl += "\x3c/tbody>\x3c/table>";
echo("listDisp", tbl);
};
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";


var o = Fcn("listDisp", "tr", "th-row");
echo(Ftag(o[0], "th")[1], s);

for(var i = 1; i < o.length; i++){
echo(Ftag(o[i], "th")[1], s);
}
/*
var o = Ftag(Fid("listDisp"), "tr");
var obj = o[0];
for(var i = 1; i < o.length; i+=25){
var a = obj.cloneNode(true);
obj.parentNode.insertBefore(a, o[i]);
}

o = Ftag("listDisp", "tr");
alert(echo(o[0]));

for(i = 1; i < o.length; i+=25){
o[i].parentNode.insertBefore(o[0].cloneNode(true), o[i]);
}
*/

/*
var o = Fcn("listDisp", "tr", "th-row");
for(var i = 0; i < o.length; i++){
echo(Ftag(o[i], "th")[1], s);
}
*/
};


userLinks = function(o,user,oid,no){
var peclat = "http://nancyan.main.jp/eclat/";
var io = "http://nancyan.main.jp/nancyan/io.php?uri=";
var eclat = "http://www.eclat.cc";
var calen = eclat + "/home/yadokari/main.html?diary=";

var str = "\x3cdiv class='links-1'>\x3cdiv class='links-oid'>" + oid + "@eclat\x3c/div>" +
"\x3ca class='cmd' href='javascript:userLinksClose(\"" + user + "\")'>close\x3c/a>";

str += "\x3c/div>\x3cdiv class='links-2'>";

var a = "\x3ca href='" + eclat + "/home/" + oid + "/";
var b = "\x3ca href='" + eclat + "/cgi-bin/";
var c = "\x3ca href='" + eclat + "/home/yadokari/main.html?diary=";
str += "標準のリンク\x3cbr />";
var s =
a + "'>home\x3c/a> | " +
a + "main.html'>Main\x3c/a> | " +
a + "menu.html'>Menu\x3c/a> | " +
a + "profile.html'>Profile\x3c/a> | " +
a + "links.html'>Links\x3c/a> | " +
a + "friends.html'>Friends\x3c/a> | " +
a + "diary/'>Diary(Top)\x3c/a> | " +
a + "diary/menu.html'>Diary(menu)\x3c/a>\x3cbr />" +
b + "diary.cgi?oid=" + oid + ";n=20'>Diary(cgi)\x3c/a> | " +
b + "bbs.cgi?oid=" + oid + ";n=20'>BBS\x3c/a> | " +
b + "footprint.cgi?oid=" + oid + "'>Footprint\x3c/a>\x3cbr />";


str += s + "\x3cbr>io.phpのリンク\x3cbr />";
str += s.replace(/href='http:\/\/www\.eclat\.cc/g, "href='http://nancyan.main.jp/nancyan/io.php?uri=");
str += "\x3cbr />";
str += "calenのリンク\x3c/br />";
str += c + "175885&user=" + oid + "'>日記の索引\x3c/>\x3cbr />\x3cbr clear='all'/>";
str += "\x3c/div>";

var c = Fx[user];
c.className = "links";
echo(c, str);
var d = Fid(o).nextSibling;
d.parentNode.insertBefore(c,d);
Fx[user] = c;

};

userLinksClose = function(user){
var o = Fx[user];
o.className = "links-info";
o.parentNode.insertBefore(o, o.parentNode.firstChild);
echo(o, "done");
};

testEntry = function(){
var key = "ai-love";
alert(transDat[key]);
};

[/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%;
}
[/cssText]
[body]
<$$div id="menuDisp">
<$$div class="menu1">
<$$div class="menu-logo"><$$a href="main.html?diary=182977">エクラの日記・会員名簿 Ver3.0更新ツール<$$/a><$$/div>
<$$div class="menu-msg"> 集大成の会員名簿(Ver3.0)の完成です。日記の文字数制限(16,000字)の為に奥のあるツールが出来ませんでしたが、追加ルーチンの採用でかなりの処理を行うことが出来るようになりました。<$$br /><$$br /> 以下にスムーズに更新が出来るようにリンクを掲げます。(リンクは新規)<$$/div>
<ul>
<li><$$a href="diary/2012/03/1332253809.html" target="_blank">日記会員名簿 Ver3の追加コード<$$/a> | <$$a href="main.html?diary=172231&page=185724" target="_blank">eDisp<$$/a></li>
<li><$$a href="diary/2012/01/1326712421.html" target="_blank">会員名簿 Ver3のCSSデータ<$$/a> | <$$a href="main.html?diary=172231&page=184647" target="_blank">eDisp<$$/a></li>
<li><$$a href="diary/2012/05/1338120757.html" target="_blank">日記移行会員名簿 v3 2013/10/07<$$/a> | <$$a href="main.html?diary=172231&page=186749" target="_blank">eDisp<$$/a></li>
<li><$$a href="diary/2012/05/1337087291.html" target="_blank">日記非移行会員名簿 v3-1 1013/10/07<$$/a> | <$$a href="main.html?diary=172231&page=186597" target="_blank">eDisp<$$/a></li>
<li><$$a href="diary/2012/04/1333222882.html" target="_blank">日記非移行会員名簿 v3-2 1013/10/07<$$/a> | <$$a href=" main.html?diary=172231&page=185900" target="_blank">eDisp<$$/a></li>
<li><$$a href="diary/2012/02/1329218988.html" target="_blank">日記移行件数追加データ(配列取得)<$$/a> | <$$a href="main.html?diary=172231&page=185122" target="_blank">eDisp<$$/a></li>
<li><$$a href="diary/2011/09/1316951526.html" target="_blank">ページの元ソース(カテゴリ:ツール)<$$/a> | <$$a href="main.html?diary=172231&page=182977" target="_blank">eDisp<$$/a></li>
</ul>
<$$/div>
<$$div class="menu2">

<$$/div>
<$$/div>


<$$div id="dispTop"><$$/div>
<$$div id="ioDisp"><$$/div>
<$$div id="listDispInfo">

<$$/div>
<$$div id="cmdDisp"><$$div id="cmdDisp">
<button onclick="actList('list1')">日記移行後継続更新会員のみ</button>
<button onclick="actList('list2')">日記移行後未更新(放置)会員のみ</button>
<button onclick="actList('list3')">日記非移行会員のみ</button>
<button onclick="actList('')">初期状態に戻す</button> ※状態はリストのソートを行っても保持されます。
<$$/div>
<$$div id="listDisp"><$$/div>
<!--
<form>
<input type="text" size="20" id="us" /><input type="button" onclick="btnEntry()" value="取得" /> <input type="reset" value="cls" />
<input type="button" value="test" onclick="testEntry()" />
<$$br >
<input type="button" value="全リスト継続" onclick="allEntry()" />
</form>
<$$div id="linkDisp"><$$/div>
<$$div id="linkDisp2"><$$/div>
<textarea id="txt2" cols="120" rows="10"></textarea><$$br >
<textarea id="txt3" cols="80" rows="10"></textarea><$$br >
<textarea id="txt4" cols="80" rows="2"></textarea>
---$$>
[/body]

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


■diaryCode作成日 2013年10月6日 15:35:58