/** * 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 @
( )
(@@@@)
( )

(@@@)
";' , 'sl_steam[1]=" ( ) (@@) ( ) (@) () @@ O @ O @ O
(@@@)
( )
(@@@@)

( )
";', 'var sl_body' , ' =" ==== ________ ___________
"' , ' +" _D _| |_______/ \\__I_I_____===__|_________|
"', ' +" |(_)--- | H\\________/ | | =|___ ___| _________________
"', ' +" / | | H | | | | ||_| |_|| _| \\_____A
"', ' +" | | | H |__--------------------| [___] | =| |
"', ' +" | ________|___H__/__|_____/[][]~\\_______| | -| |
"', ' +" |/ | |-----------I_____I [][] [] D |=======|____|________________________|_
";', 'var sl_wheels = [];', 'sl_wheels[0]' , ' ="__/ =| o |=-O=====O=====O=====O \\ ____Y___________|__|__________________________|_
"' , ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_|
"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/
";', 'sl_wheels[1]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_
"', ' +" |/-=|___|=O=====O=====O=====O |_____/~\\___/ |_D__D__D_| |_D__D__D_|
"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/
";', 'sl_wheels[2]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_
"', ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_|
"', ' +" \\_/ \\O=====O=====O=====O_/ \\_/ \\_/ \\_/ \\_/ \\_/
";', 'sl_wheels[3]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_
"', ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_|
"', ' +" \\_/ \\_O=====O=====O=====O/ \\_/ \\_/ \\_/ \\_/ \\_/
";', 'sl_wheels[4]' , ' ="__/ =| o |=-~~\\ /~~\\ /~~\\ /~~\\ ____Y___________|__|__________________________|_
"', ' +" |/-=|___|= O=====O=====O=====O|_____/~\\___/ |_D__D__D_| |_D__D__D_|
"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/
";', 'sl_wheels[5]' , ' ="__/ =| o |=-~O=====O=====O=====O\\ ____Y___________|__|__________________________|_
"', ' +" |/-=|___|= || || || |_____/~\\___/ |_D__D__D_| |_D__D__D_|
"', ' +" \\_/ \\__/ \\__/ \\__/ \\__/ \\_/ \\_/ \\_/ \\_/ \\_/
";', "sl_steam = sl_steam.map(function(s) s.replace(/ /g, ' '));", "sl_body = sl_body.replace(/ /g,' ');", "sl_wheels = sl_wheels.map(function(s) s.replace(/ /g, ' '));", '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 += '
'+sl_patterns[0]+'
';", '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 += '

';", '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; })();