aboutsummaryrefslogtreecommitdiffstats
path: root/ego_counter.js
blob: 66a3e0328696157bcb39a2d2cbd77f61fae59d7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/*
 * ステータスバーにはてブ数を表示
 *
 * Usage:
 *   let g:ego_counter_uri = 'Your site URI'
 *     or
 *   js liberator.globalVariables.ego_counter_hatenaId = 'Your site URI'
 *
 *   ex.
 *   let g:ego_counter_uri = 'http://d.hatena.ne.jp/snaka72'
 *
 */
(function() {

  const MY_SITE = liberator.globalVariables.ego_counter_uri || '';
  let update = function(color) {
    myHatebu.setAttribute(
      'src',
      <>http://b.hatena.ne.jp/bc/{color}/{MY_SITE}/</>.toSource()
    );
  };

  let rotate = (function() {
    var current;
    var colors = "bl de dg gr pr br rd sp pk te lg lb wh li or".split(" ");

    return function(next) {
      if (!next) return current;

      current = colors.shift();
      colors.push(current);
      return current;
    };
  })();

  let myHatebu = document.getElementById('status-bar').appendChild(
                    document.createElement('statusbarpanel')
                 );
  myHatebu.setAttribute('id', 'my-hatebu-count-icon');
  myHatebu.setAttribute('class', 'statusbarpanel-iconic');
  update(rotate(true));

  setInterval(function() update(rotate(true)), 1000 * 60 * 10);
  myHatebu.addEventListener("click", function(event){
    update(rotate(true));
  }, false);

})()

// vim: sw=2 ts=2 et:
="nx">f = document.getElementById('liberator-multiline-output'); var d = f.contentDocument; var data = [ // {{{ 'var sl_steam=[];' , 'sl_steam[0]=" (@@) ( ) (@) ( ) @@ () @ O @ O @<br> ( )<br> (@@@@)<br> ( )<br><br> (@@@)<br>";' , 'sl_steam[1]=" ( ) (@@) ( ) (@) () @@ O @ O @ O<br> (@@@)<br> ( )<br> (@@@@)<br><br> ( )<br>";', 'var sl_body' , ' =" ==== ________ ___________ <br>"' , ' +" _D _| |_______/ \\__I_I_____===__|_________| <br>"', ' +" |(_)--- | H\\________/ | | =|___ ___| _________________ <br>"', ' +" / | | H | | | | ||_| |_|| _| \\_____A <br>"', ' +" | | | H |__--------------------| [___] | =| | <br>"', ' +" | ________|___H__/__|_____/[][]~\\_______| | -| | <br>"', ' +" |/ | |-----------I_____I [][] [] D |=======|____|________________________|_ <br>";', 'var sl_wheels = [];', 'sl_wheels[0]' , ' ="__/ =| o |=-O=====O=====O=====O \\ ____Y___________|__|__________________________|_ <br>"' , ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_| <br>"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/ <br>";', 'sl_wheels[1]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_ <br>"', ' +" |/-=|___|=O=====O=====O=====O |_____/~\\___/ |_D__D__D_| |_D__D__D_| <br>"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/ <br>";', 'sl_wheels[2]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_ <br>"', ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_| <br>"', ' +" \\_/ \\O=====O=====O=====O_/ \\_/ \\_/ \\_/ \\_/ \\_/ <br>";', 'sl_wheels[3]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_ <br>"', ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_| <br>"', ' +" \\_/ \\_O=====O=====O=====O/ \\_/ \\_/ \\_/ \\_/ \\_/ <br>";', 'sl_wheels[4]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_ <br>"', ' +" |/-=|___|= O=====O=====O=====O|_____/~\\___/ |_D__D__D_| |_D__D__D_| <br>"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/ <br>";', 'sl_wheels[5]' , ' ="__/ =| o |=-~O=====O=====O=====O\\ ____Y___________|__|__________________________|_ <br>"', ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_| <br>"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/ <br>";', "sl_steam = sl_steam.map(function(s) s.replace(/ /g, '&nbsp;'));", "sl_body = sl_body.replace(/ /g,'&nbsp;');", "sl_wheels = sl_wheels.map(function(s) s.replace(/ /g, '&nbsp;'));", 'var sl_patterns = [0, 0, 0, 1, 1, 1];', 'sl_patterns = sl_patterns.map(function(p, i) sl_steam[p] + sl_body + sl_wheels[i]);', 'var sl_counter = 0;', 'var sl_position = 0;', 'var scrollTop = document.body.scrollTop || document.documentElement.scrollTop;', 'var windowWidth = window.innerWidth;', "var sl_style_base ='display: block;position: absolute;text-align: left;overflow: visible;white-space: pre;font: 12px/12px monospace;';", "var sl_style_main =sl_style_base +'top: '+(scrollTop+0)+'px;' +'left: '+windowWidth+'px;' +'padding: 20px;' +'z-index: 999;' +'color: '+sl_tx_color+';';", "document.body.innerHTML += '<div id=\"__sl_main__\" style=\"'+sl_style_main+'\">'+sl_patterns[0]+'</div>';", 'var sl_w = document.getElementById("__sl_main__").clientWidth;', 'var sl_h = document.getElementById("__sl_main__").clientHeight;', "var sl_style_background =sl_style_base +'top: '+(scrollTop+0)+'px;' +'left: 0px;' +'width: '+windowWidth+'px;' +'height: '+sl_h+'px;' +'z-index: 998;' +'background-color: '+sl_bg_color+';' +'filter: alpha(opacity=0);' +'-moz-opacity: 0.0;' +'opacity: 0.0;';", "document.body.innerHTML += '<div id=\"__sl_background__\" style=\"'+sl_style_background+'\"><br></div>';", 'var sl_bg_counter = 0;', 'sl_open = function() {', ' var oid = "__sl_background__";', ' var op = sl_bg_counter;', ' var ua = navigator.userAgent', " document.getElementById(oid).style.filter = 'alpha(opacity=' + (op * 10) + ')';", ' document.getElementById(oid).style.MozOpacity = op / 10;', ' document.getElementById(oid).style.opacity = op / 10;', ' if ( sl_bg_counter < 8 ) {', ' sl_bg_counter++;', " setTimeout('sl_open()',100);", ' } else {', ' sl_run();', ' }}', 'sl_run = function() {', ' document.getElementById("__sl_main__").innerHTML = sl_patterns[sl_counter];', ' document.getElementById("__sl_main__").style.left = windowWidth - sl_position + "px";', ' if (sl_counter < 5) {sl_counter++;} else {sl_counter=0;}', ' sl_position += sl_pitch;', ' if ( sl_w + (windowWidth - sl_position) < 0 ) {', ' sl_counter = 0;', ' sl_position = 0;', ' document.body.removeChild(document.getElementById("__sl_main__"));', ' sl_close();', ' } else {', " setTimeout('sl_run()',sl_speed);", ' }}', 'sl_close = function() {', ' var oid = "__sl_background__";', ' var op = sl_bg_counter;', ' var ua = navigator.userAgent', ' document.getElementById(oid).style.MozOpacity = op / 10;', ' if ( sl_bg_counter > 0 ) {', ' sl_bg_counter--;', " setTimeout('sl_close()',100);", ' } else {', ' document.body.removeChild(document.getElementById(oid));', ' }}', 'sl_open();'].join('\n'); //}}} function sl(){ //'var sl_speed=100,sl_pitch=15,sl_tx_color="#FFFFFF",sl_bg_color="#000000",sl_steam=[];' , var option = { sl_speed : 100, sl_pitch : 15, sl_fg_color : "#FFFFFF", sl_bg_color : "#000000" }; for (let v in option){ if (liberator.globalVariables[v]) option[v] = liberator.globalVariables[v]; } var option_code = "var sl_speed=" + option.sl_speed + ",sl_pitch=" + option.sl_pitch + ",sl_tx_color=\"" + option.sl_fg_color + "\"" + ",sl_bg_color=\"" + option.sl_bg_color + "\";\n"; var script = d.createElement('script'); script.setAttribute('type','application/javascript'); var cdata = document.createCDATASection(option_code + data); //var cdata = d.createComment(data); script.appendChild(cdata); liberator.echo('\n\n\n\n\n\n\n\n\n\n\n\n\n',true); d.body.appendChild(script); }; var orig_beep = liberator.beep; liberator.beep = function(){ if (liberator.options.sl_beep) sl(); else orig_beep(); }; return sl; })();