エクラの日記追加関数 c-mode (1)
エクラの日記追加関数 c-mode (1)

[newDiaryArticleMax]195102[/newDiaryArticleMax]

[CLASS-A]281105 abasan ai-love althjp aoe arty-crafty asuka benkei bunchan00 emu enmasama3 freehand2007 fujit1123 funabin2ikoo funabinikoo hana227 hanami happyporon hot-chocolate iichan izayoi jin8t kadoma1428 kakei kotetti labyrinth lennonon local-chasitu luck7 michibell-zg midnight mikiharb mimi mimimi nagomi2 nao ojisaninomoide packman-jun s-pro sakura1205 samphot samuasura shimo sirayuki tanpopo torum tukinomiya27 voyov webkyoto white-moon x1234567890 yadokari yattyan yu-ma yukiusagi898[/CLASS-A]

[CLASS-B]3rd-world arinko3 asf7878078 banksiaelutea bihadakirei boonyan buru dewberry dragon-jj francetei fugaty gontango hakuho hanano55renge hatahira hiromi39373 hokuto894yu hope777 hottyan ikind inaget jetchuu js june kanpintan kasiwazin kazedayori kazu0726 kintyan kumachan log2 log3 maria-monika0827 masamim mikie minesto miti1935 nagomi namikaze77 nature6000 nekomilk3 nekonasui noren okuaizuibento ontai75 oogoto poem pure1 qp rinko shion since smile-for-you snow soleil sumire1003 sykt syoumei tajimayoitoko takuro-tada1123 tenyou umi-zaru windswept wsf6332347 yama-1955[/CLASS-B]

[CLASS-C]00dream00 144fm a-crescent-moon akicyann angels-egg-07 aoi-love ayame2009 casablanca cherry109 chi-gonta cosumo8733 crystal3636 daichan8929 day107 daytona21 dream-angels fuga george2 izumikuns kashi kitahotaru leica love-true maikeru manami meeranz milky-way misaki miyo412 miyumiyu0205 motozosenya nanatic-may net-office-takahashi nori-pee ph801fy s231203 saikourin3 sakurako-0017 sanx2 sepianet shiro shizu-thai shymoon sky-wind spirit1018 st3401 suitoyaji tatujinnsp tokyoresarch tozi2007 tuneko-3 tuntun white-rabbit wild-beast y-cosmos0414 yokorystars8897 youchan1951[/CLASS-C]

[CLASS-D]0sachy a-memorial-day-0913 adadasports agnus aizu-no-atorie-27 ann barchetta bearshouse black66 cherry cherrylove danpatu22 dokihoyo eclatinfo edensnow erste917 fairsan fiorentinareiko fuji-san fund george georges-angels grape hibisucus hikasan ikanago indranet iyoyoshida38481 kakui kappalove7 karen-kika karin karuikoneko kazu kokoro227 kotoko lotus marinenet maruko matsuyu427 me-kun megu monzennokozoh moonrabbit myiyan myiyan2 nancyan nogyan noro o-zora odd-person oppo27 otoya owo p0286 pc5 piccolo-nonbe power-bass7 reikamama sachi saeba-room sakkun-my-life sakuzou sanuemon sasaken21 sazare7 secret shala shunpei shworld tajimanoyamatera tarotaro ter-sky-b teruka3 uma2008 waterapple xxkintaxx xxx-love xxx-s yozo1124 yukie yuyaban[/CLASS-D]

[CLASS-E]847 aikarubari akemu akm2 angel-room azteca777chiri dancewebgroove earth7777gt heesun hibari-neko himawari hiro0000 ibuchan ituka100mile kamuiseito kazutoko11 kengo kizuna kudou17 lovelovehamayu lovelovelove334 m-kikaku-jyouhou madamfam maesan makoto mam-kiss michelle midori11941 miki-george n-kagaku nana418 nandemomami net-works non525 noripee823 office101miura okurairi otelat pianissimo piastar piyo pooh popochan rapit77 ryus-cafe sayuri-hoshino seisaizakaya shaw shigosen soichi sorou5 suamahime sumire-co suzukikun tak777 tmaki33 toko tyako0712 utasuki vip w246 yama0008 yoppi[/CLASS-E]

[CLASS-F]38476257 aimy21 aonomori aquamarine0301 arata-tokyo-jp azimut bamboo-land bihou blue bump-alliance candy cetace cetu comicparty creator-0001 cure diebe eca eclair edguy evanz flash fu funtoharuka georges glad hakkunine hana-chan hanya haro8586 hidehide5 hikariko idukonakako jack8008 jade-space jakejake jas-39 jesus ka54320 kabi25 kagegitune kaito kannnaduki karasaifuu2 karubi kuroro kurosawamio lmix-fz10 luminar mariachan michiaki mickey0623 minami mitch-29 musical myina nana nana3-x nekotama nonnsann novels-love oheso pezun0088 piyoko qwe212 renna-satokawa-love-poet rescueparty riv7 robokyksk runcya sally-b sansejp seaco-w shok369 souki tako tamayorihime tano-mikkun-nao titose treason tsubasaurus vega venice yam-tea yatcha-s yokochan38 yoo young-love2 yoursong yurari yutatomo[/CLASS-F]

[CODE]
selChange = function(){
// impExec(20);
};

ref_data = function(s){
s = s.replace(/\n/g, "\t");
s = s.replace(/(\d|\-|\+)A(\d+)(\,?\d*) : (\d+) ([^\t]+)/g, function(e0,e1,e2,e3,e4,e5){
return e1 + "A" + ("00" + e2).slice(-3) + (" " + e3).slice(-3) + " : " +
(" " + e4.replace(/(\d)(\d{3})$/, "$1,$2")).slice(-6) + " " + e5;
});
return s;
};
impExec = function(n){
var o = Fid("impDoc");
switch(n){
case 0 : echo(o, fe[0]); break;
case 1 : echo(o, Fx.dec(fe[1])); break;
case 2 : echo(o, fe[2] ? "true" : "false") ; break;
case 3 : echo(o, fe[3]); break;
case 4 : echo(o, feMsg(feArticle)); break;
case 5 : echo(o, UPDATE); break;
case 6 : echo(o, OFFSET); break;
case 7 : echo(o, UserDat); break;
case 8 : echo(o, TransDat); break;
case 9 : echo(o, DataDat); break;

case 10 :
var a = Fid("impExecDisp2"); a.className = "bef-load";
var no = echo("sel1") - 0;
var n1 = no * 500;
n12create();
var f = fileLoad(no + 175171);
echo(o, fe[0]);
a.className = "";
break;
case 11 : echo(o, feArticle); break;
case 12 : appendEntry(); break;
case 13 : allDataCheck(); break;
case 14 : articleLoad(); break;
case 15: echo(o, Fx.dat); break;
case 20 :
Fx.user = echo("uSel");
echo(o, Fx.user);
impUserFileLoad();
Fid("impExecUserDisp").className = "";
break;


case 29 :
loopExec = "C30";
Fx.transUserNewList = " ";
Fx.transDeleteUserList = " ";
loopStopFg = false;
var s = "uSel mSel B30 B20".split(" ");
for(var i = 0; i < s.length; i++) Fid(s[i]).disabled = true;
loopStartEntry();
loopEntry(); break;
case 30 :
loopCNT = 0;
loopCntMax = Fid("uSel").options.length;
impExec(29); break;
case 31 :
loopCNT = Fid("uSel").selectedIndex;
loopCntMax = loopCNT;
impExec(29); break;
case 32 : echo(o, Fx.transUserNewList); break;
case 33 : echo(o, Fx.transDeleteUserList); break;
case 34 : echo(o, userDiaryFileString); break;
case 35 : echo(o, impUserList.replace(/(^ | $)/g, "")); break;
case 36 : echo(o, impUserNewList.replace(/(^ | $)/g, "")); break;
case 37 : echo(o, impUserTransList.replace(/(^ | $)/g, "")); break;

case 40 : echo(o, Fx.allTrans); break;
case 41 : echo(o, Fx.classA); break;
case 42 : echo(o, Fx.classB); break;
case 43 : echo(o, Fx.classC); break;
case 44 : echo(o, Fx.classD); break;
case 45 : echo(o, Fx.classE); break;
case 46 : echo(o, Fx.classF); break;
case 47 : echo(o, Fx.classG); break;


case 50 : echo(o, newUserDat); break;
case 51 : echo(o, newData); break;
case 52 : echo(o, newDoc); break;
case 53 : echo(o, newTitle); break;

case 60 :
var s1 = Fx.allTrans.replace(/(\t|\n)/g, " ");
s1 = s1.replace(/\d+\-\d+\,([a-z0-9\-]+)\,\d/g, "$1");
var s2 = echo(o);
if(s2 == "") return;
s2 = s2.replace(/(^ | $)/g, "").split(" ");
var str = "";
for(var i = 0; i < s2.length; i++){
if(!isFind(s1, s2[i]) && !isFind(str, s2[i])) str += s2[i] + " ";
}
str = str.replace(/ $/, "");
echo(o, str);
break;
case 61 :
var re = echo(o);
if(re.length > 1 && re.match(/[a-z0-9\-]{2,}/)){
re = re.replace(/([a-z0-9\-]+)/g, "\x3coption value=\"$1\">$1\x3c/option>");
echo("selCreateDisp", "\x3cselect id=\"uSel\">" + re + "\x3c/select>");
}
break;
case 62 :
var str = "";
var uri = "/cgi-bin/diary.cgi?oid=all;n=100";
for(var i = 0; i < 2; i++){
fileIo(uri, 1);
var s = Fx.dec(Fx.e(uri, false));
fileDone();
s.replace(/"\/home\/([0-9a-z\-]+)\/"/g, function(e0,e1){
if(!isFind(str, e1)) str += e1 + " ";
return "";});
uri = s.replace(/^.+(\/cgi\-bin\/diary\.cgi\?oid=all;n=100;s=\d+).+$/, "$1");
}
echo(o, sSort(str)); break;

case 63 :
echo(o, "class-Aを取得中です。");
Fx.classA = sSort(userSerch(0,3));
echo(o, "class-Bを取得中です。時間が掛かります");
Fx.classB = sSort(userSerch(3,22));
echo(o, "class-Cを取得中です。時間がとっても掛かります");
Fx.classC = sSort(userSerch(23,42));
echo(o, "class-Dを取得中です。時間がとっても掛かります");
Fx.classD = sSort(userSerch(43,82));
echo(o, "class-Eを取得中です。時間がとっても掛かります");
Fx.classE = sSort(userSerch(83,122));
echo(o, "class-Fを取得中です。時間がとっても掛かります");
Fx.classF = sSort(userSerch(123,300));

echo(o, "クラスを適正化しています。");
var i,j,a,str,s,s1,msg = "", user = Fx.classA;
var lab = "BCDEF",label;
for(j = 0; j < lab.length; j++){
label = "class" + lab.charAt(j);
s = Fx[label].split(" "); s1 = s.length;
for(i = 0,str = ""; i < s.length; i++) if(!isFind(user, s[i])){
str += s[i] + " "; user += " " + s[i];
}
a = sSort(str);
Fx[label] = a;
msg += label + "のユーザ数が" + s1 + "から" + a.split(" ").length + "に変更されました。\n";
}
echo(o, msg + "\n変更があるときは自分自身を更新していますので注意してください。");
fileKeyReplace(176638, "CLASS-A", Fx.classA, "CLASS-B", Fx.classB, "CLASS-C", Fx.classC, "CLASS-D", Fx.classD, "CLASS-E", Fx.classE, "CLASS-F", Fx.classF);
break;

case 64 :
echo(o, echo(o).replace(/([0-9]+)/g, function(e0,e1){ return e1 + ":(" + a2p(e1 - 0) + ")"; }));
break;

case 65 :
echo(o, Fx.dat);
break;


case 70 : echo(o, ""); break;
case 71 : echo(o, msgDat); break;


}
};

sSort = function(s){
var str = s.replace(/(^ | $)/g,"").split(" ");
str.sort(); return str.join(" ");
};
userSerch = function(n1, n2){
var str = "",i,re;
for(i = n1; i < n2; i++){
re = fileKeyLoad(a2n(Fx.articleMax) - i, "USER");
re.replace(/\d+:"([0-9a-z\-]+)\,\d+"/g, function(e0,e1){
if(!isFind(str, e1)) str += e1 + " ";
return ""; });
}
return str;
};
loopEntry = function(){
echo("loopInfo", loopExec + " : " + loopCNT + " / " + loopCntMax);
if(loopStopFg){
loopStopCmd = "loopEntry()";
loopStopEntry();
return;
}

switch(loopExec){
case "C30" :
Fid("uSel").selectedIndex = loopCNT;
impExec(20); break;

}
};

afterExec = function(){
switch(loopExec){
case "C30" :

if(impUserNewList.split(" ").length > 2){
Fx.transUserNewList += Fx.user + " ";
echo("impDoc", Fx.transUserNewList);
}

++loopCNT;
if(loopCNT < loopCntMax){
if(loopBreakFg){
loopStopCmd = "loopEntry()";
loopStopEntry();
return;
} else setTimeout("loopEntry()", 500);
} else {
echo("impDoc", "全ての処理が終了しました。");
loopQuitEntry();
}
break;
}
};
loopStopEntry = function(){
Fid("lpb2").disabled = false;
Fid("lpb3").disabled = false;
Fid("lpb1").disabled = true;
};
loopQuitEntry = function(){
loopExec = "";
for(var i = 1; i <= 3; i++) Fid("lpb" + i).disabled = true;
var s = "uSel mSel B30 B20".split(" ");
for(i = 0; i < s.length; i++) Fid(s[i]).disabled = false;
};
loopStartEntry = function(){
Fid("lpb1").disabled = false;
Fid("lpb2").disabled = true;
Fid("lpb3").disabled = true;
};
loopStop = function(){
loopStopFg = true;
};
loopStart = function(){
loopStopFg = false;
loopStartEntry();
setTimeout(loopStopCmd, 300);
};
loopQuit = function(){
if(confirm("処理の途中です。" + (loopCntMax - loopCNT - 1) + "件のループ処理が残っています。\n\n処理を破棄して終了しますか?")) loopQuitEntry();
};
sSelChange = function(o){
loopBreakFg = echo(o) == "1" ? true : false;
};
mSelChange = function(){
var str = Fx["class" + echo("mSel")].replace(/([a-z0-9\-]+)/g, "\x3coption value=\"$1\">$1\x3c/option>");
echo("selCreateDisp", "\x3cselect id=\"uSel\">" + str + "\x3c/select>");
};
sel1Change = function(){} // impExec(10);
n1selChange = function(){};
n2selChange = function(){};
n12create = function(){
var a = Fx.articleMax + 1;
var b = Fx.allArticleMax;
var n2 = echo("sel1") * 500;
var n1 = n2 + 499;
echo("n1selDisp", createSelect("n1sel", a <= n1 && a >= n2 ? a : n1, n1 + "-" + n2, ""));
echo("n2selDisp", createSelect("n2sel", b <= n1 && b >= n2 ? b : n1, n1 + "-" + n2, ""));
};



makeDoc = function(){
var i,str;
str = "\x3ctable id=\"cmode-table\" cellspacing=\"2\" cellpadding=\"3\" border=\"1\">" +
"\x3ctr>\x3ctd>Fx.allArticleMax\x3c/td>\x3ctd>" + Fx.allArticleMax + "\x3c/td>\x3c/tr>" +
"\x3ctr>\x3ctd>Fx.articleMax\x3c/td>\x3ctd>" + Fx.articleMax + "\x3c/td>\x3c/tr>" +
"\x3ctr>\x3ctd>未収録件数\x3c/td>\x3ctd>" + (Fx.allArticleMax - Fx.articleMax) + "\x3c/td>\x3c/tr>" +
"\x3ctr>\x3ctd>最終ページ番号\x3c/td>\x3ctd>\x3ca href=\"main.html?diary=177594&page=" + a2p(Fx.articleMax) + "\" target=\"_blank\">" + a2p(Fx.articleMax) + "\x3c/a>\x3c/td>\x3c/tr>" +
"\x3ctr>\x3ctd>Fx.importMax\x3c/td>\x3ctd>" + Fx.importMax + "\x3c/td>\x3c/tr>" +
"\x3ctr>\x3ctd>未import件数\x3c/td>\x3ctd>" + (Fx.articleMax - Fx.importMax) + "\x3c/td>\x3c/tr>" +
"\x3ctr>\x3ctd>移行会員\x3c/td>\x3ctd>\x3cbutton onclick=\"impExec(40)\">list\x3c/button> : " + Fx.allTrans.split(/\n/).length + "\x3c/td>\x3c/tr>";
re = "A (P0-2),B (P3-22),C (P23-42),D (P43-62),E (P63-82),F (P83-),G (移行非更新)".split(",");
for(i = 0; i < re.length; i++){
str += "\x3ctr>" +
"\x3ctd>\x3ca href=\"javascript:impExec(" + (i + 41) + ")\">Class:" + re[i] + "\x3c/a>\x3c/td>" +
"\x3ctd id=\"td" + i + "\">" + Fx["class" + re[i].charAt(0)].split(" ").length + "\x3c/td>\x3c/tr>";
}
echo("menuDisp", str + "\x3c/table>");
msg("テーブルを生成しました。");

str = "\x3cdiv id=\"loopExecDisp\">\x3cdiv id=\"stopDisp\">" +
"Stop:1:stop,Start:2:start,Quit:3:quit".replace(/([a-zA-Z]+):(\d):([a-z]+)\,?/g,
"\x3cbutton onclick=\"loop$1()\" disabled=\"disabled\" id=\"lpb$2\">$3\x3c/button>") + "\x3c/div>" +
"\x3cdiv id=\"loopInfoDisp\">\x3cspan id=\"loopInfo\">done.\x3c/span>\x3c/div>\x3c/div>" +
"\x3ctable cellspacing=\"2\" cellpadding=\"3\" border=\"1\">";
re = "Fx.user create file imp:all imp:new trans imp:file User UserNo UserDat DATA newDoc newTitle".split(" ");
for(i = 0; i < re.length; i++) str += "\x3ctr>\x3ctd>" + re[i] + "\x3c/td>\x3ctd id=\"ud" + i + "\">done.\x3c/td>\x3c/tr>";
echo("importUserDisp", str + "\x3c/table>");


echo("execEntryDisp",createButton("30:★全ユーザ処理 31:★単独処理 32:New 33:Del 34:ファイル 35:全て 36:新規 37:移行"));
echo("impExecUserDisp", createSelect("mSel","","A:class A,B:class B,C:class C,D:class D,E:class E,F:class F,G:class G", "") +
"\x3cspan id=\"selCreateDisp\">\x3c/span>" +
createSelect("sSel","","0:連続処理, 1:ブレーク", "") + ":" + createButton("20:★単独ロード")
);
mSelChange();
echo("impExecDisp1", "ページ :" + createSelect("sel1", 390, "399-0", numberToPage) + ":" + createButton("10:★単独ロード") + " " +
"\x3cspan id=\"n1selDisp\">\x3c/span> - \x3cspan id=\"n2selDisp\">\x3c/span>:" + createButton("14:★単独ロード 15:Fx.dat")
);
n12create();

echo("imgExecDisp5", createButton("11:feArticle 12:★アペンドモード 13:★データチェック"));
echo("impExecDisp2", createButton("0:fe[0] 1:fe[1] 2:fe[2] 3:fe[3] 4:MSG 5:UPDATE 6:OFFSET 7:USER 8:TRANS 9:DATA"));

echo("impExecDisp3", createButton("70:cls 71:msgDat"));
echo("impExecDisp4", createButton("60:OID抽出 61:OID追加 62:新着日記抽出 63:★クラス適正化 64:ページ抽出 65:全タイトル抽出"));

msg("コマンドを生成しました。");
msg("c-mode(2)を読み込んでいます。");
eval(Fx.t2n(Fx.dec(fileKeyLoad(177177, "CODE"))));
msg("関数を定義しました");
msg("準備が整いました");
};

[/CODE]