a値確認&編集更新スクリプト

    @@ -1,90 +1,38 @@ -/* - * @title a値確認&編集更新スクリプト - * @description my bookmarklet - * @include https:*.open2ch.net* - * @license MIT License - * @require - */ - -/* -cookieはopen2ch内ではどこでも(hayabusa,uniなど)同じ。 -httpsではなくhttpでなければ使えないので注意。 -http://hayabusa.open2ch.net/livejupiter/ -*/ - -var firstLoadFlag = true - -/* -こっから丸ごとコピペしてきました。 -https://javascript.programmer-reference.com/js-check-hankaku-eisu/ -*/ -function IsHanEisu(str){ - str = (str==null)?"":str; - if(str.match(/^[A-Za-z0-9]*$/)){ - return true; - }else{ - return false; - } +//"document" requires the url which ends with ".dat" extension in the domain of "open2ch.net" +//Use this code only under JavaScript Console!!(i recommend Google Chrome because i only use it with test) +var d = document.getElementsByTagName("pre")[0].textContent; +var ds = d.split("\n"); + +var koteAll = ds.map(function(elm){ return elm.split("<>")[0]} ) +.filter(function(elm){ return (/.+◆/).test(elm)} ) +.map(function(elm){ return elm.replace(/<.?b>/g,"").replace(">",">","g").replace(/忍法帖【.*】/g,"")} ) +.sort(); + +var koteUniq = koteAll.filter(function (x, i, self) { return self.indexOf(x) === i;}); + + +var res = koteUniq.map( +function(elmU){ +return (koteAll.filter(function(elmA){ +return elmA == elmU;})); } +); +var sorted = res.sort(function(a,b){ +return b.length - a.length ; +}); -function GetCookie(key) { - // Cookieから値を取得する - var cookieString = document.cookie; - - // 要素ごとに ";" で区切られているので、";" で切り出しを行う - var cookieKeyArray = cookieString.split(";"); - - // 要素分ループを行う - for (var i=0; i<cookieKeyArray.length; i++) { -  var targetCookie = cookieKeyArray[i]; - -  // 前後のスペースをカットする -  targetCookie = targetCookie.replace(/^\s+|\s+$/g, ""); - -  var valueIndex = targetCookie.indexOf("="); -  if (targetCookie.substring(0, valueIndex) == key) { -   // キーが引数と一致した場合、値を返す -   return unescape(targetCookie.slice(valueIndex + 1)); -  } - } - return ""; -} +var output_names = sorted.map(function(elm){return elm[0]}); +var output_values = sorted.map(function(elm){return elm.length}); -function aValue_UPD(){ - console.log() +var output = [];//output[0]←コテハンの名前, output[1]←各コテハンのレス数 +output.push(output_names); +output.push(output_values); -var aValue = document.getElementById("aValue_txtArea").value -var aValue_checkLen = aValue.length -var aValue_checkWord = IsHanEisu(aValue) -if (aValue_checkLen != 32) {alert('32桁入力してください。\n現在の桁数:'+ aValue_checkLen);return} -if (IsHanEisu(aValue) != true) {alert('半角英数字しか利用できません。');return} -document.cookie= 'a=' + aValue + ';expires=' + new Date('2030/12/31 23:59').toUTCString() +';path=/;domain=open2ch.net'; -alert('書き換え完了。') +//結果書き込み +for(var i = 0; i < output[0].length; i++){ +document.write(output[0][i] + "," + output[1][i] + "<br>"); } - - -(window.onload = function() { - if (firstLoadFlag == true) { - firstLoadFlag = false - var div_element = document.createElement("div"); - var parent_object - div_element.style.position="fixed" - div_element.style.bottom= 0 - div_element.style.left= 0 - div_element.innerHTML = '' - - div_element.innerHTML = div_element.innerHTML + '<div style="width:500px;"><div style="padding:0px"><div style="padding:0px">' - div_element.innerHTML = div_element.innerHTML + '<input type="text" id="aValue_txtArea" wrap="off" COLS="32" STYLE="resize:none; width:300px; font-size:1em; color:#00FF00; background-color:#404040; overflow:scroll; top:0"></input>' - div_element.innerHTML = div_element.innerHTML + '<div style="width:350px; font-size:1em; color:#FF0000; background-color:#F0F0F0;"">※更新前にコピペなどでバックアップを取ってください<div style="padding:0px"><div style="padding:0px">' - div_element.innerHTML = div_element.innerHTML + '<input type="button" id="aValue_UpdBtn" value="a値更新" style="font-size:20px; WIDTH: 105px; HEIGHT: 45px; LEFT: 0">'; - parent_object = document.getElementsByTagName("body")[0] - parent_object.appendChild(div_element); - document.getElementById("aValue_txtArea").value = GetCookie('a') - document.getElementById("aValue_UpdBtn").onclick = function() {aValue_UPD()}; - - } -})();
  • //"document" requires the url which ends with ".dat" extension in the domain of "open2ch.net"
    //Use this code only under JavaScript Console!!(i recommend Google Chrome because i only use it with test)
    var d = document.getElementsByTagName("pre")[0].textContent;
    var ds = d.split("\n");
    
    var koteAll = ds.map(function(elm){ return elm.split("<>")[0]} )
    .filter(function(elm){ return (/.+◆/).test(elm)} )
    .map(function(elm){ return elm.replace(/<.?b>/g,"").replace(">",">","g").replace(/忍法帖【.*】/g,"")} )
    .sort();
    
    var koteUniq = koteAll.filter(function (x, i, self) { return self.indexOf(x) === i;});
    
    
    var res = koteUniq.map(
    function(elmU){
    return (koteAll.filter(function(elmA){
    return elmA == elmU;}));
    }
    );
    
    
    var sorted = res.sort(function(a,b){
    return b.length - a.length ;
    });
    
    
    var output_names = sorted.map(function(elm){return elm[0]});
    var output_values = sorted.map(function(elm){return elm.length});
    
    
    var output = [];//output[0]←コテハンの名前, output[1]←各コテハンのレス数
    output.push(output_names);
    output.push(output_values);
    
    //結果書き込み
    for(var i = 0; i < output[0].length; i++){
    document.write(output[0][i] + "," + output[1][i] + "<br>");
    }
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。