Technology
 

Wassr BookMarklet

出典: Wassr Wiki

Wassr オフィシャルサイトで実行できるbookmarkletです。

目次

[編集] レス展開

各つぶやきについているレスを全て展開。

javascript:(function(){var l=document.links;for(var i=0;i<l.length;++i){if(l[i].className=='taggedlink res_num'){l[i].onclick();}}})();

[編集] サイドメニューにアクセスキーを

サイドメニューに、shift + alt と組み合わせてアクセスできるキーを追加。

javascript:(function(){document.getElementsByClassName("sidemenu")[0].innerHTML=document.getElementsByClassName("sidemenu")[0].innerHTML.replace("my/\">","my/\" accesskey=\"m\">").replace("users_reply/\">","users_reply/\" accesskey=\"r\">").replace("favorite/\">","favorite/\" accesskey=\"e\">").replace("friend/\">","friend/\" accesskey=\"f\">").replace("invite/\">","invite/\" accesskey=\"i\">").replace("todo/\">","todo/\" accesskey=\"t\">").replace("user/\">","user/\" accesskey=\"u\">");})();

[編集] GreaseMonkey スクリプトバージョン

Firefox専用です。wassr_access_gm.user.jsという名前で保存して、Firefoxにドロップしてください。

// ==UserScript==
// @name Wassr AccessKey Addition
// @namespace http://sl-library.soulfixin.net/
// @description Add accsesskey to wassr site sidemenu-bar
// @include http://wassr.jp/*
// ==/UserScript==

// Released under the GPL license  
// http://www.gnu.org/copyleft/gpl.html  

window.setTimeout(function(){document.getElementById('SideMainMenu').innerHTML=document.getElementById('SideMainMenu').innerHTML.replace("my/\">","my/\" accesskey=\"m\">").replace("MYページ","MYページ(m)").replace("users_reply/\">","users_reply/\" accesskey=\"r\">").replace("新着レス","新着レス(r)").replace("favorite/\">","favorite/\" accesskey=\"e\">").replace("イイネ!","イイネ!(e)").replace("friend/\">","friend/\" accesskey=\"f\">").replace("つながり","つながり(f)").replace("invite/\">","invite/\" accesskey=\"i\">").replace("友達を招待","友達を招待(i)").replace("todo/\">","todo/\" accesskey=\"t\">").replace("TODO","TODO(t)").replace("user/\">","user/\" accesskey=\"u\">").replace("ユーザー検索","ユーザー検索(u)");}, 60);

[編集] via一覧

viaをサイドメニュートップに並べます。wassr_vialist.user.jsという名前で保存して、Firefoxにドロップしてください。

[編集] GreaseMonkey スクリプトバージョン

// ==UserScript==
// @name Wassr via list
// @namespace http://sl-library.soulfixin.net/
// @description Add vialist to wassr site sidemenu-bar top
// @include http://wassr.jp/*
// ==/UserScript==

// Released under the GPL license  
// http://www.gnu.org/copyleft/gpl.html  

 window.addEventListener("load" , function(){
  var adddiv = "<div id=\"vialist\" style=\"font-size:70%;margin-bottom:2em;\">via一覧ダヨ<img class=\"emoji\" width=\"16\" height=\"16\" alt=\"目がハート\" src=\"/img/pictogram/E72A.gif\"/><br />";
  var vialist = new Array(),vialistcnt=0,vianame,vialistcnt_m=0,chk_bol,icnt=0;
  for(vialistcnt=0;vialistcnt<document.getElementsByTagName('img').length;++vialistcnt){
   if(document.getElementsByTagName('img')[vialistcnt].getAttribute('class')=="viaemoji"){
    vialist[document.getElementsByTagName('img')[vialistcnt].getAttribute('alt')] += 1;
   }
  }
  for(key in vialist){
   adddiv += "<a href=\"/status/?via=" + key+ "\">" + key + "</a>  ";
  }
  adddiv += "</div>";
  if(adddiv != "<div id=\"vialist\" style=\"font-size:70%;margin-bottom:2em;\">via一覧ダヨ<img class=\"emoji\" width=\"16\" height=\"16\" alt=\"目がハート\" src=\"/img/pictogram/E72A.gif\"/><br /></div>"){
   document.getElementById('Side').innerHTML = adddiv + document.getElementById('Side').innerHTML; 
  }
 },false);

[編集] カウント付き

// ==UserScript==
// @name Wassr via list - count version
// @namespace http://sl-library.soulfixin.net/
// @description Add vialist to wassr site sidemenu-bar top
// @include http://wassr.jp/*
// ==/UserScript==

// Released under the GPL license  
// http://www.gnu.org/copyleft/gpl.html  

window.addEventListener("load" , function(){
 var adddiv = "<div id=\"vialist\" style=\"font-size:70%;margin-bottom:2em;\">via一覧ダヨ<img class=\"emoji\" width=\"16\" height=\"16\" alt=\"目がハート\" src=\"/img/pictogram/E72A.gif\"/><br />";
 var vialist = new Array(),vialistkeys=new Array(),vialistcnt=0,iCnt=0;
 for(vialistcnt=0;vialistcnt<document.getElementsByTagName('img').length;++vialistcnt){
  if(document.getElementsByTagName('img')[vialistcnt].getAttribute('class')=="viaemoji"){
   vialistkeys[document.getElementsByTagName('img')[vialistcnt].getAttribute('alt')] = new Array();
   vialist[iCnt]=document.getElementsByTagName('img')[vialistcnt].getAttribute('alt');
   ++iCnt;
  }
 }  
 for(vialistcnt=0;vialistcnt<vialist.length;++vialistcnt){
  for(key in vialistkeys){if(key == vialist[vialistcnt]){vialistkeys[key][vialistkeys[key].length+1]= "1";}}
 }
 for(key in vialistkeys){
  adddiv += "<nobr><a href=\"/status/?via=" + key+ "\">" + key + "</a> :: "  + vialistkeys[key].length/2+ "わさ, </nobr>  ";
 }
 adddiv += "</div>";
 if(adddiv != "<div id=\"vialist\" style=\"font-size:70%;margin-bottom:2em;\">via一覧ダヨ<img class=\"emoji\" width=\"16\" height=\"16\" alt=\"目がハート\" src=\"/img/pictogram/E72A.gif\"/><br /></div>"){
  document.getElementById('Side').innerHTML = adddiv + document.getElementById('Side').innerHTML; 
 }
},false);

[編集] サイドメニューデザイン版

カウント付きでサイドメニューにマッチしたデザインにして追加します。

// ==UserScript==
// @name Wassr via list - count and design
// @namespace http://sl-library.soulfixin.net/
// @description Add vialist(count and design) to wassr site sidemenu-bar top
// @include http://wassr.jp/*
// ==/UserScript==

// Released under the GPL license  
// http://www.gnu.org/copyleft/gpl.html  

var gm_vialist_makebasediv = function(){
 var motherdiv = document.createElement('div');
 motherdiv.setAttribute("id","vialist");
 motherdiv.setAttribute("class","Side-contents");
 motherdiv.setAttribute("style","font-size:75%;");
 var childtext = document.createTextNode("via一覧ダヨ");
 var childimg = document.createElement('img');
 var childimgstats = {
  "class":"emoji","width":"16","height":"16","alt":"目がハート","src":"/img/pictogram/E72A.gif"
 };
 for(key in childimgstats){
  childimg.setAttribute(key,childimgstats[key]);
 }
 var childbar = document.createElement('br');
 motherdiv.appendChild(childtext);
 motherdiv.appendChild(childimg);
 motherdiv.appendChild(childbar);
 return motherdiv;
};

window.addEventListener("load" , function(){
 var defdiv = gm_vialist_makebasediv();
 var adddiv = defdiv;
 var vialist = new Array(),vialistkeys=new Array(),vialistcnt=0,iCnt=0,elename;
 for(vialistcnt=0;vialistcnt<document.getElementsByTagName('img').length;++vialistcnt){
  if(document.getElementsByTagName('img')[vialistcnt].getAttribute('class')=="viaemoji"){
   elename = document.getElementsByTagName('img')[vialistcnt].getAttribute('alt');
   vialistkeys[elename] = new Array();
   vialist[iCnt]=elename;
   ++iCnt;
  }
 }
 if(vialist.length == 0){
  return null;
 }
 for(vialistcnt=0;vialistcnt<vialist.length;++vialistcnt){
  for(key in vialistkeys){if(key == vialist[vialistcnt]){vialistkeys[key][vialistkeys[key].length+1]= "1";}}
 }
 var ele1,ele2,ele3,ele4,ele5;
 for(key in vialistkeys){
  ele1 = document.createElement('span');
  ele1.setAttribute("style",'padding:5px 0 5px 0;margin:2px;');
  ele2 = document.createElement('a');
  ele2.setAttribute("href","/status/?via=" + key );
  ele3 = document.createTextNode(key);
  ele4 = document.createTextNode(" :: " + vialistkeys[key].length/2 + "わさ  ");
  ele5 = document.createElement('br');
  ele2.appendChild(ele3);
  ele1.appendChild(ele2);
  ele1.appendChild(ele4);
  ele1.appendChild(ele5);
  adddiv.appendChild(ele1);
 }
 var broele = document.getElementById('SideBox-Info');
 var topsign = document.createElement('div');
 topsign.setAttribute("class","Side-hd");
 var bottomsign = document.createElement('div');
 bottomsign.setAttribute("class","Side-ft");
 document.getElementById('Side').insertBefore(bottomsign,broele);
 document.getElementById('Side').insertBefore(adddiv,bottomsign);
 document.getElementById('Side').insertBefore(topsign,adddiv);
},false);

[編集] via APIから表示

ページ上部にvia APIを利用して生成したフォームから、選択した各via発言を表示します。

// ==UserScript==
// @name Wassr via search by API
// @namespace http://sl-library.soulfixin.net/
// @description Wassr via search by API
// @include http://wassr.jp/*
// ==/UserScript==

// Released under the GPL license  
// http://www.gnu.org/copyleft/gpl.html  

 GM_xmlhttpRequest({
  method:"GET", 
  url:"http://api.wassr.jp/statuses/via.json",
  onload:function(e){
   var ele = eval('(' + e.responseText + ')');
    var iCnt=0,tags = "<form style='font-size:70%;margin-bottom:10px;'>";
    tags += "<img src=\"http://wassr.jp/img/pictogram/E727.gif\">全viaから投稿サーチ!";
    tags += "<select id=\"wassrVIA\" onChange=\"javascript:location.href='http://wassr.jp/status/?via=' + ";
    tags += "document.getElementById('wassrVIA').options[document.getElementById('wassrVIA').selectedIndex].value \">";
    for(;iCnt<ele.length;++iCnt){
     tags+="<option value=\"" + ele[iCnt] + "\" >" + ele[iCnt] + "</option>\n";
    }
    tags += "</select></form>";
    document.getElementById('globalmenu').innerHTML=document.getElementById('globalmenu').innerHTML+tags; 
   } 
  }
 );

[編集] 絵文字をカット

// ==UserScript==
// @name           Wassr HidePictgram
// @namespace      http://sl-library.soulfixin.net/
// @include        http://wassr.jp/*
// ==/UserScript==

// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html 

window.addEventListener("load" , function(){
	var pagedata = document.getElementsByTagName('body')[0].innerHTML;
	var regexdata = /<img class=\"emoji\"[^>]+>/;
	while(pagedata.search(regexdata) > -1){
		pagedata = pagedata.replace(pagedata.match(regexdata).toString(),""); 
	}
	document.getElementsByTagName('body')[0].innerHTML = pagedata;
},false);