c4se記:さっちゃんですよ☆

.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)

.。oO(此のblogは、主に音樂考察Programming に分類されますよ。ヾ(〃l _ l)ノ゙♬♪♡)

音樂は SoundCloud に公開中です。

考察は現在は主に Scrapbox で公表中です。

Programming は GitHub で開發中です。

pixivのコメント欄アンケートとか #javascript #bookmarklet

もう大分前の話。blog書くのが面倒で、ハードディスクに眠ってたscriptを蔵出し。
「夢の東方タッグ編464・5コマ目「応援」(評価不要)」/「オレンジゼリー」のイラスト [pixiv]
「夢の東方タッグ編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が頑張った。