データ移行 2.0

[diary:176201]
[beforeExec]
ini = function(){
transWait = false;
netRes = false;
Fx.CNT = 0;
befSel = "tr1";
var o = Ftag(Fid("list_table1"), "tr");
var s = "\x3cselect id='transPage' onchange='selChange(this)'>\n";
s += "\x3coption value=''>転送するリストを選択して下さい\x3c/option>\n";
var a,b,c;
for(var i = 2; i < o.length; i++){
a = Ftag(o[i], "td");
s += "\x3coption value='" + o[i].id + "'>" + o[i].id + " " + echo(a[4]) + " : " + echo(a[5]) + "\x3c/option>\n";
}
s += "\x3c/select>";
echo("list_table1_disp", s);
};

entry = function(){
alert("もう十分な領域を確保しています");
return;
echo("nowNo", Fx.CNT);
Fid("eDispForm").submit();
Fx.CNT++;
if(Fx.CNT < 100) setTimeout("entry()", 3000);
else {
Fx.CNT = 0;
alert("領域を100件確保しました");
}
};

eclatEntry = function(){
echo("userInfoDisp", "");
var cate = echo("category").replace(/C/, "");
var user = echo("eclat_id");
var url = "/cgi-bin/diary.cgi?oid=" + user + ";n=100;c=" + cate;
Fx.e(url, "et1");
max_len = "";
CNT = 0;

};


Lo.et1 = function(s){
if(max_len == ""){
max_len = s.match(/\((\d+) 件\)/) ? Number(RegExp.$1) : 0;
CNT = max_len;
}
var re = s.match(/\x3cdiv class="entry C\d+" id="A\d+">.+?\x3cdiv class="entry_responses">.+?\x3chr \/>/g);
if(!re) return;
var n2 = s.match(/\x3ca href="http:\/\/www.eclat.cc(\/cgi\-bin\/diary.cgi\?oid=[a-z0-9\-]+;n=100;(c=\d+;)?s=\d+)">\x3cspan title="より古い記事へ">>>\x3c\/span>\x3c\/a>/) ? RegExp.$1 : "";
var a,i,o,obj = Fid("userInfoDisp");
var date,url,arc,ti,comm,cate,cateName;
for(i = 0; i < re.length; i++){
arc = re[i].replace(/.+div class="entry C\d+" id="A(\d+)".+$/, "$1");
cate = re[i].replace(/.+div class="entry C(\d+)".+$/, "$1");
cateName = re[i].replace(/.+\x3cdiv class="entry_info">Category : \x3ca[^>]+>(.*?)\x3c\/a>\x3c\/div>.+$/, "$1");
date = re[i].replace(/.+ class="entry_date">(\d{4} \d\d\/\d\d \d\d:\d\d).+$/, "$1");
ti = re[i].replace(/.+class="entry_title">(\x3ca href="[^"]+" )title="[^"]+"(>[^<]+\x3c\/a>).+/, '$1target="_blank"$2');
comm = re[i].replace(/.+class="entry_responses">.+\x3ca href="[^"]+">コメント \((\d+)\)\x3c\/a>.+$/, "$1")
o = Fap(obj, Fce("div"));
echo(o, "\x3cspan class='no'>" + CNT + "\x3c/span> : \x3cspan>" + date +
"\x3c/span> : A\x3cspan>" + arc + "\x3c/span> : \x3cspan class='com" +
(comm == "0" ? 0 : 1) + "'>" + comm + "\x3c/span> : \x3cspan class='ct'>C" + cate + "\x3c\/span> : " +
"\x3cspan class='cn'>" + cateName + "\x3c\/span> : " + ti
);

--CNT;
}
if(n2 != "") Fx.e(n2, "et1");
else Fid("efs").disabled = false;
};

cateGet = function(){
var o = Fid("eclat_id"), oid = echo(o);
if(oid.length < 2 || oid.match(/[^a-z0-9\-]/)){
alert("ユーザIDが正しくないです");
o.focus(); o.select(); return;
}
Fx.e("/home/" + oid + "/diary/menu.html", "cate2");
};
Lo.cate2 = function(s){
var li = s.match(/\x3cdiv class="link_title">Category\x3c\/div>(.+?)\x3c\/ul>/) ? RegExp.$1 : "";
li = li.replace(/\x3c\/?(a|ul)[^>]*>/g, "").replace(/li class=/g, "option value=");
li = li.replace(/(\x3c\/)li/g, "$1option");
echo("cateDisp", '\x3cselect id="category">' + li + "\x3c/select>");
Fid("btn2").disabled = false;
};

eclatFormSubmit = function(){
Fid("efs").disabled = true;
Fid("transPage").disabled = true;
Fid("twe").disabled = false;
transExec();
};
transWaitEntry = function(){
transWait = true;
};
transExec = function(){
if(transWait){
Fid("twe").disabled = true;
Fid("efs").disabled = false;
FId("transPage").disabled = false;
return;
}
var F1 = Fid("nancyanForm"),el = F1.elements;
var obj = Fid("userInfoDisp");
var a = obj.firstChild;
echo("nowDisp", echo(a));
var sp = Ftag(a, "span");
var no = Number(echo(sp[0])) + transOffset;
echo(el["edit"], no);
if(echo(sp[1]).match(/(\d{4}) (\d\d)\/(\d\d) (\d\d):(\d\d)/)){
echo(el["year"], RegExp.$1);
echo(el["month"], RegExp.$2);
echo(el["day"], RegExp.$3);
echo(el["hour"], RegExp.$4);
echo(el["minute"], RegExp.$5);
} else {
alert("データの取得が間違っています");
return;
}
li = Ftag(a, "a")[0];
echo(el["subj"], echo(li));
var no = echo(sp[2]);
obj.removeChild(a);

Fx.e("/cgi-bin/diary_form.cgi?oid=yadokari;mode=edit;article_id=" + no, "ex1");
};
Lo.ex1 = function(s){
Fx.dec2 = false;
var F1 = Fid("nancyanForm");
var msg = s.replace(/.+\x3ctextarea[^>]+>(.+?)\x3c\/textarea>.+$/, "$1");
msg = Fx.dec(msg).replace(/\x26amp;/g, "\x26").replace(/\t/g, "\n");
F1.elements["text"].value = msg;
F1.submit();
};

netResponseEntry = function(){
if(!netRes){
netRes = true;
return;
}
if(Fid("userInfoDisp").childNodes.length > 0) transExec();
};
selChange = function(o){
Fid(befSel).className = "";
Fid("efs").disabled = true;
echo("userInfoDisp", "");
var n = echo(o);
if(n ==""){
befSel = "tr1";
return;
}
Fx.CNT = 0;
befSel = n;
var F1 = Fid("nancyanForm");
var obj = Fid(n);
obj.className = "nowSel";
var a = Ftag(obj, "td");
echo(F1.elements["name"], echo(a[9]));
echo(F1.elements["field"], echo(a[8]));
transOffset = Number(echo(a[10]));
max_len = "";
CNT = 0;
Fx.e("/cgi-bin/diary.cgi?oid=" + echo(a[4]) + ";n=100;c=" + echo(a[6]), "et1");
};
[/beforeExec]
[cssText]
#eclatForm { margin-bottom:1em; }
#userInfoDisp{
height:13em; overflow:auto; margin-top:2em;
font:90%/1.3 meiryo,"メイリオ";
}
#userInfoDisp a {
text-decoration:none;
}
.sep {
border-bottom:1px solid #808080;
margin-bottom:.5em; padding-bottom:.25em;
}
.no, .com0, .com1 { display:inline-block; width:3em; text-align:right; }
.ct { display:inline-block; width:2.5em; color:darkgreen; }
.cn { display:inline-block; min-width:8em; }
.com0 { color:#808080; }
.com1 { color:#000; }
#nowDisp {
font:90%/1.3 meiryo,"メイリオ"; color:steelblue;
margin-top:1em;
margin-bottom:1em; min-height:1em;
}
.inline_table1 {
width:100%; margin:1em 0; border:1px solid #808080;
font:80%/1.2 meiryo,"メイリオ"; color:#000;
}
.inline_table1 caption { text-align:left; padding-bottom:.5em; color:darkgreen; }
.inline_table1 td { background-color:#ffefff; border:1px solid #ccc; padding:4px; }
.inline_table1 th { background-color:#fc9; border:1px solid #ccc; padding:4px; }
.inline_table1 .num { text-align:right; }
.inline_table1 .num1 { text-align:center; font-weight:bold; color:red; }
.inline_table1 a { text-decoration:none; }
option { font:80%/1.2 meiryo,"メイリオ"; }
h4 { margin:.25em 0; }
.nowSel td { background-color:yellow; color:tomato; }
[/cssText]
[body]
<$$br />
<$$a href="main.html?diary=176201&host=http://cgi.nancyan.net/">データ移行 2.0<$$br />
<h4>■記事番号とエクラのコンテンツ対応表</h4>
<table class="inline_table1" id="list_table1">
<caption>※エクラの転送ツールなんちゃんネットは同期を取っています。</caption>
<tbody>
<tr><th>転送</th><th>開始</th><th>終了</th><th>件数</th><th>eclat_id</th><th>category</th><th>cate</th>
<th>フィールド</th><th>filed</th><th>poster</th><th>offset</th></tr>

<tr><td class="num1"></td><td class="num">1</td><td class="num">100</td><td class="num">100</td><td colspan="3">システム・ツール領域</td>
<td>領域確保</td><td class="num">10</td><td>admin</td><td class="num">0</td></tr>

<tr id="tr1"><td class="num1">1</td><td class="num">101</td><td class="num">450</td><td class="num">350</td><td>botanic</td><td>日記</td><td class="num">1</td>
<td>日記帳::葉月色の日記</td><td class="num">7</td><td>hazuki</td><td class="num">100</td></tr>

<tr id="tr2"><td class="num1">2</td><td class="num">451</td><td class="num">504</td><td class="num">54</td><td>botanic</td><td>庭作り</td><td class="num">533</td>
<td>庭作り</td><td class="num">3</td><td>hazuki</td><td class="num">450</td></tr>

<tr id="tr3"><td class="num1">3</td><td class="num">505</td><td class="num">541</td><td class="num">37</td><td>botanic</td><td>蝶の記録</td><td class="num">532</td>
<td>蝶の記録</td><td class="num">2</td><td>hazuki</td><td class="num">504</td></tr>

<tr id="tr4"><td class="num1">4</td><td class="num">542</td><td class="num">599</td><td class="num">58</td><td>botanic</td><td>音楽</td><td class="num">3</td>
<td>音楽</td><td class="num">4</td><td>hazuki</td><td class="num">541</td></tr>

<tr id="tr5"><td class="num1">5</td><td class="num">600</td><td class="num">793</td><td class="num">194</td><td>nancyan</td><td>日記</td><td class="num">1</td>
<td>日記帳::なんちゃん色の日記</td><td class="num">6</td><td>nancyan</td><td class="num">599</td></tr>

<tr id="tr6"><td class="num1">6</td><td class="num">794</td><td class="num">806</td><td class="num">13</td><td>botanic</td><td>ポエム</td><td class="num">19</td>
<td>ポエム</td><td class="num">1</td><td>hazuki</td><td class="num">793</td></tr>

<tr id="tr7"><td class="num1">7</td><td class="num">807</td><td class="num">817</td><td class="num">11</td><td>nancyan</td><td>ポエム</td><td class="num">19</td>
<td>ポエム</td><td class="num">1</td><td>nancyan</td><td class="num">806</td></tr>



</tbody></table>

<form id="eclatForm" onsubmit="return false;">
<$$span id="list_table1_disp"><$$/span>
<input type="button" value="データを転送する" id="efs" disabled="disabled" onclick="eclatFormSubmit()" />
<input type="button" value="一時停止" onclick="transWaitEntry()" id="twe" disabled="disabled" />
</form>
<form action="http://cgi.nancyan.net/cgi-bin/pro/diary.cgi" method="post"
id="nancyanForm" chrset="utf-8" target="futari">
<input type="hidden" name="mode" value="admin" />
<input type="hidden" name="work" value="edit" />
<input type="hidden" name="edit" value="0" />
<input type="hidden" name="subj" value="*" />
<input type="hidden" name="year" value="2006" />
<input type="hidden" name="month" value="11" />
<input type="hidden" name="day" value="11" />
<input type="hidden" name="hour" value="11" />
<input type="hidden" name="minute" value="11" />
<input type="hidden" name="field" value="10" />
<$$textarea cols="80" rows="2" name="text">*<$$/textarea>
<input type="hidden" name="name" value="admin" />
<input type="hidden" name="stat" value="1" />
<input type="hidden" name="break" value="1" />
<input type="hidden" name="comt" value="1" />
<input type="hidden" name="exec_regist" value="投稿する" />
</form>


<!--
poster_user:<select id="poster_user">
<option value="nancyan" selected="selected">nancyan</option>
<option value="hazuki">hazuki</option>
</select>
eclat_id:<input type="text" size="16" id="eclat_id" value="nancyan" />
<input type="button" value="カテゴリ取得" onclick="cateGet()" id="btn1" />
<$$span id="cateDisp"><$$/span>
<input type="button" value="データ取得" onclick="eclatEntry()" id="btn2" disabled="disabled" />
<input type="button" value="移行の実行" onclick="transEntry()" id="btn3" disabled="disabled" />
</form>

-->
<$$div id="nowDisp"><$$/div>
<$$div id="userInfoDisp"><$$/div>

<$$iframe name="futari" id="futari" width="90%" height="400" frameborder="0" onload="netResponseEntry()"><$$/iframe>

[/body]
[exec]
document.title = "データ移行 2.0";
ini();
[/exec]
[/diary:176201]


■仕様書 Wrote 2011 05/16 23:29