もう大分前の話。blog書くのが面倒で、ハードディスクに眠ってたscriptを蔵出し。
「夢の東方タッグ編464・5コマ目「応援」(評価不要)」/「オレンジゼリー」のイラスト [pixiv] - http://p.tl/i9038637
アンケートの実況stickam見てたとき、数万件を手動でやってて至極面倒そうだったので、即興で書いた丈、でお蔵入り。
コメントをCSVで出力する丈。return部分は当然書き換えて。
(function(){ var trs=document.querySelector('#one_comment_area tbody').querySelectorAll('tr'), tds, i=0, l, result=[]; for(l=trs.length; i<l; ++i){ tds = trs[i].querySelectorAll('td'); result.push([tds[1].firstChild.innerHTML, tds[1].firstChild.getAttribute('href').slice(14), tds[2].innerHTML,tds[3].innerHTML]); }; return 'name,id,comment,time\n'+result.join('\n'); })();
javascript:(function(){var%20trs,tds,i=0,l,result=[];trs=document.querySelector('#one_comment_area%20tbody').querySelectorAll('tr');for(l=trs.length,tds=trs[i].querySelectorAll('td');i<l;++i){result.push([tds[1].firstChild.innerHTML,tds[1].firstChild.getAttribute('href').slice(14),tds[2].innerHTML,tds[3].innerHTML]);};return result.join('\n');})();
此れを元にして。
アンケート用bookmarklet。
(function(){ const trs=document.querySelector('#one_comment_area tbody').querySelectorAll('tr'), rA=/^\s*A|A/i, rB=/^\s*B|B/i, rC=/^\s*C|C/i; var tds, i=0, l, comids=[], comid,com,result=[0,0,0]; for(l=trs.length; i<l; ++i){ tds = trs[i].querySelectorAll('td'); comid = Number(tds[0].firstChild.getAttribute('href').slice(14)); if(comid <= 1690000 && comids.indexOf(comid) === -1){ comids.push(comid); com = tds[1].innerHTML; if(rA.test(com)){ ++result[0]; }else if(rB.test(com)){ ++result[1]; }else if(rC.test(com)){ ++result[2]; }; }; }; alert('A: '+result[0]+'\nB: '+result[1]+'\nC: '+result[2]); })();
javascript:(function(){const%20trs=document.querySelector('#one_comment_area%20tbody').querySelectorAll('tr'),rA=/^%5cs*A|A/i,rB=/^%5cs*B|B/i,rC=/^%5cs*C|C/i;var%20tds,i=0,l,comids=[],comid,com,result=[0,0,0];for(l=trs.length;i<l;++i){tds=trs[i].querySelectorAll('td');comid=Number(tds[1].firstChild.getAttribute('href').slice(14));if(comid<=1690000&&comids.indexOf(comid)===-1){comids.push(comid);com=tds[2].innerHTML;if(rA.test(com)){++result[0];}elseif(rB.test(com)){++result[1];}elseif(rC.test(com)){++result[2];};};};alert('A:'+result[0]+'%5cnB:'+result[1]+'%5cnC:'+result[2]);})();
閲覧者と管理者で、コメント欄の要素構成が違うのが、test時の悩み。
tested on Opera 10.5
Dragonflyが頑張った。