diff options
author | teramako | 2008-07-20 02:32:59 +0000 |
---|---|---|
committer | teramako | 2008-07-20 02:32:59 +0000 |
commit | c16ce0519cd17cf6e07164cec9aae75bca8ea1d5 (patch) | |
tree | e4df68e823a16f669a1b1c73e2f1c16b87099576 /shuppoppo.js | |
parent | c4805d4bf4f2e9e23216abf3af4efcfe03656e9e (diff) | |
download | vimperator-plugins-c16ce0519cd17cf6e07164cec9aae75bca8ea1d5.tar.bz2 |
slコマンドとbeep時にslを走らせる
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@16046 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'shuppoppo.js')
-rw-r--r-- | shuppoppo.js | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/shuppoppo.js b/shuppoppo.js new file mode 100644 index 0000000..ef6df51 --- /dev/null +++ b/shuppoppo.js @@ -0,0 +1,165 @@ +/** + * shuppoppo.js + * + * 元ネタ: + * JavaScriptでSLを走らせる「SL.JS」を作りました ::: creazy photograph + * http://creazy.net/2008/02/sl_js.html + * + * VARIABLES: + * let g:sl_speed = "100" + * let g:sl_pitch = "15" + * let g:sl_fg_color = "#FFFFFF" + * let g:sl_bg_color = "#000000" + * + * OPTION + * set [no]slbeep + */ +//:js (function(){echo('\n\n\n\n\n\n\n\n\n\n\n\n\n',true); var f=$('liberator-multiline-output');var d=f.contentDocument,s=d.createElement('script');s.src="http://labs.creazy.net/sl/bookmarklet.js";d.body.appendChild(s);})() + +liberator.plugins.sl = (function(){ +// COMMAND +liberator.commands.addUserCommand(['sl'],'キータイプを矯正します。', + function(){ + sl(); + },{},true); +// OPTION +liberator.options.add(['slbeep'],'beepをSLに変更します','boolean',false); + +var 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[0] = sl_steam[0].replace(/ /g,' ');", + "sl_steam[1] = sl_steam[1].replace(/ /g,' ');", + "sl_body = sl_body.replace(/ /g,' ');", + "sl_wheels[0] = sl_wheels[0].replace(/ /g,' ');", + "sl_wheels[1] = sl_wheels[1].replace(/ /g,' ');", + "sl_wheels[2] = sl_wheels[2].replace(/ /g,' ');", + "sl_wheels[3] = sl_wheels[3].replace(/ /g,' ');", + "sl_wheels[4] = sl_wheels[4].replace(/ /g,' ');", + "sl_wheels[5] = sl_wheels[5].replace(/ /g,' ');", + 'var sl_patterns = [];', + 'sl_patterns[0] = sl_steam[0] + sl_body + sl_wheels[0];', + 'sl_patterns[1] = sl_steam[0] + sl_body + sl_wheels[1];', + 'sl_patterns[2] = sl_steam[0] + sl_body + sl_wheels[2];', + 'sl_patterns[3] = sl_steam[1] + sl_body + sl_wheels[3];', + 'sl_patterns[4] = sl_steam[1] + sl_body + sl_wheels[4];', + 'sl_patterns[5] = sl_steam[1] + sl_body + sl_wheels[5];', + '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 (var 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/x-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; +})(); + |