Created
November 20, 2009 16:35
-
-
Save xyn9/239605 to your computer and use it in GitHub Desktop.
Sylera拡張スクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// _sylera.external.charconv.js | |
// | |
// ==UserScript== | |
// @name _sylera.external.charconv | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
_sylera.external | |
// | |
.charconv = function (_str, _charset, _unicode){ | |
var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].getService(Components.interfaces.nsIScriptableUnicodeConverter); | |
// | |
try { | |
converter.charset = _charset; | |
return ( | |
_unicode | |
? converter.ConvertToUnicode(_str) | |
: converter.ConvertFromUnicode(_str) | |
); | |
} | |
catch(_e){ | |
return _str; | |
} | |
// | |
}; | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// _sylera.external.element.js | |
// | |
// ==UserScript== | |
// @name _sylera.external.element | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
_sylera.external | |
// | |
.element = function (_tag, _attrib, _inner){ | |
// | |
var element = document.createElement(_tag); | |
// | |
if( _attrib ){ | |
// | |
var val; | |
for(var a in _attrib){ | |
// | |
val = _attrib[a]; | |
if(typeof val == 'object'){ | |
for(var s in val){ element[a][s] = val[s]; } | |
}else{ | |
element[a] = val; | |
} | |
} | |
} | |
// | |
if( _inner ){ | |
for(var i=0; i<_inner.length; i++){ element.appendChild( _inner[i] ); } | |
} | |
// | |
return element; | |
}; | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// _sylera.external.evaluateXPath.js | |
// | |
// ==UserScript== | |
// @name _sylera.external.evaluateXPath | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @copyright MDC (http://developer.mozilla.org/ja/docs/Using_XPath) | |
// @license MIT License; http://www.ibiblio.org/pub/Linux/LICENSES/mit.license | |
// ==UserScript== | |
// | |
// | |
_sylera.external | |
// | |
.evaluateXPath = function (_aNode, _aExpr){ | |
// 特定の DOM ノードもしくは Document オブジェクト (_aNode) に対して | |
// XPath 式 _aExpression を評価し、その結果を配列として返す。 | |
// 最初の作業を行った wanderingstan at morethanwarm dot mail dot com に感謝します。 | |
var xpe = new XPathEvaluator(); | |
var nsResolver = xpe.createNSResolver( | |
(_aNode.ownerDocument == null) | |
? _aNode.documentElement | |
: _aNode.ownerDocument.documentElement | |
); | |
var result = xpe.evaluate(_aExpr, _aNode, nsResolver, 0, null); | |
var found = []; | |
var res; | |
while(res = result.iterateNext()){ | |
found.push(res); | |
} | |
// | |
return found; | |
}; | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// _sylera.external.localfile.js | |
// | |
// ==UserScript== | |
// @name _sylera.external.localfile | |
// @homepage http://xyn9.github.com/sylrextension | |
// ==UserScript== | |
// | |
// | |
_sylera.external.localfile | |
// | |
= { | |
// | |
file: (function (_path){ | |
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); | |
file.initWithPath(_path); | |
return file; | |
}) | |
// | |
}; | |
// | |
_sylera.external.localfile | |
// | |
.fileout = function (_path, _content, _mode){ | |
// | |
if(! _mode){ _mode = 0x02 | 0x08 | 0x20;/* write, create, truncate */ } | |
// | |
var file = _sylera.external.localfile.file(_path); | |
if(file.exists() && (! (_mode & 0x10))){ | |
if((_mode & 0x08) && (! (_mode & 0x20))){ return true; } | |
file.remove(true); | |
} | |
file.create(file.NORMAL_FILE_TYPE, 0666); | |
// | |
var strm = Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileOutputStream); | |
with(strm){ | |
init(file, _mode, 0666, false); | |
write(_content, _content.length); | |
close(); | |
} | |
// | |
return file.exists(); | |
}; | |
// | |
_sylera.external.localfile | |
// | |
.run = function (_exe_path, _args, _wait){ | |
// | |
var exe = _sylera.external.localfile.file(_exe_path); | |
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess); | |
with( process ){ | |
init(exe); | |
run(_wait, _args, _args.length); | |
} | |
}; | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// _sylera.external.selection.js | |
// | |
// ==UserScript== | |
// @name _sylera.external.selection | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// ==UserScript== | |
// | |
// | |
_sylera.external.selection | |
// | |
= function (){ | |
// | |
var sel = window.getSelection(); | |
if(! sel.rangeCount){ return document.createElement('div'); } | |
var range1 = sel.getRangeAt(0); | |
var range_owner = range1.startContainer.ownerDocument; | |
var range_block = range_owner.createElement('div'); | |
// | |
for(var i=0; i<sel.rangeCount; i++){ | |
var range = sel.getRangeAt(i); | |
var range_clone = range.cloneContents(); | |
range_block.appendChild(range_clone); | |
} | |
// | |
return range_block; | |
}; | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// autoexec.livedoor-reader.js | |
// | |
// ==UserScript== | |
// @name autoexec.livedoor-reader | |
// @version 0.95 | |
// @include reader.livedoor.com | |
// @require ./_sylera.external.element.js | |
// @require ./_sylera.external.evaluateXPath.js | |
// @description livedoor Reader を使いやすく変える自動実行拡張 | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// ------------------------------------------------------------ | |
// Built-in greasemonkey script | |
// | |
// * Utilities for livedoor Reader (http://d.hatena.ne.jp/antipop/20060430/1146343265) | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// | |
try { _autoexec_livedoor_reader; } catch(_e){ _autoexec_livedoor_reader = new (function () { // | |
// | |
// | |
var _this_ = this; | |
// | |
var $ID = '_autoexec_'; | |
// | |
// ------------------------------------------------------------ | |
// key config | |
// ------------------------------------------------------------ | |
_this_.key_config = function (_tab_index){ | |
// | |
try { Keybind; } catch(_e){ return ; } | |
// | |
var $_tab_index = _tab_index; | |
// | |
with( Keybind ){ | |
// | |
/* | |
remove('ctrl+shift'); remove('shift+ctrl'); | |
remove('enter'); remove('ctrl+enter'); remove('shift+enter'); | |
remove('space'); remove('ctrl+space'); remove('shift+space'); | |
remove('pageup'); | |
remove('pagedown'); | |
remove('up'); remove('shift+up'); | |
remove('down'); remove('shift+down'); | |
*/ | |
// ------------------------------------------------------------ | |
add('j', function (){ | |
var container = $("right_container"); | |
var old = container.scrollTop; | |
Control.scroll_next_item(); | |
$('head_'+ get_active_item(true).id).getElementsByTagName('a')[0].focus(); | |
if(old == container.scrollTop){ Control.feed_next(); } | |
}); | |
// | |
add('k', function (){ | |
var container = $("right_container"); | |
var old = container.scrollTop; | |
Control.scroll_prev_item(); | |
$('head_'+ get_active_item(true).id).getElementsByTagName('a')[0].focus(); | |
if(old == container.scrollTop){ Control.feed_prev(); } | |
}); | |
// ------------------------------------------------------------ | |
add('A', Control.toggle_show_all); | |
add('R', Control.mark_all_read); | |
// | |
add('P', function (){ | |
if( _this_.key_config_pinstate ){ | |
_this_.key_config_pinstate = 0; | |
Control.pin_mouseout(); | |
return; | |
} | |
Control.pin_hover(); | |
_this_.key_config_pinstate = 1; | |
}); | |
// | |
add('T', function (){ | |
$('subs_container').focus(); | |
var item_list = $('subs_body').childNodes; | |
for(var i=0; i<item_list.length; i++){ | |
if( (/^(treeview_\d+)$/i).test(item_list[i].id) ){ | |
TreeView.instance[RegExp.$1].toggle(); | |
} | |
} | |
//TreeView.instance["treeview_" + id].toggle(); | |
}); | |
// | |
} | |
// | |
}; | |
// hatena_bookmark | |
// ------------------------------------------------------------ | |
_this_.hatena_bookmark = function (_tab_index){ | |
// | |
var $_label = $ID +'_hatena_bookmark'; | |
var $_tab_index = _tab_index; | |
// ------------------------------------------------------------ | |
function create_comment_view(__item){ | |
// | |
var counter = $($_label +'_counter_'+ __item.id); | |
with( counter ){ | |
default_src = counter.src; | |
src = 'data:image/gif;base64,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'; | |
} | |
// | |
var comment_view = _sylera.external.element('div', { | |
'id': ($_label +'_comment_'+ __item.id) | |
, tabIndex: ++$_tab_index | |
}, [ | |
BookmarkCommentViewer.asyncCommnetView( | |
__item.link.replace(/#(.+)$/,"%23$1") | |
, function (){ counter.src = counter.default_src;} | |
) | |
]); | |
// | |
$('item_'+ __item.id).appendChild( comment_view ); | |
// | |
comment_view.focus(); | |
} | |
// ------------------------------------------------------------ | |
// | |
with( document ){ | |
// | |
body.appendChild( _sylera.external.element('script', { | |
type: 'text/javascript' | |
, src: 'http://b.hatena.ne.jp/js/BookmarkCommentViewerAllInOne.1.2.js' | |
})); | |
// | |
getElementsByTagName('head')[0].appendChild( _sylera.external.element('style', { | |
innerHTML: [ | |
'.hatena-bcomment-view {' | |
, ' background-color:#fff;' | |
, ' border-top:1px solid #CCC;' | |
, ' border-left:1px solid #CCC;' | |
, ' border-right: solid 1px #999;' | |
, ' border-bottom: solid 1px #999;' | |
, ' display: none;' | |
, ' word-break : break-all ;' | |
, ' word-wrap : break-word ;' | |
, ' text-align:left;' | |
, ' margin:0 !important;' | |
, ' padding:0 !important;' | |
, ' font-weight:normal !important;' | |
, ' font-size:90%;' | |
, ' z-index:100;' | |
, ' color:#000 !important;' | |
, '}' | |
, '.hatena-bcomment-title {' | |
, ' margin:0 !important;' | |
, ' padding:3px 5px !important;' | |
, ' text-indent:0 !important;' | |
, '}' | |
, '.hatena-bcomment-title img {' | |
, ' vertical-align: middle !important;' | |
, ' margin: 2px 2px 2px 4px !important;' | |
, '}' | |
, '.hatena-bcomment-view ul {' | |
, ' width: auto;' | |
, ' overflow: auto;' | |
, ' border-top: 1px solid #5279E7;' | |
, ' background-color: #edf1fd;' | |
, ' list-style-type: none;' | |
, ' padding: 5px 8px !important;' | |
, ' margin: 0px !important;' | |
, ' line-height: 150%;' | |
, '}' | |
, '.hatena-bcomment-view ul li{' | |
, ' text-indent:0 !important;' | |
, ' margin:0 !important;' | |
, ' padding:0 0 2px 0 !important;' | |
, ' font-size:90%;' | |
, ' background:trasparent !important;' | |
, '}' | |
, '.hatena-bcomment-view ul li span.hatena-bcomment-tag a{' | |
, ' color:#6365CE; ' | |
, ' font-family:"Arial",sans-serif;' | |
, ' margin:0 3px;' | |
, '}' | |
, '.hatena-bcomment-view ul li img{' | |
, ' vertical-align:middle !important;' | |
, ' margin:0 2px !important;' | |
, '}' | |
, '.hatena-bcomment-view ul li span.hatena-bcomment-date {' | |
, '}' | |
, '.hatena-bcomment-view-icon {' | |
, ' cursor: pointer;' | |
, '}' | |
].join('\n') | |
}) ); | |
// | |
} | |
// ------------------------------------------------------------ | |
// | |
entry_widgets.add(($_label +'_counter'), function(__feed, __item){ | |
// | |
var item_link = __item.link.replace(/#(.+)$/,"%2523$1"); | |
return _sylera.external.element('nobr', {}, [ | |
_sylera.external.element('a', { | |
href: 'http://b.hatena.ne.jp/entry/'+ item_link | |
, id: ($_label +'_counter_'+ __item.id) | |
, target: '_blank' | |
}, [ | |
_sylera.external.element('img', { | |
src: 'data:image/gif;base64,R0lGODlhEAAQAKIFAOnp6YKCgllZWRhBzv///////wAAAAAAACH5BAEAAAUALAAAAAAQABAAAAM/WLHcrSTKKYEINEeLNeXZIIrbFQ0SSZDgeKIryo0kzZprCsdg/uo9l4qHm9hkRU+po1wCntBoVFAQWK9YbCEBADs=' | |
, id: ($_label +'_icon_'+ __item.id) | |
, border: 0 | |
}) | |
, _sylera.external.element('img', { | |
src: ('http://b.hatena.ne.jp/entry/image/'+ item_link) | |
, border: 0 | |
, hspace: 1 | |
, align: 'middle' | |
}) | |
]) | |
// | |
]) | |
.innerHTML; | |
// | |
}, 'hatena bookmark users'); | |
// ------------------------------------------------------------ | |
with( window.Keybind ){ | |
// | |
add('B', function (){ | |
window.open($($_label +'_counter_'+ get_active_item(true).id).href); | |
}); | |
// | |
add('b', function (){ | |
// | |
var current_item = get_active_item(true); | |
var comment_view = $($_label +'_comment_'+ current_item.id); | |
// | |
if(comment_view == null){ | |
create_comment_view(current_item); | |
return; | |
} | |
// | |
comment_view.style.display = (comment_view.style.display == 'none') | |
? 'block' : 'none' | |
; | |
}); | |
} | |
// | |
}; | |
// twitter_url | |
// ------------------------------------------------------------ | |
_this_.twitter_url = function (_tab_index){ | |
// | |
var $_label = $ID +'_twitter_url'; | |
var $_tab_index = _tab_index; | |
// ------------------------------------------------------------ | |
function create_comment_view(__item){ | |
// | |
var comment_view = _sylera.external.element('iframe', { | |
id: ($_label +'_comment_'+ __item.id) | |
, className: $_label | |
, tabIndex: ++$_tab_index | |
, | |
style: { | |
width:'99%', height:'19em' | |
, border: 'gray 1px dotted' | |
} | |
, | |
src: ('data:text/html;charset=utf-8,'+ encodeURIComponent([ | |
'<html>' | |
, '<head>' | |
, '<title> '+ __item.title +' </title>' | |
, '<style>' | |
, 'h3{ display:none; }' | |
, 'li{ font-size:x-small; }' | |
, '</style>' | |
, '</head>' | |
, '<body>' | |
, '<script type="text/javascript" src="http://l.yimg.com/a/i/us/pps/listbadge_1.4.js">' | |
, '{_btype:"list", pipe_id:"caf00625d6255d7c35219d9d2d329a71",pipe_params:{q:"'+ __item.link +'"}, width:"99%",height:"99%"}' | |
, '</script>' | |
, '</body>' | |
, '</html>' | |
].join('\n'))) | |
}); | |
// | |
$('item_'+ __item.id).appendChild(comment_view); | |
// | |
comment_view.focus(); | |
} | |
// ------------------------------------------------------------ | |
// | |
entry_widgets.add(($_label +'_icon'), function(__feed, __item){ | |
// | |
var item_link = __item.link.replace(/[&#]/g, encodeURIComponent); | |
return _sylera.external.element('nobr', {}, [ | |
_sylera.external.element('a', { | |
href: ('http://pipes.yahoo.com/xyn9/twitter_url?q='+ encodeURIComponent(item_link)) | |
, id: ($_label +'_icon'+ __item.id) | |
, target: '_blank' | |
}, [ | |
_sylera.external.element('img', { | |
src: 'data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A/v7+D/7+/j/+/v5g/v7+YP7+/mD+/v5I/v7+KP///wD///8A////AP///wD///8A////AP///wD+/v4H/v7+UPbv4pHgx47B1K9Y3tWwWN7Ur1je3sKCx+rbuKj+/v5n/v7+GP///wD///8A////AP///wD+/v4Y+fbweM2ycMe2iB7/vI0f/8STIf/KlyL/zJki/8yZIv/LmCL/0ahK5/Hp1JH+/v4Y////AP///wD///8A7OTTaquHN+CujkXPs5ZTv6N6G/+2iB7/xpUh/8yZIv/MmSL/zJki/8yZIv/Kmy738OjUi////wD///8A////AMKtfY7w6+Ef////AP///wD///8A3sqbp8iWIf/MmSL/zJki/8yZIv/MmSL/y5gi/8mePO7+/v4w////AP///wD///8A////AP///wD+/v4H/v7+V9CtWN3KmCL/zJki/8yZIv/MmSL/zJki/8yZIv/JlyH/5tSqp/7+/mD+/v4/////AP///wD///8A+PXvJtGyZdXNnS/3y5gi/8qYIv/LmCL/zJki/8yZIv/MmSL/y5gi/82iPO7LqVfe0byMmf///wD///8A/v7+D/Do1JHKmy73ypci/8KSIP+/jyD/xpQh/8uYIv/MmSL/zJki/8qYIv+/jyD/rIEd/9nKqH7///8A////APPu4TzAlSz3wZEg/7mLH/+sgR3/uZdGz7mLH//JlyH/zJki/8yZIv/GlSH/to0r9eXbxD/Vx6dg////AP7+/h/p38WhtIsq9al/HP+kfyjuybaKgf///wCzjzjlwJAg/8qYIv/JlyH/u4wf/8CkYrn///8A////AP///wDj2sRMnHUa/7meYa7Vx6dg////AP///wD///8A2MmnYK6DHf++jiD/vo4g/62CHf/k2sQ/////AP///wD///8A8OvhH/f07w////8A////AP///wD///8A////AP///wC/p3Cfpnwc/66GKvPg1LZ8////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////ANXHp2DJtoqByLWKgf///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AADgPwAAwA8AAIAHAAB4BwAA+AMAAPAAAADgAQAA4AMAAMEDAADPhwAA/48AAP/nAAD//wAA//8AAA==' | |
, id: ($_label +'_icon_'+ __item.id) | |
, border: 0 | |
}) | |
]) | |
// | |
]) | |
.innerHTML; | |
// | |
}, 'twitter url'); | |
// ------------------------------------------------------------ | |
with( window.Keybind ){ | |
// | |
add('t', function (){ | |
// | |
var current_item = get_active_item(true); | |
var comment_view = $($_label +'_comment_'+ current_item.id); | |
// | |
if(comment_view == null){ | |
create_comment_view(current_item); | |
return; | |
} | |
// | |
comment_view.style.display = (comment_view.style.display == 'none') | |
? 'block' : 'none' | |
; | |
}); | |
} | |
// | |
}; | |
// player | |
// ------------------------------------------------------------ | |
_this_.player = function (_tab_index){ | |
// | |
var $_label = $ID +'_player'; | |
var $_tab_index = _tab_index; | |
// ------------------------------------------------------------ | |
with( document.getElementsByTagName('head')[0] ){ | |
// | |
appendChild( _sylera.external.element('style', { | |
innerHTML: [ | |
'' | |
, | |
'.'+ $_label +'{' | |
, 'zIndex: -1;' | |
, 'width:330px; height: 250px;' | |
, 'padding: 1em;' | |
, 'cursor: pointer;' | |
, 'border: gray 1px dotted;' | |
, 'background-color: black;' | |
, 'color: orange;' | |
, '}' | |
, | |
'.'+ $_label +' embed' | |
, ', .'+ $_label +' object' | |
, '{' | |
, 'width:320px; height: 240px;' | |
, 'background-color: black;' | |
, '}' | |
].join('\n') | |
}) ); | |
} | |
// ------------------------------------------------------------ | |
// | |
_this_.player_callback = function (__id, __data){ | |
// | |
if( __data.html ){ | |
document.getElementById($_label + __id).innerHTML = __data.html; | |
return ; | |
} | |
// | |
var $site_list = { | |
// | |
'media': (function (___link, ___title){ | |
return _sylera.external.element('nobr', { | |
innerHTML: [ | |
'<embed' | |
, 'type="application/x-shockwave-flash"' | |
, 'src="http://player.longtailvideo.com/player.swf"' | |
, 'width="320"' | |
, 'height="240"' | |
, 'bgcolor="black"' | |
, 'allowscriptaccess="always"' | |
, 'allowfullscreen="true"' | |
, 'wmode="transparent"' | |
, 'flashvars="'+ [ | |
'file='+ encodeURIComponent(___link.href) | |
, 'title='+ encodeURIComponent(___title) | |
, 'linktarget=_blank' | |
].join('&') +'"' | |
, '/>' | |
].join(' ') | |
}); | |
}) | |
, | |
// | |
'www.nicovideo.jp': (function (___link, ___title){ | |
window.open( | |
('data:text/html;charset=utf-8,'+ encodeURIComponent( | |
'<html>' | |
+ '<head>' | |
+ '<title> '+ ___title +' </title>' | |
+ '<style>embed, object{ width:99%; height:99%; }</style>' | |
+ '</head>' | |
+ '<body bgcolor=black>' | |
+ '<script type="text/javascript"' | |
+ ' src="'+ ___link.href.replace(/:\/\/www\.([^\/]+)\/(watch)\/([0-9a-z]+)/i, "://ext.$1/thumb_$2/$3?w=320&h=240") +'"' | |
+ ' >' | |
+ '</script>' | |
+ '</body></html>' | |
) ) | |
, $_label | |
); | |
return document.createTextNode('open new window'); | |
}) | |
}; | |
// | |
var item = document.getElementById('item_'+ __id); | |
var head = document.getElementById('head_'+ __id); | |
// | |
var media_link = _sylera.external.evaluateXPath(item, './/*[@class="item_info"]/*[@class="enclosure"]/a'); | |
media_link = (media_link.length ? media_link : head.getElementsByTagName('a'))[0]; | |
var site = $site_list[ media_link.host ]; | |
// | |
document.getElementById($_label + __id) | |
.appendChild( (site ? site : $site_list['media'])(media_link, head.textContent) ); | |
// | |
}; | |
// ------------------------------------------------------------ | |
function create_player(__item){ | |
// | |
var current_item = $('item_'+ __item.id); | |
// | |
var player_view = _sylera.external.element('div', { | |
'id': ($_label + __item.id) | |
, className: $_label | |
, style: {'tabIndex': ++$_tab_index} | |
, ondblclick: (function (){ this.parentNode.removeChild(this); }) | |
}, []); | |
// | |
with( player_view ){ | |
appendChild( | |
_sylera.external.element('script', { | |
type: 'text/javascript' | |
, innerHTML: ( | |
'function '+ player_view.id +'_cb(_data){ ' | |
+ $ID +'.player_callback("'+ __item.id +'", _data);' | |
+ ' }' | |
) | |
}) | |
); | |
appendChild( | |
_sylera.external.element('script', { | |
type: 'text/javascript' | |
, src: ('http://api.embed.ly/1/oembed?callback='+ player_view.id +'_cb&url='+ encodeURIComponent(__item.link)) | |
}) | |
); | |
} | |
// | |
$('item_body_'+ __item.id).appendChild( player_view ); | |
// | |
player_view.focus(); | |
// | |
} | |
// ------------------------------------------------------------ | |
with( window.Keybind ){ | |
// | |
add('l', function (){ | |
// | |
var current_item = get_active_item(true); | |
var player_view = $($_label + current_item.id); | |
// | |
if(player_view == null){ | |
create_player(current_item); | |
return; | |
} | |
// | |
player_view.style.display = (player_view.style.display == 'none') ? 'block' : 'none'; | |
}); | |
} | |
// | |
}; | |
// star | |
// ------------------------------------------------------------ | |
_this_.star = function (_tab_index){ | |
// | |
var $_label = $ID +'_hatena_star'; | |
// | |
document.getElementsByTagName('head')[0] | |
.appendChild( _sylera.external.element('script', { | |
type: 'text/javascript' | |
, src: 'http://s.hatena.ne.jp/js/HatenaStar.js' | |
})); | |
// | |
channel_widgets.add('hatena star cnt', function (__feed, __items){ | |
// | |
Hatena.Star.SiteConfig = { | |
'entryNodes': { | |
'.item_header': { | |
'uri': '.item_title a' | |
, 'title': '.item_title a' | |
, 'container': '.item_title' | |
} | |
} | |
}; | |
return ''; | |
}); | |
// | |
entry_widgets.add($_label, function (__feed, __item){ | |
return '<script>Hatena.Star.EntryLoader.loadNewEntries( $("item_'+ __item.id +'") );</script>'; | |
}); | |
// | |
register_hook('AFTER_PRINTFEED', function (__feed){ | |
// | |
Hatena.Star.EntryLoader.loadNewEntries( $('right_body') ); | |
// | |
}); | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.another_useful = new (function (){ | |
/* | |
another useful greasemonkey scripts | |
*/ | |
// ------------------------------------------------------------ | |
// ==UserScript== | |
// @name Utilities for livedoor Reader | |
// @description Make livedoor Reader more convenient. | |
// @namespace http://antipop.gs/ns/greasemonkey/ldr_utils | |
// @include http://reader.livedoor.com/reader/* | |
// ==/UserScript== | |
// | |
// original: http://d.hatena.ne.jp/antipop/20060430/1146343265 | |
// | |
this.Utilities_for_livedoor_Reader = function (){ | |
// hide ads | |
['ads_top', 'ads_bottom'].forEach(function(v){DOM.hide(v);}); | |
// move total-unread-count into the control box | |
var total_unread_count = DOM.clone($('total_unread_count')); | |
setStyle(total_unread_count, { | |
'position' : 'absolute', | |
'right' : '150px', | |
'top' : '5px', | |
'font-size': '12px' | |
}); | |
DOM.remove('total_unread_count'); | |
DOM.insert($('control'), total_unread_count, $('fontpad')); | |
// replace Control.toggle_fullscreen with custom function | |
var toggle_fullscreen_with_control = function(){ | |
var fs = []; | |
var elements = ['header', 'menu', 'control', 'footer']; | |
fs[0] = ['header', 'menu', 'control', 'footer']; | |
fs[1] = ['menu', 'control']; | |
fs[2] = ['control']; | |
fs[3] = []; | |
if (!State.fullscreen) { | |
State.fullscreen = 1; | |
} else if (State.fullscreen == fs.length-1){ | |
State.fullscreen = 0; | |
} else { | |
State.fullscreen++ | |
} | |
Element.hide(elements); | |
Element.show(fs[State.fullscreen]); | |
fit_screen() | |
}; | |
Keybind.add('Z', toggle_fullscreen_with_control); | |
// make the view-area wide on the page loaded | |
for(var i=1/* 2 */; i>0; i--){ | |
toggle_fullscreen_with_control(); | |
} | |
// | |
}; | |
// | |
})(); | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.element.js'); | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.evaluateXPath.js'); | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// ------------------------------------------------------------ | |
// | |
var $tab_index = 0x7FFF; | |
var $load = function (_label){ new _this_[_label]($tab_index -= 1000); }; | |
// | |
$load('key_config'); | |
$load('star'); | |
$load('player'); | |
$load('hatena_bookmark'); | |
$load('twitter_url'); | |
// | |
if( (/livedoor/i).test(location.domain) ){ | |
// | |
_this_.another_useful.Utilities_for_livedoor_Reader(); | |
// | |
} | |
// | |
}; | |
// | |
})(); } // _autoexec_livedoor_reader | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
if( (/\/reader\/$/i).test(location.pathname) ){ | |
// | |
var default_onload = onload; | |
onload = function (){ | |
default_onload(); | |
_autoexec_livedoor_reader.init(_label); | |
}; | |
// | |
} | |
} | |
// | |
})( '_autoexec_livedoor_reader' ); | |
// | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// autoexec.nhk_news.js | |
// | |
// ==UserScript== | |
// @name autoexec.nhk_news | |
// @version 0.91 | |
// @include nhk.or.jp | |
// @description NHKニュースの本文を自動で展開させる | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
(function (){ | |
// | |
var $ID = '_autoexec_nhk_news'; | |
// | |
if( (/\/news\/html\/\d+\/[a-z]\d+\.html$/i).test(location.pathname) ){ | |
// | |
if(document.getElementById($ID) == null){ | |
document.getElementById('news_left').innerHTML += ( | |
'<form id="'+ $ID +'">' | |
+ ('video id: <input type="text" name="video id:" value="' + document.getElementById('news_video').innerHTML + '" onclick="this.select()" /><br />') | |
+ ('short url: <input type="text" name="short url:" value="' + encodeShorturlNews(location.href) + '" onclick="this.select()" />') | |
+ '</form>' | |
) | |
; | |
} | |
// | |
} | |
})(); | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// autoexec.nicovideo.js | |
// | |
// ==UserScript== | |
// @name autoexec.nicovideo | |
// @version 0.93 | |
// @include nicovideo.jp | |
// @description ニコニコ動画用自動実行拡張 | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// | |
try { _autoexec_nicovideo; } catch(_e){ _autoexec_nicovideo = new (function () { // | |
// | |
var _this_ = this; | |
// | |
var $ID = '_autoexec_'; | |
// | |
var $V_ID, $V_LABEL; | |
// | |
// ------------------------------------------------------------ | |
_this_.player_links = function (){ | |
// | |
function create_link(__opt, __style){ | |
return _sylera.external.element('a', { | |
href: __opt.href | |
, style: __style | |
}, [ document.createTextNode(__opt.text) ]); | |
} | |
// | |
var $_header = document.getElementsByTagName('h1'); | |
$_header = $_header.length | |
? $_header[0].parentNode | |
: document.getElementById('WATCHHEADER') | |
; | |
$_header.insertBefore( | |
// | |
_sylera.external.element('div', { | |
id:($ID +'_player_links') | |
, style: { | |
padding: '1em' | |
, fontSize:'80%' | |
, fontWeight:'bold' | |
} | |
}, [ | |
// | |
create_link( | |
( | |
(/eco=1/i).test(location.search) | |
? {href:location.pathname, text:'ノーマル'} | |
: {href:location.pathname +'?eco=1', text:'エコノミー'} | |
) | |
, { | |
padding: '0.25em' | |
, backgroundColor: 'rgb(102,111,111)' | |
, color:'white' | |
, textDecoration: 'none' | |
} | |
) | |
, | |
// | |
create_link( | |
( | |
(/oldplayer=1/i).test(location.search) | |
? {href:location.pathname, text:'現'} | |
: {href:location.pathname +'?oldplayer=1', text:'旧'} | |
) | |
, { | |
padding: '0.25em' | |
, backgroundColor: 'black' | |
, color:'white' | |
, textDecoration: 'none' | |
} | |
) | |
]) | |
// | |
, $_header.firstChild); | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.dl_links = function (){ | |
// | |
var $_label = $ID +'_dl_links'; | |
// | |
var block = document.getElementById($_label); | |
var $_box = document.getElementsByTagName('h1'); | |
$_box = $_box.length | |
? $_box[0].parentNode | |
: document.getElementById('WATCHHEADER') | |
; | |
// | |
if((block != null) || ($_box == null)){ return ; } | |
// | |
block = _sylera.external.element('div', { | |
id: $_label | |
, style: { | |
padding: '0.5em' | |
, fontSize: '90%', fontWeight: 'bold' | |
} | |
}, [ | |
document.createTextNode('ダウンロード: ') | |
, | |
_sylera.external.element('a', { | |
href: ('http://www.nicozon.net/flv/'+ $V_ID) | |
, target: 'nicovideo_dl' | |
, style: {color:'red'} | |
}, [ document.createTextNode($V_ID) ]) | |
]); | |
// | |
$_box.appendChild(block); | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.element.js'); | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// | |
try { | |
$V_ID = Video.v; | |
$V_LABEL = Video.id; | |
} | |
catch(_e){ | |
$V_ID = $V_LABEL = location.pathname.match(/[^\/]+$/); | |
} | |
// | |
if( (/\/watch\//i).test(location.pathname) ){ | |
// | |
try { | |
hideOBJ('des_short'); showOBJ('des_full'); | |
} | |
catch(_e){ | |
try { | |
hideOBJs('des_short'); showOBJs('des_full'); | |
} catch(__e){} | |
} | |
// | |
_this_.player_links(); | |
_this_.dl_links(); | |
// | |
} | |
// | |
}; | |
// | |
})(); } // _autoexec_nicovideo | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_autoexec_nicovideo.init(_label); | |
} | |
// | |
})( '_autoexec_nicovideo' ); | |
// | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// autoexec.twitter.js | |
// | |
// ==UserScript== | |
// @name autoexec.twitter | |
// @version 0.91 | |
// @include twitter.com | |
// @require ./_sylera.external.evaluateXPath.js | |
// @description twitter用自動実行拡張 | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// ------------------------------------------------------------ | |
// | |
try { _autoexec_twitter; } catch(_e){ _autoexec_twitter = new (function () { // | |
// | |
var _this_ = this; | |
// | |
var $ID = '_autoexec_twitter'; | |
// | |
var $USER; | |
// | |
// ------------------------------------------------------------ | |
function create_script(_content, _src){ | |
var scr = document.createElement('script'); | |
with( scr ){ | |
type = 'text/javascript'; | |
innerHTML = _content; | |
} | |
if( _src ){ scr.src = _src; } | |
return scr; | |
} | |
// | |
function create_image(_src, _opts){ | |
var img = document.createElement('img'); | |
img.src = _src; | |
if(_opts){ for(var c in _opts){ img.setAttribute(c, _opts[c]); } } | |
return img; | |
} | |
// | |
function create_thumb(_src){ | |
return create_image(_src, { | |
width:90, height:90 | |
, hspace:7, vspace:7 | |
, border:1 | |
, align:'top' | |
, 'style': 'margin:7px;border:solid 1px;' | |
}); | |
} | |
// ------------------------------------------------------------ | |
_this_.star = new (function (){ | |
// | |
var $_label = $ID +'.star'; | |
// | |
var $_load_cnt = 0; | |
// | |
this.entry_loader = new Function(); | |
// | |
this.sitecfg_callback = function (_data){ | |
// | |
var container = $ID +'hatenastar'; | |
// | |
Hatena.Star.SiteConfig = _data['twitter.com'][0]; | |
// | |
this.entry_loader = (function (){ | |
// | |
$_load_cnt++; | |
// | |
var tl = document.getElementById('timeline'); | |
if(tl == null){ tl = document.getElementById('content'); } | |
// | |
for( | |
var s=0 | |
, stat_list=_sylera.external.evaluateXPath(tl,'.//*[starts-with(@id,"status_") and not(./*[starts-with(@class,"'+ container +'")])]') | |
; s<stat_list.length | |
; s++ | |
){ | |
var cont_box = document.createElement('p'); | |
cont_box.className = container + $_load_cnt; | |
stat_list[s].appendChild(cont_box); | |
} | |
// | |
Hatena.Star.SiteConfig.entryNodes['.hentry']['container'] = '.'+ container + $_load_cnt; | |
Hatena.Star.EntryLoader.loadNewEntries(tl); | |
// | |
}); | |
// | |
this.entry_loader(); | |
// | |
}; | |
// | |
this.init = function (){ | |
with( document.getElementsByTagName('head')[0] ){ | |
appendChild( create_script('', 'http://s.hatena.ne.jp/js/HatenaStar.js') ); | |
appendChild( create_script('', ('http://s.hatena.ne.jp/siteconfig.json?host=twitter.com&callback='+ $_label +'.sitecfg_callback')) ); | |
} | |
}; | |
// | |
}); | |
// ------------------------------------------------------------ | |
_this_.fix_links = new (function (_PROFILES) { | |
// | |
var $_label = $ID +'.fix_links'; | |
// | |
this.$links = {}; | |
// | |
this.$profiles = {}; | |
// | |
for(var p in _PROFILES){ | |
// | |
var base_prof = _PROFILES[p]; | |
this.$profiles[p] = { | |
callback: ((typeof base_prof.callback == 'string') ? _PROFILES[base_prof.callback] : base_prof).callback | |
}; | |
// | |
if( base_prof.json ){ | |
this.$profiles[p].json = ((typeof base_prof.json == 'string') ? base_prof : _PROFILES[base_prof.json.shift()]).json; | |
} | |
// | |
if( base_prof.hosts ){ | |
for(var h=0; h<base_prof.hosts.length; h++){ | |
this.$profiles[ base_prof.hosts[h] ] = this.$profiles[p]; | |
} | |
} | |
} | |
// ------------------------------------------------------------ | |
// | |
this.callback = function (__id, __data){ | |
// | |
var link = this.$links[__id]['link']; | |
if(link == 1){ return ; } | |
// | |
if( __data ){ | |
var href_prev = link.href; | |
var cb_result = this.$links[__id]['callback'](link, __data); | |
// | |
link.title = href_prev +' → '+ link.href; | |
// | |
if( | |
(cb_result == 1) | |
|| (href_prev.toLowerCase() == link.href.toLowerCase()) | |
){ | |
this.$links[__id]['link'] = 1; | |
return ; | |
} | |
} | |
// | |
var profile = this.$profiles[ link.host.replace(/^[w\d]+\./i,'') ]; | |
if(! profile ){ | |
this.$links[__id]['link'] = 1; | |
return ; | |
} | |
// | |
this.$links[__id]['callback'] = profile.callback; | |
// | |
return ( | |
profile.json | |
? this.$links[__id]['link'].parentNode.appendChild( create_script('', | |
profile.json | |
.replace(/#url#/gi, encodeURIComponent(link.href)) | |
.replace(/#callback#/gi, encodeURIComponent($_label+'.$links["'+__id+'"]._callback')) | |
) ) | |
: (this.$links[__id]['link'] = profile.callback(link, __data)) | |
); | |
}; | |
// ------------------------------------------------------------ | |
// | |
this.scan = function (){ | |
// | |
var list = _sylera.external.evaluateXPath( | |
document.getElementById('content') | |
, './/*[starts-with(@id,"status_") and starts-with(@class,"hentry")]' | |
); | |
// | |
for( | |
var i=0, block, block_id | |
, link_items | |
, j, link, link_id, profile | |
; i<list.length | |
; i++ | |
){ | |
// | |
block = list[i]; | |
label = block.id.match(/\d+$/); | |
// | |
if(! this.$links[(label +'-0')]){ | |
// | |
link_items = _sylera.external.evaluateXPath(block, './/a[@class="tweet-url web" or @target="twitter_external_link"]'); | |
// | |
for(j=0; j<link_items.length; j++){ | |
// | |
link_id = label +'-'+ j; | |
link = link_items[j]; | |
this.$links[link_id] = { | |
'link': link | |
, '_callback': (new Function('__data', ($_label +'.callback("'+ link_id +'", __data);'))) | |
}; | |
} | |
} | |
// | |
} | |
// | |
for(link_id in this.$links){ | |
this.callback(link_id); | |
} | |
// | |
}; | |
// | |
})({ | |
// | |
'redirect': { | |
json: 'http://webtool.es.land.to/redirect.cgi?cb=#callback#&u=#url#' | |
, callback: (function (__link, __data){ | |
with( __link ){ | |
href = __data; | |
replaceChild(document.createTextNode(__data), __link.firstChild); | |
style.fontWeight = 'bold'; | |
} | |
if( (/\.((jpe?|pn)g|gif)$/i).test(__link.pathname) ){ | |
__link.parentNode.appendChild( create_thumb(__link.href) ); | |
return 1; | |
} | |
return __link; | |
}) | |
, hosts: ['t.co','bit.ly','j.mp','ow.ly','goo.gl','post.ly'] | |
} | |
, | |
// | |
'embed.ly': { | |
json: 'http://api.embed.ly/1/oembed?callback=#callback#&url=#url#' | |
, callback: (function (__link, __data){ | |
if( __data.thumbnail_url ){ | |
__link.parentNode.appendChild( create_thumb(__data.thumbnail_url) ); | |
return 1; | |
} | |
if( __data.url ){ | |
if(__data.url.toLowerCase() == __link.href.toLowerCase()){ return 1; } | |
with( __link ){ | |
href = __data.url; | |
replaceChild(document.createTextNode(__data.url), __link.firstChild); | |
style.fontWeight = 'bold'; | |
} | |
} | |
return __link; | |
}) | |
, hosts: ['yfrog.com', 'flickr.com', 'twitpic.com', 'imgur.com', 'posterous.com', 'twitgoo.com', 'photobucket.com', 'phodroid.com', 'mobypicture.com', 'xkcd.com', 'asofterworld.com', 'qwantz.com', '23hq.com', 'dribbble.com', 'smugmug.com', 'emberapp.com', 'picasaweb.google.com', 'dailybooth.com', 'brizzly.com', 'img.ly', 'tinypic.com', 'meadd.com', 'deviantart.com', 'fotopedia.com', 'photozou.jp', 'instagr.am', 'skitch.com', 'share.ovi.com', 'questionablecontent.net', 'picplz.com', 'twitrpix.com', 'someecards.com', 'pikchur.com', 'achewood.com', 'whosay.com', 'color.com', 'bnter.com', 'mlkshk.com', 'lockerz.com', 'lightbox.com', 'soundcloud.com', 'last.fm', 'mixcloud.com', 'radionomy.com', 'hark.com', 'rdio.com', 'zero-inch.com', 'bandcamp.com', 'freemusicarchive.org', 'npr.org', 'huffduffer.com', 'audioboo.com', 'xiami.com', 'saynow.com', 'grooveshark.com', 'radioreddit.com', 'gogoyoko.com', 'amazon.com', 'shopstyle.com', 'itunes.apple.com', 'gist.github.com', 'crunchbase.com', 'slideshare.net', 'scribd.com', 'screenr.com', 'polldaddy.com', '5min.com', 'howcast.com', 'screencast.com', 'issuu.com', 'kickstarter.com', 'scrapblog.com', 'foursquare.com', 'ping.fm', 'chart.ly', 'maps.google.com', 'craigslist.org', 'my.opera.com', 'tumblr.com', 'polleverywhere.com', 'quantcast.com', 'compete.com', 'statsheet.com', 'status.net', 'indenti.ca', 'brainbird.net', 'shitmydadsays.com', 'studivz.net', 'myloc.me', 'pastebin.com', 'pastie.org', 'redux.com', 'cl.ly', 'speakerdeck.com', 'kiva.org', 'timetoast.com', 'storify.com', 'meetup.com', 'dailymile.com', 'kinomap.com', 'metacdn.com', 'prezi.com', 'uservoice.com', 'formspring.me', 'twitlonger.com', 'qwiki.com', 'crocodoc.com', 'wikipedia.org', 'wikimedia.org', 'urtak.com', 'graphicly.com', 'youtube.com','youtu.be', 'justin.tv', 'ustream.tv','ustre.am', 'qik.com', 'revision3.com', 'dailymotion.com', 'collegehumor.com', 'twitvid.com', 'break.com', 'vids.myspace.com', 'metacafe.com', 'blip.tv', 'video.google.com', 'revver.com', 'video.yahoo.com', 'viddler.com', 'liveleak.com', 'animoto.com', 'dotsub.com', 'overstream.net', 'livestream.com', 'worldstarhiphop.com', 'teachertube.com', 'bambuser.com', 'schooltube.com', 'bigthink.com', 'sendables.jibjab.com', 'xtranormal.com', 'socialcam.com', 'dipdive.com', 'youku.com', 'snotr.com', 'video.jardenberg.com', 'clipfish.de', 'myvideo.de', 'whitehouse.gov', 'hulu.com', 'crackle.com', 'fancast.com', 'funnyordie.com', 'vimeo.com', 'ted.com', 'nfb.ca', 'thedailyshow.com', 'movies.yahoo.com', 'colbertnation.com', 'comedycentral.com', 'theonion.com', 'wordpress.tv', 'traileraddict.com', 'escapistmagazine.com', 'trailerspy.com', 'atom.com', 'fora.tv', 'spike.com', 'gametrailers.com', 'koldcast.tv', 'techcrunch.tv', 'mixergy.com', 'video.pbs.org', 'zapiks.com', 'digg.com', 'trutv.com', 'nzonscreen.com', 'wistia.com', 'hungrynation.tv', 'indymogul.com', 'channelfrederator.com', 'tmiweekly.com', '99dollarmusicvideos.com', 'ultrakawaii.com', 'barelypolitical.com', 'barelydigital.com', 'threadbanger.com', 'vodcars.com', 'confreaks.net', 'allthingsd.com', 'videos.nymag.com', 'aniboom.com', 'clipshack.com', 'grindtv.com', 'ifood.tv', 'logotv.com', 'lonelyplanet.com', 'streetfire.net', 'trooptube.tv', 'sciencestage.com', 'brightcove.com', 'godtube.com', 'tangle.com', 'mediamatters.org', 'clikthrough.com', 'espn.go.com', 'abcnews.go.com', 'washingtonpost.com', 'boston.com', 'facebook.com', 'cnbc.com', 'cbsnews.com', 'google.com', 'cnn.com', 'edition.cnn.com', 'money.cnn.com', 'msnbc.com', 'globalpost.com', 'guardian.co.uk', 'bravotv.com', 'nationalgeographic.com', 'discovery.com', 'video.forbes.com'] | |
} | |
, | |
// | |
'htn.to': { | |
json: ['redirect'] | |
, callback: (function (__link, __data){ | |
with( __link ){ | |
href = ('http://b.hatena.ne.jp/entry/'+ __data); | |
replaceChild(document.createTextNode(__data), __link.firstChild); | |
appendChild( create_image('http://b.hatena.ne.jp/entry/image/'+ __data) ); | |
style.fontWeight = 'bold'; | |
} | |
return 1; | |
}) | |
} | |
, | |
// | |
'f.hatena.ne.jp': { | |
callback: (function (__link, __data){ | |
with( __link ){ | |
href = __link.href.replace( | |
/\/images\/fotolife\/[a-z]\/([a-z][\w\-]+)\/\d{4}[01]\d[0-3]\d\/(\d{4}[01]\d[0-3]\d[0-2]\d[0-5]\d[0-5]\d)\.[a-z]+$/i | |
,"/$1/$2" | |
); | |
parentNode.appendChild( create_thumb( | |
__link.href.replace( | |
/\/(([a-z])[\w\-]+)\/((\d{4}[01]\d[0-3]\d)[0-2]\d[0-5]\d[0-5]\d)$/i | |
,"/images/fotolife/$2/$1/$4/$3_120.jpg" | |
) | |
) ); | |
} | |
return 1; | |
}) | |
} | |
, | |
// | |
'movapic.com': { | |
callback: (function (__link){ | |
__link.parentNode.appendChild( create_thumb('http://image.movapic.com/pic/t_'+ __link.pathname.match(/[^\/]+$/) +'.jpeg') ); | |
return 1; | |
}) | |
} | |
, | |
// | |
'p.twipple.jp': { | |
callback: (function (__link){ | |
__link.parentNode.appendChild( create_thumb('http://p.twipple.jp/show/thumb/'+ __link.pathname.match(/[^\/]+$/)) ); | |
return 1; | |
}) | |
} | |
, | |
// | |
'nicovideo.jp': { | |
callback: (function (__link){ | |
__link.parentNode.appendChild( create_thumb('http://tn-skr1.smilevideo.jp/smile?i='+ __link.pathname.match(/\d+$/)) ); | |
return 1; | |
}) | |
} | |
// | |
}); | |
// | |
// ------------------------------------------------------------ | |
// | |
_this_.check_relationship = new (function (){ | |
// | |
var $_label = $ID +'_check_relationship'; | |
var $_user; | |
// ------------------------------------------------------------ | |
this.check = function (_data){ | |
// | |
if( _data.relationship.target.following ){ | |
with( | |
document | |
.getElementById($_label +'_'+ _data.relationship.target.screen_name) | |
.parentNode.parentNode.parentNode | |
){ | |
style.backgroundColor = '#'+ $_user.profile_sidebar_fill_color; | |
style.borderColor = '#'+ $_user.profile_sidebar_border_color; | |
} | |
} | |
}; | |
// | |
this.scan = function (_user){ | |
// | |
if(! ($_user = _user)){ return ; } | |
// | |
var api_url = [ | |
'/friendships/show.json?' | |
, 'callback='+ $ID +'.check_relationship.check' | |
, 'source_screen_name='+ $_user.screen_name | |
, 'target_screen_name=' | |
].join('&'); | |
// | |
var list = _sylera.external.evaluateXPath( | |
document.getElementById('follow_grid') | |
, './/*[starts-with(@id,"user_")]' | |
); | |
// | |
for(var i=0, userblock,address; i<list.length; i++){ | |
// | |
userblock = list[i]; | |
address = (_sylera.external.evaluateXPath( | |
userblock | |
, './*[@class="user-detail"]/address/span[@class="label screenname"]' | |
))[0]; | |
// | |
address.id = $_label +'_'+ address.textContent; | |
document.body.appendChild( | |
create_script('', api_url + address.textContent) | |
); | |
// | |
} | |
// | |
}; | |
// | |
this.init = function (){ | |
// | |
try { | |
document.body.appendChild( | |
create_script('', '/users/show.json?' | |
+'callback='+ $ID +'.check_relationship.scan' | |
+ '&screen_name='+ $USER | |
) | |
); | |
} | |
catch(_e){ | |
alert($_label +'\n[include error]'+ _e.message); | |
return ; | |
} | |
}; | |
// | |
})(); | |
// | |
// ------------------------------------------------------------ | |
// | |
_this_.refresh = function (){ | |
// | |
_this_.fix_links.scan(); | |
// | |
_this_.star.entry_loader(); | |
// | |
}; | |
// | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.evaluateXPath.js'); | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// | |
try { | |
// | |
$USER = (_sylera.external.evaluateXPath((document.getElementsByTagName('head'))[0], './meta[@name="session-user-screen_name"]'))[0] | |
.getAttribute('content'); | |
} | |
catch(_e){ | |
$USER = 0; | |
} | |
// | |
if( (/^\/following/i).test(location.pathname) ){ | |
return _this_.check_relationship.init(); | |
} | |
// | |
if(document.getElementById('content') != null){ | |
// | |
try { | |
_this_.onPageChange = window.onPageChange; | |
window.onPageChange = function (){ | |
with( _this_ ){ | |
onPageChange(); | |
refresh(); | |
} | |
}; | |
_this_.summizeRefresh = window.summizeRefresh; | |
window.summizeRefresh = function (){ | |
with( _this_ ){ | |
summizeRefresh(); | |
refresh(); | |
} | |
}; | |
} | |
catch(_e){} | |
// | |
_this_.star.init(); | |
// | |
_this_.refresh(); | |
// | |
} | |
// | |
}; | |
// | |
})(); } // _autoexec_twitter | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_autoexec_twitter.init(_label); | |
// | |
} | |
// | |
})( '_autoexec_twitter' ); | |
// | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// autoexec.ustream.js | |
// | |
// ==UserScript== | |
// @name autoexec.ustream | |
// @version 0.9 | |
// @include www.ustream.tv | |
// @require ./_sylera.external.element.js | |
// @description ustream用自動実行拡張 | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// | |
try { _autoexec_ustream; } catch(_e){ _autoexec_ustream = new (function () { // | |
// | |
var _this_ = this; | |
// | |
var $ID = '_autoexec_'; | |
// ------------------------------------------------------------ | |
_this_.add_popup = function (){ | |
// | |
document.getElementById('EventHeader') | |
.appendChild( _sylera.external.element('a', { | |
'id': 'PopoutChannelVideo' | |
, 'className': 'popout' | |
, target: ('ustream'+ document.getElementById('videoId').value) | |
, href: ('data:text/html;charset=utf-8,'+ encodeURIComponent([ | |
, '<html>' | |
, '<head>' | |
, ('<title>'+ document.title +'</title>') | |
, '<style type="text/css">' | |
, 'body{margin:0; padding:3px; background-color:black; text-align:center;}' | |
, 'object, embed{width:99%; height:99%;}' | |
, '</style>' | |
, '</head>' | |
, '<body>' | |
, document.getElementById('VideoEmbedCode').getElementsByTagName('input')[0].value | |
, '</body>' | |
, '</html>' | |
].join('\n'))) | |
}, [ | |
_sylera.external.element('b', 0, []) | |
, _sylera.external.element('span', 0, [ document.createTextNode('popout') ]) | |
]) ); | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.add_dl = function (){ | |
// | |
document.getElementById('TabShowInfo').parentNode | |
.appendChild( _sylera.external.element('li', {'id': ($ID +'_dl')}, [ | |
_sylera.external.element('b', 0, [ | |
_sylera.external.element('a', { | |
href: window.Ustream.Vars.liveHttpUrl | |
}, [ document.createTextNode('download') ]) | |
]) | |
, _sylera.external.element('span', {'className':'arrow'}, []) | |
]) ); | |
//; | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.element.js'); | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// | |
if( (/^\/recorded\//i).test(location.pathname) ){ | |
_this_.add_popup(); | |
_this_.add_dl(); | |
} | |
// | |
}; | |
// | |
})(); } // _autoexec_ustream | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_autoexec_ustream.init(_label); | |
} | |
// | |
})( '_autoexec_ustream' ); | |
// | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// autoexec.youtube.js | |
// | |
// ==UserScript== | |
// @name autoexec.youtube | |
// @version 0.94 | |
// @include youtube.com | |
// @require ./_sylera.external.element.js | |
// @description YouTube用自動実行拡張 | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// ------------------------------------------------------------ | |
// | |
try { _autoexec_youtube; } catch(_e){ _autoexec_youtube = new (function () { // | |
// | |
// | |
var _this_ = this; | |
// | |
var $ID = '_autoexec_'; | |
// ------------------------------------------------------------ | |
// | |
_this_.add_link_fmt = function (){ | |
// | |
var $_label = $ID +'_fmt'; | |
// | |
var $_v_fmt_current = (/&fmt=([^&]+)/i).test(location.search) ? RegExp.$1 : 34; | |
// | |
var $_v_fmt_list = { | |
5: {label:'flv', color:'black', info:{}} | |
, 6: {label:'flv2', color:'gray', info:{}} | |
, 34: {label:'flv-low', color:'gray', info:{}} | |
, 35: {label:'flv-high', color:'gray', info:{}} | |
, 18: {label:'mp4', color:'red', info:{}} | |
, 22: {label:'HD', color:'blue', info:{}} | |
, 37: {label:'HD-full', color:'blue', info:{}} | |
}; | |
// | |
try { | |
// | |
var $_v_id = yt.config_['VIDEO_ID']; | |
/* | |
var $_v_token = yt.config_['XSRF_TOKEN']; | |
*/ | |
var $_v_url = ((yt.preload.start +'').match(/http[^'\"]+/) +'') | |
.replace(/\/[^\?\/]+\?/,'/videoplayback?'); | |
// | |
} catch(_e){ return; } | |
// | |
// ------------------------------------------------------------ | |
function _T(_text){ return document.createTextNode(_text); } | |
// | |
function dl_list(_target){ | |
var fmt, f, v; | |
for(f in $_v_fmt_list){ | |
v = $_v_fmt_list[f]; | |
if( v.info.url ){ | |
with( _target ){ | |
appendChild( | |
_sylera.external.element('a', { | |
href: v.info.url | |
, style: { | |
margin:'auto 0.33em auto 0.33em' | |
, color:v.color | |
, fontWeight:'bold' | |
} | |
, title: (v.info.type + '('+ v.info.quality +')') | |
}, [ _T(v.label) ]) | |
); | |
appendChild( _T('|') ); | |
} | |
} | |
} | |
// | |
return _target; | |
} | |
// | |
function fmt_list(_target){ | |
var fmt, f, v, anchor; | |
for(f in $_v_fmt_list){ | |
v = $_v_fmt_list[f]; | |
anchor = (f == $_v_fmt_current) | |
? _sylera.external.element('a', { | |
name: 'current' | |
, style: {fontWeight:'bold', backgroundColor:v.color, color:'white'} | |
}) | |
: _sylera.external.element('a', { | |
href: (location.pathname + location.search.replace(/&?fmt=[^&]+/i,'') +'&fmt='+ f) | |
, style: {fontWeight:'bold', color:v.color} | |
, title: (v.info.type + '('+ v.info.quality +')') | |
}) | |
; | |
anchor.appendChild( _T(v.label) ); | |
with( _target ){ | |
appendChild( anchor ); | |
appendChild( _T(' | ') ); | |
} | |
} | |
// | |
return _target; | |
} | |
// ------------------------------------------------------------ | |
// | |
var $_title = (document.getElementsByTagName('h1'))[0]; | |
if((document.getElementById($_label) != null) || ($_title == null)){ return ;} | |
// | |
document.body.appendChild( _sylera.external.element('div', {id:$_label}) ); | |
// | |
var $_http = new XMLHttpRequest(); | |
with( $_http ){ | |
// ref: http://nondelion.com/archives/2009/04/08/2255 | |
open('GET', ('/get_video_info?video_id='+ $_v_id), true); | |
// | |
onload = function (){ | |
// | |
var v_info = (/&?url_encoded_fmt_stream_map=url%3D([^=&]+)/i).test($_http.responseText) | |
? decodeURIComponent(RegExp.$1).split(/,url=/i) | |
: [] | |
; | |
for(var p=0,param; p<v_info.length; p++){ | |
param = {}; | |
('&url='+ v_info[p]).replace(/&([^&=]+)=([^&]+)/g, function (_$0, _$1,_$2){ | |
param[decodeURIComponent(_$1)] = decodeURIComponent(_$2); | |
}); | |
try { | |
if(! $_v_fmt_list[param.itag]){ | |
$_v_fmt_list[param.itag] = {label: param.quality, color: 'lightgray'}; | |
} | |
$_v_fmt_list[param.itag].info = param; | |
} catch(_e){ } | |
} | |
// | |
$_title.style.cssText = 'height:auto; max-height:2.5em; padding:auto;'; | |
$_title.appendChild( fmt_list( | |
_sylera.external.element('p', { | |
id: ($_label +'_fmt_link') | |
, style: { | |
fontSize:'15px' | |
, fontWeight:'normal' | |
, color: 'darkgray' | |
} | |
}) | |
) ); | |
// | |
var v_default = $_v_fmt_list[$_v_fmt_current]; | |
// | |
document.getElementById('watch-video').appendChild( dl_list( | |
_sylera.external.element('p', { | |
id: ($_label +'_dl_link') | |
, style: { | |
margin:'1em 0 1.5em 7px' | |
, color:'darkgray' | |
, fontSize:'12px' | |
, fontWeight:'normal' | |
} | |
}, [ | |
_sylera.external.element('b', {style: {color:'black'}}, [ | |
_T('Download: ') | |
, _sylera.external.element('a', { | |
href: $_v_url | |
, style: {color:'black'} | |
}, [ _T($_v_id) ]) | |
]) | |
]) | |
) ); | |
}; | |
// | |
send(null); | |
} | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.add_link_popup = function (){ | |
// | |
var $_label = $ID +'_popup'; | |
// | |
try { var $_v_id = yt.config_['VIDEO_ID']; } catch(_e){ return ; } | |
// | |
var $_title = (document.getElementsByTagName('h1'))[0]; | |
// | |
if((document.getElementById($_label) == null) && ($_title != null)){ | |
// | |
$_title.appendChild(_sylera.external.element('a', { | |
href: ('/embed/'+ $_v_id) | |
, 'id': $_label | |
, className: 'yt-uix-button' | |
, | |
style: { | |
marginLeft: '0.5em', padding: '5px' | |
, textAlign: 'center', verticalAlign: 'center' | |
} | |
}, [ | |
_sylera.external.element('span', { | |
style: { | |
paddingLeft: '15px' | |
, backgroundRepeat: 'no-repeat', backgroundImage: 'URL(data:image/gif;base64,R0lGODlhDAAMAJEAAGZmZv///////wAAACH5BAEHAAIALAAAAAAMAAwAAAIalA+ph5rMnDQSwLWaFZm/2FAIJJbXSG5epRYAOw==)' | |
, color:'gray' | |
, textDecoration: 'none' | |
} | |
}, [document.createTextNode('popup')]) | |
]) ); | |
} | |
// | |
}; | |
// ------------------------------------------------------------ | |
/* | |
_this_.suspend = function (){ | |
// | |
try { | |
with( document.getElementById('movie_player') ){ | |
setAttribute('swLiveConnect', 'true'); | |
Stop(); | |
stopVideo(); | |
} | |
} | |
catch(_e){ } | |
// | |
}; | |
*/ | |
// ------------------------------------------------------------ | |
_this_.show_description = function (){ | |
// | |
try { | |
document.getElementById('watch-description').className | |
= 'watch-expander yt-uix-expander'; | |
} | |
catch(_e){ | |
alert(_e.message); | |
} | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.element.js'); | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// | |
if( (/\/watch/i).test(location.pathname) ){ | |
// | |
_this_.add_link_popup(); | |
_this_.add_link_fmt(); | |
_this_.show_description(); | |
// | |
} | |
// | |
}; | |
// | |
})(); } // _autoexec_youtube | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_autoexec_youtube.init(_label); | |
} | |
// | |
_autoexec_youtube.suspend(); | |
// | |
})( '_autoexec_youtube' ); | |
// | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// command.autocomplete_on.js | |
// | |
// ==UserScript== | |
// @name command.autocomplete_on | |
// @version 0.9 | |
// @require ./_sylera.external.evaluateXPath.js | |
// @description サイトのログイン情報を記憶できるようにするコマンド | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// | |
try { _command_autocomplete_on; } catch(_e){ _command_autocomplete_on = new (function () { // | |
// | |
var _this_ = this; | |
// | |
var $ID = '_command_'; | |
// ------------------------------------------------------------ | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.evaluateXPath.js'); | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// | |
}; | |
// | |
})(); } // _command_autocomplete_on | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_command_autocomplete_on.init(_label); | |
} | |
// | |
var ac_forms = _sylera.external.evaluateXPath(document.body, '//form[@autocomplete]'); | |
for(var i=0; i<ac_forms.length; i++){ | |
ac_forms[i].setAttribute('autocomplete', 'on'); | |
} | |
alert(' -DONE- '); | |
// | |
})( '_command_' ); | |
// | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// command.ClearMemDiskCache.js | |
// | |
// ==UserScript== | |
// @name command.ClearMemDiskCache | |
// ==UserScript== | |
// | |
var classID = Components.classes["@mozilla.org/network/cache-service;1"]; | |
var cacheService = classID.getService(Components.interfaces.nsICacheService); | |
cacheService.evictEntries(Components.interfaces.nsICache.STORE_IN_MEMORY); | |
cacheService.evictEntries(Components.interfaces.nsICache.STORE_ON_DISK); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// command.toggle_css.js | |
// | |
// ==UserScript== | |
// @name command.toggle_css | |
// @version 0.9 | |
// @include | |
// @require ./_sylera.external.evaluateXPath.js | |
// @description スタイルシートの有効・無効を切り替えるコマンド | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// | |
try { _command_toggle_css; } catch(_e){ _command_toggle_css = new (function () { // | |
// | |
var _this_ = this; | |
// | |
var $ID = '_command_'; | |
// | |
_this_.$STAT = false; | |
// | |
// ------------------------------------------------------------ | |
// ------------------------------------------------------------ | |
_this_.toggle = function (){ | |
// | |
_this_.$STAT = (! _this_.$STAT); | |
// | |
var style_items | |
= _sylera.external.evaluateXPath(document.documentElement, '//style') | |
.concat( | |
_sylera.external.evaluateXPath( | |
document.documentElement | |
, '//link[contains(@href,".css") or @type="text/css"]' | |
) | |
); | |
// | |
for(var i=0; i<style_items.length; i++){ | |
style_items[i].disabled = _this_.$STAT; | |
} | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.evaluateXPath.js'); | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// | |
}; | |
// | |
})(); } // _command_toggle_css | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_command_toggle_css.init(_label); | |
} | |
// | |
_command_toggle_css.toggle(); | |
// | |
})( '_command_toggle_css' ); | |
// | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// command.webtool.js | |
// | |
// ==UserScript== | |
// @name command.webtool | |
// @version 0.95 | |
// @require ./_sylera.external.element.js | |
// @require ./_sylera.external.selection.js | |
// @require ./_sylera.external.charconv.js | |
// @require ./_sylera.external.localfile.js | |
// @description ページにツールバー的なものを組み込むコマンド | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// command | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// ------------------------------------------------------------ | |
// | |
try { _command_webtool; } catch(_e){ _command_webtool = new (function (_TOOL_ORDER) { // | |
// | |
var _this_ = this; | |
// | |
var $ID, $ID_SUB; | |
// | |
var $Z_INDEX = 19000; | |
// | |
var $bar, $bar_sub; | |
// | |
// ------------------------------------------------------------ | |
function assign_tool(_id, _button){ | |
// | |
$Z_INDEX += 10; | |
// | |
with( _button ){ | |
_button.id = $ID +'_tool_'+ _id; | |
style.zIndex = $Z_INDEX++; | |
} | |
// | |
$bar.insertBefore(_button, $bar_sub); | |
// | |
return _button.id; | |
}; | |
// ------------------------------------------------------------ | |
// | |
_this_.BTN_X = function (){ | |
return _sylera.external.element('img', { | |
alt: ' × ' | |
, src: 'data:image/gif;base64,R0lGODlhDAAMAMQAAOTk5L29vbq6uunp6d7e3ra2turq6sLCwrOzs+Xl5ejo6OHh4efn57S0tLm5ucHBwbu7u/b29vr6+v///7KysgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAMAAwAAAVBoBFQZEkGhmOulEoVw0M+TGEmk/Q80gSYkEiuF4GsgpNJkXXo5WSmplKoMwGUEOTC1CAYKRACgiRgmQQDF8uhCAEAOw==' | |
, | |
border: 0 | |
, className: 'btn_x' | |
, | |
onclick: (function (){ | |
this.parentNode.parentNode.removeChild(this.parentNode); | |
}) | |
}); | |
}; | |
// ------------------------------------------------------------ | |
_this_.add_frame = function (_frame){ | |
// | |
$Z_INDEX += 100; | |
// | |
_frame.style.zIndex = $Z_INDEX++; | |
// | |
$bar_sub.insertBefore( | |
_sylera.external.element('nobr', { | |
id: ($ID +'_frame_'+ $Z_INDEX) | |
, className: 'toolframe' | |
, style: { | |
display: 'block' | |
, height: _frame.style.height | |
} | |
, resize: 1 | |
}, [ | |
_this_.BTN_X() | |
, _frame | |
]) | |
, $bar_sub.firstChild | |
); | |
// | |
_this_.expand(true); | |
// | |
}; | |
// | |
_this_.expand = function (_stat){ | |
// | |
$bar.style.opacity = _stat ? '0.91' : '0.67'; | |
// | |
with( $bar_sub ){ | |
style.display = _stat ? 'block' : 'none'; | |
focus(); | |
} | |
// | |
}; | |
// | |
_this_.expand_toggle = function (){ | |
_this_.expand( (/^none$/i).test($bar_sub.style.display ) ); | |
}; | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
$ID_SUB = $ID +'_sub'; | |
// | |
try { | |
with( _sylera ){ | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.element.js'); | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.selection.js'); | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.charconv.js'); | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.localfile.js'); | |
} | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// ------------------------------------------------------------ | |
// | |
if(document.getElementById($ID +'_css') == null){ | |
// | |
(document.getElementsByTagName('head'))[0] | |
.appendChild( _sylera.external.element('style', { | |
// | |
id: $ID +'_css' | |
, type: 'text/css' | |
, innerHTML: [ | |
'#'+ $ID +'{' | |
, 'top:0;left:0;' | |
, 'width:100%;' | |
, 'margin:0;padding:1px;' | |
, 'border:dashed 1px black;' | |
, 'background-color:#f9f9f9;' | |
, 'font-size:13px;' | |
, 'text-align:right;' | |
, 'vertical-align:middle;' | |
, '}' | |
, | |
'#'+ $ID +' nobr{' | |
, 'font-size:small;' | |
, 'vertical-align:middle;' | |
, '}' | |
, | |
'#'+ $ID +' img{' | |
, 'padding:0 1px 0 2px;' | |
, 'align:center;' | |
, 'vertical-align:middle;' | |
, 'cursor:pointer;' | |
, '}' | |
, | |
'#'+ $ID +' img.btn_x{' | |
, 'float:right;' | |
, 'vertical-align:middle;' | |
, '}' | |
, | |
'#'+ $ID_SUB +'{' | |
, 'display:none;' | |
, 'direction:rtl;' | |
, 'overflow:scroll;' | |
, '}' | |
, | |
'#'+ $ID_SUB +' .toolframe{' | |
, 'direction:ltr;' | |
, 'width:99%; height:99%;' | |
, 'margin:1%;' | |
, '}' | |
, | |
'#'+ $ID_SUB +' .toolframe img.btn_x{' | |
, 'float:none;' | |
, 'padding:3px;' | |
, 'vertical-align:top;' | |
, '}' | |
, | |
'#'+ $ID_SUB +' .toolframe iframe{' | |
, 'display:inline;' | |
, 'position:relative;' | |
, 'direction:rtl;' | |
, 'width:97%; height:99%;' | |
, 'border:dashed 1px black;' | |
, '}' | |
// | |
].join('\n') | |
// | |
}) ); | |
// | |
} | |
// ------------------------------------------------------------ | |
// | |
$bar_sub = _sylera.external.element('center', { | |
id: $ID_SUB | |
, style: { | |
zIndex: ($Z_INDEX +1) | |
, width: '100%', height: (parseInt(window.innerHeight *0.67) +'px') | |
, clear: 'both' | |
, cursor: 'auto' | |
} | |
, | |
onmousedown: (function (_ev){ if(_ev.target.id == this.id){ this.style.cursor = 'n-resize'; } }) | |
, onmouseup: (function (_ev){ if(_ev.target.id == this.id){ this.style.cursor = 'auto'; } }) | |
, onmousemove: (function (_ev){ | |
if((/size$/i).test(this.style.cursor) && (_ev.button == 0)){ | |
this.style.height = (_ev.clientY +'px'); | |
} | |
}) | |
}, [ | |
]); | |
// | |
$bar = _sylera.external.element('div', { | |
id: $ID | |
, | |
style: { | |
position: 'fixed' | |
, zIndex: $Z_INDEX | |
} | |
, | |
ondblclick: (function (){ _command_webtool.expand_toggle(); }) | |
// | |
}, [ | |
_this_.BTN_X() | |
, | |
$bar_sub | |
, | |
_sylera.external.element('br', {clear:'all'}) | |
]); | |
// | |
_TOOL_ORDER.replace(/\w+/g, function (_$0){ | |
try { | |
assign_tool(_$0, _this_.$TOOL[_$0]()); | |
} | |
catch(_e){} | |
}); | |
// | |
document.body.insertBefore($bar, document.body.firstChild); | |
// | |
_command_webtool.expand(false); | |
// | |
}; | |
// | |
})([ | |
'subscribe' | |
, 'sendmail' | |
, 'del_icio_us', 'i_know' | |
, 'hatena_bm' | |
, 'star' | |
, 'twitter' | |
, 'ceron', 'topsy', 'backtweets', 'twib', 'tweetbuzz' | |
, 'haiku' | |
, 'posterous' | |
, 'tumblr' | |
, 'kwout' | |
, 'gyotaku', 'web_archive' | |
].join('|')); } // _command_webtool | |
// | |
// ------------------------------------------------------------ | |
// | |
_command_webtool.$TOOL = { // | |
// | |
// ------------------------------------------------------------ | |
hatena_bm: | |
// | |
(function (){ | |
// | |
var $_url = location.href | |
.replace(/^(http:\/\/www\.nicovideo\.jp\/watch\/([sn][mo])?\d+)\?.+$/i,"$1") | |
.replace(/^(http:\/\/(www\.)?youtube\.com\/watch\?v=[^&]+)\&.+$/i,"$1") | |
; | |
// | |
return _sylera.external.element('nobr', false, [ | |
// | |
_sylera.external.element('img', { | |
alt: '[B!]' | |
, src: 'data:image/gif;base64,R0lGODlhEAAMAJECAP///xhBzv///wAAACH5BAEAAAIALAAAAAAQAAwAAAIjVI6ZBu3/TlNOAovD1JfnDXZJ+IGl1UFlelLpC8WXodSHUAAAOw==' | |
, border:0 | |
, | |
onclick: (function (){ | |
var sel = _sylera.external.selection(); | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ( | |
'http://b.hatena.ne.jp/add?' | |
+ 'mode=confirm' | |
+ '&url='+ encodeURIComponent($_url) | |
+ '&title='+ encodeURIComponent( | |
document.title + ( | |
sel.childNodes.length | |
? (' - ' + sel.textContent.replace(/\r?\n/g,' ')) | |
: '' | |
) | |
) | |
) | |
})); | |
// | |
}) | |
}) | |
, | |
// | |
_sylera.external.element('img', { | |
alt: 'はてブ' | |
, src: ('http://b.hatena.ne.jp/entry/image/'+ $_url.replace(/#/,'%23')) | |
, border: 0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ('http://b.hatena.ne.jp/entry?mode=more&url='+ encodeURIComponent($_url)) | |
})); | |
}) | |
}) | |
// | |
]); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
gyotaku: | |
// | |
(function (){ | |
// | |
var link = _sylera.external.element('a', { | |
title: '魚拓' | |
, | |
href: ('http://megalodon.jp/?url='+ encodeURIComponent(location.href.replace(/#.*$/,''))) | |
, style: { | |
display: 'inline' | |
, padding: '3px' | |
, background: '#6699cc none' | |
, color: 'black' | |
, font: 'bold 13px fantasy' | |
, textDecoration: 'none' | |
} | |
}, [ document.createTextNode('魚') ]); | |
// | |
link.addEventListener('click', (function (_event){ | |
_event.preventDefault(); | |
_command_webtool.add_frame( _sylera.external.element('iframe', { | |
src: link.href | |
}) ); | |
}), false); | |
// | |
return link; | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
web_archive: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt:'Internet Archive' | |
, | |
src: 'data:image/gif;base64,R0lGODlhEAAQAPEDAAAAAKkqMKstMv%2F%2F%2FyH5BAAAAAAALAAAAAAQABAAAAI3nI9pEdMNojzMWTnXuwN0r1lQ91Hb6EWmSKagc7ZluKUzzNoqzblr3XpVgL6QoHdjKFE3hdNQAAA7' | |
, border:0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame( _sylera.external.element('iframe', { | |
src: ('http://web.archive.org/web/*/'+ location.href.replace(/#.*$/,'')) | |
}) ); | |
}) | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
subscribe: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: '[購読]' | |
, | |
src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJFSURBVBgZBcHda5V1AADg5/d733Oc7tjOaNs5GC6KdrEwmpPRxG7spoKghOim7oK8y0MIEQRL+geGEIQ3UXQvSJ8IafZxUbjQhRDZoU60iYsSc9t5v87b84TsVe3mrBWpHoCICIAIACixYTUfOJM2Z62YO97TOULSIKaEQAyESAzEgISAgLpi48de87MLUqmezhGyhO4SCW7f4O81YiSJiCQIkbqmNcXMIjMXeilIGsQxDp8AnKDY5teL3PyU6h4CdY3Av7cYu58R0QghZWeT9fP0v2V7i8Y4j77As2c5sAwIFAXDgjInJxURAzub/PwxMZBGphZYeIWJWZ44xdo5bl4kK8kzioohUUREd4kXP+Kpd3nkee72+epNBleAxdfoLJBlDEuKkpxoBAkBjXGm53n8ZZ45S/shrr7P75eBo6eo9zAsKCqGRBEB/1zj89e5eo7tLRr7ePJtWg9wZZV7t2i2OPQcw5JiRE4UESN1ZPc2g0tceos/LtPYx9HTaPDNe8Dhl9gtyStyUiMIJDXLp2m0GHzN2gdMzdPq0F3k+pcc/4+x/UwepKzIiSDWTB/iwBLT8xw8xt07rJ8HHj7GbkX/B+DBxyhrciIQ2N2i2AG2fiPL+OsXoNVlWPDnDaC5l6qiJJWjLlHxxRs0JhhcIyvp/8SHJylKdiu++4Tr31NW7B8nkrwzp627d9nkHM0Wsea+GSY6tDvESEyY6TIxyZ4GSUp/nTubqyF7WrvZtaKrZ4QSQ+TIMUSJHCVypGhaHW448z+h1tLAgvKk7gAAAABJRU5ErkJggg==' | |
, border: 0 | |
, | |
onclick: (function (){ | |
// | |
var url = location.href.replace(/#.*$/,''); | |
var subscr_list = [ | |
'https://www.bloglines.com/sub/'+ url | |
, 'http://reader.livedoor.com/subscribe/'+ url | |
]; | |
// | |
var block = _sylera.external.element('div', {style: {display:'inline'}}); | |
for( | |
var i=0, split_size=Math.round(97/subscr_list.length) | |
; i<subscr_list.length | |
; i++ | |
){ | |
block.appendChild( _sylera.external.element('iframe', { | |
src: subscr_list[i] | |
, style: { | |
float: 'right' | |
, display: 'inline' | |
, width: split_size +'%' | |
} | |
}) ); | |
} | |
// | |
_command_webtool.add_frame(block); | |
}) | |
// | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
del_icio_us: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: 'del.icio.us' | |
, | |
src: 'data:image/gif;base64,R0lGODlhCgAKAPcAAAAAAAAA/93d3f///wAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zAAAACH5BAEAABAALAAAAAAKAAoAAAgrAAcIFBigYMGBBA0GQDhA4UKEDhk6BECRooCLFytaxChAIwCOHTWC9AgyIAA7' | |
, border: 0 | |
, | |
onclick: (function (){ | |
var sel = _sylera.external.selection(); | |
_command_webtool.add_frame( _sylera.external.element('iframe', { | |
src: ( | |
'http://del.icio.us/post?v=4' | |
+ ';url='+ encodeURIComponent(location.href) | |
+ ';title='+ encodeURIComponent( | |
document.title + ( | |
sel.childNodes.length | |
? (' - ' + sel.textContent.replace(/\r?\n/g,' ')) | |
: '' | |
) | |
) | |
) | |
}) ); | |
}) | |
// | |
}); | |
// | |
}) | |
, | |
// ------------------------------------------------------------ | |
tumblr: (function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: '[T]' | |
, | |
src: 'data:image/gif;base64,R0lGODlhEAAQAPcAAE5SVv///xkbHx8iJx0gJA0OEB0gJSsvNS0xOC4zOg4QEicrMQkKDENERERERAsMDRUXGgcICgcJCkxPUxseIRsdIhESFURISzA1Ow4QEw8QEgwOECUpLhsdISotM0hMTxETFQsMDh8iJhMUFycrMDA0Ow8REwYGBzM4PxocISQnK8bHyCktM1lcXx0fIQ0ODxEUFgwNDy0wOE1RVV5hZVxfY3V2dnR1dhESFEZJTgkJC1xeYiAjKWZnZyYmJxMVFgYGCBcZHTA1PGFkaTE2PSktNKanqCQoLTY7QyYpLiMmLAwMDx0fJR0fJAQEBCYoLiEkKRcYHBIUFwwNEHJzdgoKC2Vna4WFhg0OESElKTY6QTQ5QCUpLyElKqOkpDQ5QSIkKQoLCywxOExQVImKiyMnLAMEBC4zOTc4ORseIjE2PjU6QisvNhcZHAcICRYYG9DQ0BocHQsLDiIkKgoLDVpcYAUFBhASFUNDRCEjJhUWGcnKywQFBnp7gEpOUtTU1EVGR4GBgUZKTfDw8BASFDI2Pi8zOSMnK4GBggICAzI4PyEkKkdKThwfIyQnLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAQABAAAAj/AJFo+YKiUIkzCA6wIPHEUZcBBtYAmEixYkUKWwCowZAAARsPCzgcWiSiCQABigBgMDSkT40ddVpYoZImBYAoRAB03BOgp89Bed4A0CMEgJgcAYzE6QnIRoAeFiaMSADgAI0VLkz0bBDCy40NHyzIAFCESyMIAno60ABiCpYPGg4AWHCEBwEDahX8AJFhTAEPADiUASOCwNYCMO4oABBiAQAlcyB26IlnCaEMGwBUSQIgC8QKf3rCQVPgxQMAblQAGECggwAyVxAF8kHnQRgAJ6AAYEJBQJARMXREkMCAQQQAfAZYnMDowgVBfmZMNEOggoA2EKTgUFBADgMJQOw4A0kUEAA7' | |
, border: 0 | |
, | |
onclick: (function (){ | |
// | |
var sel = _sylera.external.selection(); | |
var sel_text | |
= sel.childNodes.length | |
? (confirm('HTML') ? sel.innerHTML : sel.textContent) | |
.replace(/\r\n/g,'\n').replace(/\n{2,}/g,'\n') | |
: "" | |
; | |
// | |
var block_height = parseInt(window.innerHeight *0.67); | |
// | |
_command_webtool | |
.add_frame( _sylera.external.element('div', {style: {display:'inline'}}, [ | |
// | |
_sylera.external.element('iframe', { | |
src: ( | |
'http://www.tumblr.com/share?' | |
+ 'v=5' | |
+ '&u='+ encodeURIComponent(location.href.replace(/%23/,'#')) | |
+ '&t='+ encodeURIComponent(document.title) | |
+ '&s='+ encodeURIComponent(sel_text) | |
) | |
, | |
style: { | |
display: 'inline' | |
, float: 'left' | |
, width: '60%' | |
, height: block_height +'px' | |
} | |
}) | |
, | |
// | |
_sylera.external.element('textarea', { | |
innerHTML: sel_text | |
, style: { | |
display: 'inline' | |
, width: '37%', height: block_height +'px' | |
, backgroundColor: '#1f1f1f' | |
, color: '#ffffff' | |
} | |
, onfocus: (function (){ this.select(); }) | |
}) | |
// | |
]) ); | |
// | |
}) | |
// | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
kwout: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: 'kwout' | |
, | |
src: 'data:image/x-icon;base64,AAABAAEAEBAQAAEABAAoAQAAFgAAACgAAAAQAAAAIAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAB8AvwAyJP8APDZ/ACmQ/wA1qz8AP///wC1ZPwAkB38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIJnSIiIiIiIhgABiIiIiBMmdnFDSIiGAAEoJgAEiIYHAYiDBwGIhEhCiIJIQogTYoiIiIIzSAADiIiIJwAIdnaIiIiDc3goIoiIiIKIKIJnEoiCZxiIhgABiIYAAYiGdnRDJnNxiIgoJgABKCiIiIiGAwSIiIiIiIiIiIiIj8PwAA/B8AAOADAADAgQAAwcEAAMnJAACH8AAAh+AAAIfwAACn9gAAwcMAAMHBAADAAQAA6AsAAPwfAAD//wAA' | |
, border: 0, alt: '[K]' | |
, | |
onclick: (function (){ | |
// | |
if( confirm('inline ?') ){ | |
// | |
document.body.appendChild( _sylera.external.element('script', { | |
language: 'javascript' | |
, src: ('http://kwout.com/javascripts/everywhere.en.js?t='+(new Date()).getTime()) | |
, type: 'text/javascript' | |
, charset: 'UTF-8' | |
}) ); | |
// | |
return 1; | |
} | |
// | |
var b=document.body, e=document.documentElement, h=100, s=self, y=0, w=window; | |
y = s.pageYOffset | |
? s.pageYOffset | |
: ((e && e.scrollTop) ? e.scrollTop : b.scrollTop) | |
; | |
// | |
h = (w.innerHeight && w.scrollMaxY) | |
? (w.innerHeight + w.scrollMaxY) | |
: ((b.scrollHeight > b.offsetHeight) ? b.scrollHeight : b.offsetHeight) | |
; | |
// | |
_command_webtool.add_frame( _sylera.external.element('iframe', { | |
src: ( | |
'http://kwout.com/grab?' | |
+ 'address='+ encodeURIComponent(location.href) | |
+ '&scroll='+ (y / h) | |
) | |
}) ); | |
// | |
}) | |
// | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
sendmail: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: '[@]' | |
, | |
src: 'data:image/gif;base64,R0lGODlhEAAQALMAAATy1IO0YR98Bi5VkJGx4s/h+1eKyWShO+vy/KTIjUBzuv///3qc0kWPF7DL75S+9CH5BAEAAAAALAAAAAAQABAAAARrEMhJq72UacO7N8pAIMhiniipMMhIvjBRGKzjwiTxIBxS2LjWw8Ez+H6uBeJwKBSKpJ/tSTgEmjyFz+FkMgOJQyOL4JIOiXQCLDYMcOiAXB4WDBR4PFrNtlsagA1oBwICGBMChIaHEoWLABEAOw==' | |
, border: 0 | |
, width: 16, height: 16 | |
, | |
// | |
onclick: (function (){ | |
window.open( | |
'mailto:?' | |
+ 'Subject='+ escape( _sylera.external.charconv( | |
prompt('subject:', document.title),'Shift_JIS' | |
) ) | |
+ '&Body='+ escape( | |
location.href.replace(/\+/g,'%20') | |
+ '\r\n-----\r\n' | |
+ _sylera.external.charconv(_sylera.external.selection().textContent, 'Shift_JIS') | |
) | |
, | |
'_mail' | |
); | |
}) | |
// | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
i_know: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: 'i-know' | |
, | |
src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAMAAABcOc2zAAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAMUExURf///39/fxkZGf///9xAtRAAAAAEdFJOU////wBAKqn0AAAAZklEQVR42mJgZkQBzAABxMDIgAIYAQKIgZEJAmACAAEEFGBggCCIAEAAAbUwgSEIAElGgAACmQHWwAQVAAggsKEQDtgoRoAAggowwVUABBCGAEAAoQiAbAEIIAyHAQQQA7rTAQIMADfUAIeR/mmoAAAAAElFTkSuQmCC' | |
, border: 0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame( _sylera.external.element('iframe', { | |
src: ('http://i-know.jp/add.cgi?bookmarklet=1&url='+ escape(location.href)) | |
}) ); | |
}) | |
// | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
twib: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: 'Twib' | |
, src: ('http://image.twib.jp/counter/'+ location.href.replace(/#/,'%23')) | |
, border: 0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ('http://twib.jp/url/'+ location.href.replace(/#/,'%23')) | |
})); | |
}) | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
tweetbuzz: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: 'tweetbuzz' | |
, src: ('http://tools.tweetbuzz.jp/imgcount?url='+ location.href.replace(/[&#]/g, encodeURIComponent)) | |
, border: 0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ('http://tweetbuzz.jp/redirect?url='+ location.href.replace(/[&#]/g, encodeURIComponent)) | |
})); | |
}) | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
// | |
twitter: | |
// | |
(function (){ | |
// | |
var $_fix = { | |
// | |
'b.hatena.ne.jp': { | |
url: location.href.replace(/:\/\/b\.hatena\.ne\.jp\/entry\//i,'://') | |
, title: document.title.replace(/^はてなブックマーク\ \-\ /,'') | |
} | |
, 'www.nicovideo.jp': { | |
url: location.href.replace(/\?.+$/,'') | |
, title: document.title.replace(/\ \-\ ニコニコ動画.+$/, ('#'+ location.pathname.match(/[ns][mo]\d+/))) | |
} | |
}; | |
// | |
var $_via = { | |
'nhk.or.jp': { | |
'news': 'nhk_news' | |
, 'kabun-blog': 'nhk_kabun' | |
} | |
, 'b.hatena.ne.jp': 'hatebu' | |
, 'slashdot.jp': 'slashdotjp' | |
, 'jaxa.jp': 'JAXA_jp' | |
, 'togetter.com': 'togetter_jp' | |
, 'youtube.com': 'youtube' | |
// ... | |
}; | |
// | |
_command_webtool._tool_twitter_counter_id = '_command_webtool_tool_twitter_counter'; | |
_command_webtool._tool_twitter_counter_cb = function (_data){ | |
document.getElementById(_command_webtool._tool_twitter_counter_id) | |
.innerHTML = _data.count | |
; | |
}; | |
// | |
return _sylera.external.element('tt', { | |
style: { | |
display: 'inline' | |
, padding: '2px' | |
, background: '#cfcfcf none' | |
, align: 'center' | |
} | |
}, [ | |
// | |
_sylera.external.element('img', { | |
alt: 'pipe' | |
, src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHDSURBVHjaYvz//z8DCgAIIEYUERAHIIAYGGrf719x7+d/ID0fRDPBZFckciVEKLEzAgQQI7opTCvv/wKLMNZ9eA9h176/D8T2cCUgg8CGQgFAAIFUrK87+u1/8f6v/9HFQBhu67dfYAl+KPfDtRf/GECYESgYryXBtACm8OG7fx++1goKwvgsQBwQYsAKN/30o78C25GcDRBAGP5AByxZu779F+VhZOjd9xNsNEgDTGzGkV8fmOxVWRi0JJkZ5IWYBECOBAbAeZiYnQqLAMua878ZgI5kePTu3wOgiRf+Nwkoeq348p+bjZFh+7XfHyBBXvteHkrXo7uBUazzw3sRHkYBmADQ7wYMzYIX4Y6cFMopgKwjYv63CUDKEa5g29XfDApCTMhqDiBzAAKMERq8BWhWb0C2BuQ+oO+wqTsACukNwNThgCzatP1HwzWg+9ENRVcHCiEWXDEAtbUfyAQF30Rsar4C0xvMCwmgOIcqvgDEoMRhABZrFixEMtAezYwLiORf+/48KD6Q+PHY4gUjnkDZZm4UpwM3OyNWBQ/e/mOo2PQDFKiB2OTB8YNLMwgoCIOVCOBzAbboQQYfgLZPxCUJALox2l6RzUFYAAAAAElFTkSuQmCC' | |
, border: 0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ('data:text/html;charset=utf-8,'+ encodeURIComponent([ | |
'<html>' | |
, '<head>' | |
, '<title> '+ location.href +' </title>' | |
, '<style>' | |
, 'h3{ display:none; }' | |
, 'li{ font-size:x-small; }' | |
, '</style>' | |
, '</head>' | |
, '<body>' | |
, '<script type="text/javascript" src="http://l.yimg.com/a/i/us/pps/listbadge_1.4.js">' | |
, '{_btype:"list", pipe_id:"caf00625d6255d7c35219d9d2d329a71",pipe_params:{q:"'+ location.href +'"}, width:"99%",height:"99%"}' | |
, '</script>' | |
, '</body>' | |
, '</html>' | |
].join('\n'))) | |
})); | |
}) | |
}) | |
, | |
_sylera.external.element('img', { | |
alt: 'ヒ' | |
, src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAxMS8xNC8wOb/e6gkAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABPUlEQVQ4jZWSsU7DMBCGvyQuGcKAhJAsKkYEU1+gQ16hYusb8ALsrDxHB8b2FRi6dWJiQWKpFKkj2JC4thlKSdJEjXKSpdP5/z/dnR2sVqszYAGk9IsXYCKAhZQyHQ6Hvdzr9TrNsmwhgFRKibW2F0BKSZZlqQBq5twFGL/LBwHEoT8KagAMgsnbAIDZteEisgRdAOfcf8GHoP547z8Bp4koxd4ivG0CavOHZfrwUZqTCOa3nmBbdAAGR/o91LYBqvPeS8vd+W68LwuYohsgKpfK1tfnnMd1AcKtYZQIXlXAbBMy2+yWkkQwv/EY/VkDhHvA/phvxePVllHSfH9/oG3twGqFcI6ny4ToJC7N3mG0at9B9R8AFFpRaNXooC0EsNRaj+M47hRXI89zgKUApnmePxdFMe4D8N4vgekve0CpPyHgmZ4AAAAASUVORK5CYII=' | |
, border: 0 | |
, align: 'middle' | |
, | |
style: {padding: '2px'} | |
, | |
onclick: (function (){ | |
// | |
var info = $_fix[location.host] || {url:location.href, title:document.title}; | |
info.via = (function (__host, __path){ | |
var domain = __host.replace(/^w{2,}\d*\./i,''); | |
var account = $_via[__host] || $_via[domain] || domain; | |
return ((typeof account == 'string') ? account : (account[__path] || domain)); | |
})(location.host, (location.pathname.split('/'))[1]) | |
// | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ( | |
'https://twitter.com/share?' +[ | |
'url='+ encodeURIComponent(info.url) | |
, 'via='+ info.via | |
, | |
'text='+ encodeURIComponent([ | |
document.getSelection() | |
.replace(/「/g,'『').replace(/」/g,'』') | |
.replace(/\r?\n/g,'\\n').replace(/^(.+)$/,"「$1」") | |
.replace(/\\n/g,'\n') | |
, info.title | |
].join(' ')) | |
].join('&') | |
) | |
, style: {height: '275px'} | |
})); | |
}) | |
}) | |
, | |
// | |
_sylera.external.element('a', { | |
'id': _command_webtool._tool_twitter_counter_id | |
, title: 'twitter' | |
, href: 'https://search.twitter.com/search?q='+ encodeURIComponent(location.href.replace(/#/,'%23') +' filter:links -RT') | |
, target: 'twitter' | |
, style: { | |
color: '#101010' | |
, font: 'bold 11px monospace' | |
, textDecoration: 'none' | |
} | |
}, [ document.createTextNode('0') ]) | |
, | |
// | |
_sylera.external.element('script', { | |
'type': 'text/javascript' | |
, 'src': 'http://urls.api.twitter.com/1/urls/count.json?' | |
+'url='+ encodeURI(location.href) | |
+'&callback=_command_webtool._tool_twitter_counter_cb' | |
}, []) | |
// | |
]); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
backtweets: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: 'backtweets' | |
, src: 'data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD///8A2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f////8A2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/b29v/29vb/9vb2//c3Nz/3t7e/+Dg4P/g4OD/39/f/93d3f/b29v/29vb/9vb2//b29v/29vb/9nZ2f/Z2dn/3t7e/97e3v/e3t7/5OTk/9LS0v/X19f/19fX/9XV1f/n5+f/5OTk/9/f3//e3t7/3t7e/97e3v/Z2dn/2dnZ/+Li4v/i4uL/4uLi/+7u7v93d3f/d3d3/3d3d/93d3f/f39//9zc3P/l5eX/4uLi/+Li4v/i4uL/2dnZ/9nZ2f/m5ub/5ubm/+bm5v/y8vL/d3d3/7u7u///////5eXl/3d3d/+5ubn/6+vr/+bm5v/m5ub/5ubm/9nZ2f/Z2dn/6urq/+rq6v/q6ur/9PT0/3d3d/+ZmZn/u7u7/5mZmf93d3f/0dHR/+3t7f/q6ur/6urq/+rq6v/Z2dn/2dnZ/+7u7v/u7u7/7u7u//b29v93d3f/iIiI/5mZmf+IiIj/iIiI//Hx8f/v7+//7u7u/+7u7v/u7u7/2dnZ/9nZ2f/y8vL/8vLy//Ly8v/4+Pj/d3d3/7u7u//u7u7/w8PD/3d3d//Z2dn/8/Pz//Ly8v/y8vL/8vLy/9nZ2f/Z2dn/9vb2//b29v/29vb/+vr6/3d3d/93d3f/d3d3/3d3d/+QkJD/8vLy//b29v/29vb/9vb2//b29v/Z2dn/2dnZ//r6+v/6+vr/+vr6//v7+//b29v/3Nzc/9zc3P/19fX//Pz8//v7+//6+vr/+vr6//r6+v/6+vr/2dnZ/9nZ2f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/9/f3//f39/9nZ2f/Z2dn////////////////////////////////////////////////////////////////////////////Z2dn/2dnZ////////////////////////////////////////////////////////////////////////////2dnZ/9nZ2f///////////////////////////////////////////////////////////////////////////9nZ2f////8A2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f/Z2dn/2dnZ/9nZ2f////8AgAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAEAAA==' | |
, border: 0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ('http://backtweets.com/search?q='+ encodeURIComponent(location.href) +'&page=1') | |
})); | |
}) | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
haiku: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('img', { | |
alt: "['-']" | |
, src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAABeUlEQVQ4y72SSy8DURTHf3dmtEKFkHrVIzYSYSVGYlU26lOYryBiK7FGxE4ssfXYCJ8Ai9auEuPdKCURIeqZmbkWmJrREpE4q3vPuf9fzvmfC38MAWBOT8nfClOmSf/MrNA+JwqGlDhSIoRACAHAZToNgJLvsZTehpRAEH14hLL6CPhrfnEo0kBLbADHstxcYzRKZWsr7YaBY9seifb54jg2HYZBWWMTN0eH3BwcgBDcnhy/GfbefkGAQPCSvQegNFz9BgCud3fZX1nhaieJoqrfABSFvaVFmnr7yCQSuTk1jaO1Vfdc2AMhyJ6lSS7M4bw8e7yp7dLpnZjKeZMXAEjHoaqtDTUQyHljWdR0dhKsKP9hC4BaXELX0DA9o2MEQiGsxwea+2PU6t0cr68hfCNofoD99MDO/BztgwbR8Uk3f7GdwFxeQi0q+h4gVJWzzQ0y8Th1uk5JOEwmHucuffpFnBfwsQ1pW5xvbbrm+t33AFKm6f7tf49X1xOJ5323Hq4AAAAldEVYdGNyZWF0ZS1kYXRlADIwMDgtMTEtMDJUMjA6MTk6NDkrMDk6MDC+eCKnAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA4LTExLTAyVDIwOjE5OjQ5KzA5OjAw4clUkwAAAABJRU5ErkJggg==' | |
, border: 0 | |
, | |
onclick: (function (){ | |
// | |
var url = location.href; | |
// | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ( | |
'http://h.hatena.ne.jp/touch/' | |
+ ( | |
confirm('keyword ?') | |
? ('keyword/'+ url).replace(/[:\&\?]/g,encodeURIComponent) | |
: ('?_charset_=utf-8&body='+ encodeURIComponent(_sylera.external.selection().textContent.replace(/\r\n/g,'\n').replace(/\n{2,}/g,'\n \n').replace(/^/mg,'> ') +'\n['+ url +':title='+ document.title +']\n')) | |
) | |
) | |
})); | |
}) | |
}) | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
star: | |
// | |
(function (){ | |
// | |
var $_star_btn = _sylera.external.element('input', { | |
type: 'button' | |
, value: '-' | |
, title: ' ★ ' | |
, | |
style: { | |
cursor: 'pointer' | |
, width: '3.5ex', height: '16px' | |
, margin: '2px 1px -1px 1px' | |
, border: 'none 1px' | |
, backgroundColor: 'transparent' | |
, backgroundRepeat: 'no-repeat' | |
, backgroundImage: 'URL(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIxSURBVHjaYnz9/D4DLrBkxYYoAQG+pR8+fIqOiQhYhk0N079//xiwYaBmCQ4O9qWmRnogdZm41DH9//+fARsGgnB5WWkGEWFBBh5uLptlqzYpYlOH0wVAECUnIwlmy8tJg/ix2NSxrFy7lRkoaQD1EhsQ64IYQFvNgP4HK5IFGnT1+u0ooNoXQKnvQHwNqv4LCyMj4x8Bfl5IgDAxMfDx8YDZosJCMJcwcHNxMqirKqr/+v175t+//xg+f/4CFv/z5y8DC9Af/sDA2mhsoMPAysqCEsIwA0BAS0MFRe7jp88MJ89cYmCeNqnr5tnzVzmePHtpIwh0MjsbKwOugIXhR4+fMZw6e4nh589f6Yy3r58Hm7hlx4FkZmamOdpAm+RkpbCmC5Dzr1y7xfD46YsFQO50Hw+HU4w3r56FK9i26xAoMOdYWxgZ80PDAhncufeI4dadB31ebnbFMDGWv3//Iqt5BAwHY24uDgY0cTCABrYZshwTWtx7CAsJgP0J4v/69ZsBGDZweT5ebgY2VlabnXuPimJNiUDgLQI14M3b9wzHTl0Axv+dBWfOX2X49v0H2EYxUSEQFYKREvccOMEMTBNRoHRw7eY9hvOXbuwAhrK/k51Z4vsPn8pOnL7E8OTpCwZhIX6wRfCUCLUZBKRBUXju4nWGHz9+VjramnaABEHyQHb3/sOnd9+4/SATGA5poBiA6WO8cOYIPECAiuSAFDNQA848DlRjD5Q/COMDBBgA5+mEjLsOAgUAAAAASUVORK5CYII=)' | |
, color: '#666666' | |
, fontSize: '13px' | |
, fontWeight: 'bold' | |
, textAlign: 'center' | |
} | |
, | |
onclick: (function (){ | |
// | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: [ | |
('http://s.hatena.ne.jp/mobile/entry?uri='+ encodeURIComponent(location.href)) | |
, ('location='+ encodeURIComponent(location.href)) | |
, ('title='+ encodeURIComponent(document.title)) | |
].join('&') | |
, style: {height: '200px'} | |
})); | |
}) | |
}); | |
// | |
_command_webtool._tool_star_counter_cb = function (_data){ | |
if( Math.abs($_star_btn.value = (_data.entries[0] || {stars:[]}).stars.length) ){ | |
with( $_star_btn ){ | |
style.color = '#666600'; | |
style.backgroundImage = 'URL(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIiSURBVHjahFM9aBRREP7m7d5uDhM2OfVyQe9AG5uLP0RTSCDYKSFeIwgnFqIodkJAooWtoiiCRVSuSBMFG/8QREQMgkUQQYxaBoNK4g8YNO7/e87u/Xhn9nRgeDPv+2Z25s0sKXsU7cQZf1GmXHpKLdgHOs5tv5HEEZASScrBOepKTaX25iPe8XY8ThAiUYH9omhBFNKgHmPIOf1yQxLvXwnKWr8V29qW7sg/mMTTnTOzGoNbay0ZrP2RQRljUPSlgDCAVuxE8PRzmbkLDNmsb2v8nzoIgciZVVcjUNaoPg6XHgXHyboF9J09m5QTXoOvoL568b3yFHQolNCp3TVG1wCmaH3iWoJI9GGrBZKLHvzbX0Dy4w645z+cJUsfT5UyoJyB/0k4u4zg0XcgUMdIzlfbdy8uHoZOFX1XF7TN6eTIQCF4/APhG3uSvQlzrHeG5FyxgbuXv0XZKkbZGqCsvvLLMzaC578umSdWjzVaa+6TZR4dNECZ1v7rQn0UHYPNmIidugK7RZ6nKmu+7XO5TgMXWU6SpiH3ytLaxt1fyzOiFSi25Xsf3k0u+Yk76d+xoZY4QPHmbYwntW/FJrpXHY13oky9/FDTPKIH3kO1rErm0dQh+Ume9G65XI0PkY/bGGlKUPsxgHW0CvDvBwjfyVPmEW0P670I4/MCfGwLnoXXw1dxpRP1OJKv1/+ZQiUsRPvIAXPtdoA5w4xP1/3fAgwAwNYtf4JjIOIAAAAASUVORK5CYII=)'; | |
} | |
} | |
}; | |
// | |
return _sylera.external.element('nobr', false, [ | |
$_star_btn | |
, _sylera.external.element('script', { | |
'type': 'text/javascript' | |
, 'src': ('http://s.hatena.ne.jp/entry.simple.json?timestamp=1&callback=_command_webtool._tool_star_counter_cb&uri='+ encodeURI(location.href)) | |
}) | |
]); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
ceron: | |
// | |
(function (){ | |
// | |
var link = (location.host + location.pathname + encodeURIComponent(location.search)); | |
// | |
return _sylera.external.element('img', { | |
alt: 'ceron' | |
, src: ('http://ceron.jp/countimg/'+ link) | |
, border: 0 | |
, | |
onclick: (function (){ | |
_command_webtool.add_frame(_sylera.external.element('iframe', { | |
src: ('http://ceron.jp/url/'+ link) | |
})); | |
}) | |
}); | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
topsy: | |
// | |
(function (){ | |
// | |
return _sylera.external.element('a', { | |
title: 'topsy' | |
, href: ('http://topsy.com/'+ location.host + location.pathname + encodeURIComponent(location.search) +'?contains=-RT') | |
, target: ('topsy' + (new Date()).getTime()) | |
}, [ | |
_sylera.external.element('img', { | |
alt: 'topsy' | |
, src: 'data:image/x-icon;base64,AAABAAEAEBAAAAAAAABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAQAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AACG+wAAeN8AAH/uAAB85wAAg/UAAIj/AACB8gAAfuoAAHrkAACF+AAAh/0AAHnhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEAAAAAAAAAAAAAAAEDAwMDAQAAAAAAAAAAAAABDQ0NDQEAAAAAAAAAAAAAAQoKCgoBAAAAAAAAAAAAAAEFBQUFAQAAAAAAAAAAAAABCQkJCQEAAAAAAAAAAAAAAQQEBAQBAAAAAAAAAAAAAAEICAgIAQAAAAAAAAAAAQEBBgYGBgEBAQAAAAAAAQsLCwsLCwsLCwsBAAAAAAECAgICAgICAgICAQAAAAABDAwMDAwMDAwMDAEAAAAAAQcHBwcHBwcHBwcBAAAAAAABAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD8PwAA+B8AAPgfAAD4HwAA+B8AAPgfAAD4HwAA+B8AAOAHAADAAwAAwAMAAMADAADAAwAA4AcAAP//AAA=' | |
, border: 0 | |
}) | |
]) | |
// | |
}) | |
// ------------------------------------------------------------ | |
, | |
posterous: | |
// | |
(function (){ | |
// | |
window.POSTEROUS___bookmarklet_domain = 'http://posterous.com'; | |
// | |
return _sylera.external.element('img', { | |
alt: ' [p] ' | |
, | |
src: 'data:image/png;base64,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' | |
, border: 0 | |
, | |
onclick: (function (){ | |
// | |
document.body.appendChild( _sylera.external.element('script', { | |
charset: 'UTF-8' | |
, type: 'text/javascript' | |
, src: ('http://posterous.com/javascripts/bookmarklet2.js?'+ (new Date())) | |
}) ); | |
// | |
}) | |
// | |
}); | |
// | |
}) | |
// | |
}; | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
if(! document.body){ return; } | |
// | |
try { | |
// | |
document.body.removeChild( document.getElementById(_label) ); | |
// | |
} | |
catch(_e){ | |
// | |
_command_webtool.init(_label); | |
// | |
} | |
// | |
})( '_command_webtool' ); | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// context.fget.js | |
// | |
// ==UserScript== | |
// @name context.fget | |
// @version 0.9 | |
// @require ./_sylera.external.charconv.js | |
// @require ./_sylera.external.localfile.js | |
// @description FlashGetでダウンロードするための補助スクリプト | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// | |
try { _context_fget; } catch(_e){ _context_fget = new (function () { // | |
// | |
var _this_ = this; | |
// | |
var $ID = '_context'; | |
// | |
var $outpath; | |
// | |
// ------------------------------------------------------------ | |
_this_.get = function (_itemlist){ | |
// | |
var xml_body = new Array(); | |
var add_text; | |
try { | |
add_text = (document.getSelection() +'').replace(/^\s+/g,'').replace(/\s+$/g,''); | |
} | |
catch(_e){ | |
add_text = ''; | |
} | |
// | |
for(var i=0; i<_itemlist.length; i++){ | |
// | |
var item = _itemlist[i]; | |
// | |
xml_body.push([ | |
'<f_item>' | |
, '<url><![CDATA['+ item.href +']]></url>' | |
, '<comment><![CDATA[' | |
+ _sylera.external.charconv( | |
(item.textContent +'\n\n'+ (add_text.length ? add_text : document.title)) | |
, 'UTF-8' | |
) //.replace(/\]\]\>/g,']] >') | |
+ ']]></comment>' | |
, '</f_item>' | |
].join('\n')); | |
} | |
// | |
try{ | |
// | |
_sylera.external.localfile.fileout($outpath, [ | |
'<?xml version="1.0"?>' | |
, '<fget>' | |
, '<ref><![CDATA['+ location.href +']]></ref>' | |
, xml_body.join('\n') | |
, '</fget>' | |
].join('\n')) | |
} | |
catch(_e){ | |
alert('[error] save xml : '+ _e.message); | |
return false; | |
} | |
// | |
return _sylera.external.localfile.run( | |
'C:\\WINDOWS\\SYSTEM32\\wscript.exe' | |
, [ | |
'C:\\Program Files\\FlashGet\\flashget.wsf' | |
, '//job:fget_xml' | |
, $outpath | |
] | |
, true | |
); | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
$outpath = (_sylera.__EXTENSION_DIR__ +'/'+ $ID +'.xml') | |
.replace(/\//g,'\\') | |
; | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.charconv.js'); | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.localfile.js'); | |
} | |
catch(_e){ | |
alert('[include error]'+ _e.message); | |
return ; | |
} | |
// | |
}; | |
// | |
})(); } // _context_fget | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_context_fget.init(_label); | |
} | |
// ------------------------------------------------------------ | |
// | |
var $active = _sylera.API.getActiveDOMNode(); | |
var link, tag; | |
// | |
try { | |
// | |
do { | |
// | |
try { | |
if((tag = $active.tagName.toLowerCase()) == 'a'){ | |
link = $active; | |
break; | |
} | |
} catch(__e){} | |
// | |
$active = $active.parentNode; | |
// | |
} while(tag != 'body'); | |
// | |
} | |
catch(_e){} | |
// | |
_context_fget.get((link ? [link] : document.links)); | |
// | |
})( '_context_fget' ); | |
// | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// context.get_raw_url.js | |
// | |
// ==UserScript== | |
// @name context.get_raw_url | |
// @version 0.9 | |
// @description 選択アンカーのリンク先を元(リダイレクト先)のURLに変換する | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// ------------------------------------------------------------ | |
(function (){ | |
// | |
try { | |
_sylera.include('C:/scripts/lib/xml_http.js'); | |
} | |
catch(_e){ | |
alert('[include error]'+ _e.message); | |
return ; | |
} | |
// | |
var $active = _sylera.API.getActiveDOMNode(); | |
var link, tag; | |
// | |
do { | |
// | |
try { | |
if((tag = $active.tagName.toLowerCase()) == 'a'){ | |
link = $active; | |
break; | |
} | |
} | |
catch(_e){} | |
// | |
$active = $active.parentNode; | |
// | |
} while(tag != 'body'); | |
// ------------------------------------------------------------ | |
if( link ){ | |
// | |
var $http = new XMLHttpRequest(); | |
with( $http ){ | |
open('GET', 'http://api.longurl.org/v2/expand?format=json&url='+ encodeURI(link.href), true); | |
// | |
onreadystatechange = function (){ | |
var stat = $http.readyState; | |
if(stat < 4/*LOADED*/){ | |
with( link ){ | |
title = ' ... '; | |
style.backgroundColor = 'orange'; | |
style.color = 'black'; | |
} | |
} | |
}; | |
// | |
onload = function (){ | |
if( /\{\s*"long\-url"\s*:\s*"([^"]+)"\s*\}/.test($http.responseText) ){ | |
var res = (RegExp.$1 +"").replace(/\\\//g,'/'); | |
with( link ){ | |
innerHTML = link.innerHTML.replace(link.href, res); | |
href = res; | |
title = res; | |
} | |
} | |
with( link ){ | |
style.backgroundColor = 'darkgreen'; | |
style.color = 'white'; | |
} | |
}; | |
// | |
onerror = function (){ | |
with( link ){ | |
title = '*** MISS! ***'; | |
style.backgroundColor = 'red'; | |
style.color = 'white'; | |
} | |
}; | |
// | |
send(null); | |
} | |
// | |
} | |
// | |
})(); | |
// | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// context.link2m3u.js | |
// | |
// ==UserScript== | |
// @name context.link2m3u | |
// @version 0.9 | |
// @require ./_sylera.external.charconv.js | |
// @require ./_sylera.external.localfile.js | |
// @require ./_sylera.external.evaluateXPath.js | |
// @description ページ内のメディアらしきリンクを拾ってm3uプレイリストを作成する | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera._sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// ------------------------------------------------------------ | |
// ------------------------------------------------------------ | |
(function (){ | |
// | |
try { | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.charconv.js'); | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.localfile.js'); | |
_sylera.include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.evaluateXPath.js'); | |
} | |
catch(_e){ | |
alert('[include error]'+ _e.description); | |
return ; | |
} | |
// ------------------------------------------------------------ | |
// | |
var file_types = 'mp3|mp2|mp1|aac|m4a|mp4|nsa|flac|ogg|wma|mid|midi|rmi|kar|miz|mod|mdz|nst|stm|stz|s3m|s3z|it|itz|xm|xmz|mtm|ult|669|far|amf|okt|ptm|wav|voc|au|snd|aif|aiff|avi|mpg|mpeg|m2v|avi|asf|wmv|nsv|flv|swf|m3u|m3u8|pls|b4s|asx|wpl'; | |
var file_types_xpath = file_types | |
.replace(/(\w+)(\|?)/g, function (_$0, _$1, _$2){ | |
return ( | |
'contains(@href,".'+ _$1 +'") or contains(@href,".'+ _$1.toUpperCase() +'")' | |
+ (_$2 ? ' or ' : '') | |
); | |
}) | |
; | |
// | |
var audio_links | |
= _sylera.external.evaluateXPath(document.body, '//a['+ file_types_xpath +']') | |
.concat( | |
_sylera.external.evaluateXPath(document.body, '//embed['+ file_types_xpath +']') | |
) | |
// .concat( _sylera.external.evaluateXPath(document.body, '//a[starts-with(@href,"peercast://pls/")]') ) | |
// | |
; | |
// | |
if(! audio_links.length){ | |
alert('- no links -'); | |
return; | |
} | |
// ------------------------------------------------------------ | |
var $m3u = { | |
path: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("TmpD", Components.interfaces.nsIFile).path | |
+'\\'+ location.pathname.replace(/\W/g,'_') +'.m3u' | |
, body: ['#EXTM3U'] | |
}; | |
// | |
var dict = {}; | |
for( | |
var i=0 | |
, ext_regex=(new RegExp(('\\.('+ file_types +')$'),'i')) | |
, audio="", title | |
; i<audio_links.length | |
; i++ | |
){ | |
// | |
audio = audio_links[i]; | |
if( | |
( | |
(! dict[audio.href]) | |
|| ((typeof dict[audio.href] == 'string') && /^[\s\-]+$/.test(dict[audio.href])) | |
) | |
&& ext_regex.test(audio.href) | |
){ | |
title = audio.textContent +""; | |
dict[audio.href] = title.length | |
? title.replace(/\r\n/g,'\n').replace(/\n/g,' ').replace(/(^\s+|\s+$)/,'') | |
: ' - ' | |
; | |
} | |
} | |
// | |
for(var u in dict){ | |
if(u && (/^[a-z]+:/i).test(u)){ | |
$m3u.body.push('#EXTINF:-1,'+ dict[u]); | |
$m3u.body.push(u); | |
} | |
} | |
// | |
if( | |
_sylera.external.localfile.fileout( | |
$m3u.path | |
, _sylera.external.charconv($m3u.body.join('\r\n'), 'Shift_JIS') | |
) | |
){ | |
// | |
location = 'file:///'+ $m3u.path; | |
}else{ | |
alert('fail@save'); | |
} | |
// | |
})(); | |
// | |
// | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// context.translation.js | |
// | |
// ==UserScript== | |
// @name context.translation | |
// @version 0.9 | |
// @require ./_sylera.external.element.js | |
// @description 選択範囲またはページ全体を英和翻訳する | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// ------------------------------------------------------------ | |
// | |
try { _context_translation; } catch(_e){ _context_translation = new (function () { // | |
// | |
var _this_ = this; | |
// | |
var $ID = '_context'; | |
// ------------------------------------------------------------ | |
// ------------------------------------------------------------ | |
// | |
_this_.text_trans_cb = {}; | |
// | |
_this_.text_trans = function (_selection){ | |
// | |
var $_label = $ID +'_text_trans'; | |
// ------------------------------------------------------------ | |
var sel_block = _sylera.external.element('strong', { | |
id: $_label + (new Date()).getTime() | |
, className: $_label +'_selected' | |
}); | |
sel_block.setAttribute('style', [ | |
'display:inline;' | |
, 'background-color:silver;' | |
, 'color:black;' | |
].join(' ')); | |
// | |
_selection.getRangeAt(0).surroundContents(sel_block); | |
// | |
var sel_length = _selection.toString().length; | |
// | |
var result_block = _sylera.external.element('textarea', { | |
id: sel_block.id +'_result' | |
, className: $_label +'_result' | |
, onclick: (function (){ this.parentNode.removeChild(this); }) | |
}, [ | |
document.createTextNode(_selection.toString()) | |
]); | |
result_block.setAttribute('style', [ | |
'cursor:pointer;' | |
, 'position:absolute;' | |
, 'top:'+ (sel_block.offsetTop +10) +'px;' | |
, 'left:'+ (sel_block.offsetLeft +10) +'px;' | |
, 'width:'+ (((sel_length > 60) ? 60 : sel_length) +1) +'.75ex;' | |
, 'height:'+ (parseInt(sel_length/60) +2) +'.75em;' | |
, 'padding:3px;' | |
, 'border-style:outset; border-color:auto; border-width:1px 3px 3px 1px;' | |
, 'background-color:black;' | |
, 'color:white;' | |
, 'font-size:medium;' | |
, 'opacity:0.33;' | |
].join('')); | |
// | |
sel_block.parentNode.insertBefore(result_block, sel_block.nextSibling); | |
// | |
// ------------------------------------------------------------ | |
_this_.text_trans_cb[sel_block.id] = function (_data){ | |
var result = _data.count | |
? _data.value.items.shift().description : 'no results' | |
; | |
sel_block.title = result; | |
with( result_block ){ | |
value = result; | |
style.opacity = '0.77'; | |
} | |
}; | |
// | |
document.body.appendChild( _sylera.external.element('script', { | |
type: 'text/javascript' | |
, src: ( | |
' http://pipes.yahoo.com/xyn9/bablefish_en2ja?_render=json' | |
+ '&_callback='+ $ID +'.text_trans_cb.'+ sel_block.id | |
+ '&s='+ encodeURIComponent(result_block.value).replace(/%20/g,'+') | |
) | |
}) ); | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.page_trans = function (){ | |
// | |
location = 'http://www.microsofttranslator.com/BV.aspx?lo=SP&a='+ encodeURIComponent(location.href); | |
// | |
}; | |
// ------------------------------------------------------------ | |
_this_.init = function (_id){ | |
// | |
$ID = _id; | |
// | |
try { | |
with( _sylera ){ | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.element.js'); | |
} | |
} | |
catch(_e){ | |
alert($ID +'\n[include error]'+ _e.message); | |
return ; | |
} | |
// | |
}; | |
// | |
})(); } // _context_translation | |
// | |
// ------------------------------------------------------------ | |
(function (_label){ | |
// | |
try { | |
document.getElementById(_label).tagName; | |
} | |
catch(_e){ | |
// | |
var marker = document.createElement('script'); | |
marker.id = _label; | |
(document.getElementsByTagName('head'))[0].appendChild(marker); | |
// | |
_context_translation.init(_label); | |
} | |
// | |
var sel = window.getSelection(); | |
_context_translation[(sel.rangeCount ? 'text_trans' : 'page_trans')](sel); | |
// | |
})( '_context_translation' ); | |
// | |
// | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// context.vcs.js | |
// | |
// ==UserScript== | |
// @name context.vcs | |
// @version 0.9 | |
// @require ./lib/wx320k_vcs.js | |
// @require ./lib/printf.js | |
// @require ./_sylera.external.selection.js | |
// @require ./_sylera.external.charconv.js | |
// @require ./_sylera.external.localfile.js | |
// @description 選択範囲の内容からVCS形式のスケジュール登録ファイルを作成する | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// ------------------------------------------------------------ | |
function _vcs_parse_selection(_sel){ | |
// | |
function zn2hn(_str){ | |
return _str.replace(/[0-9]/g, function (__n){ | |
return ({'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'0':0})[__n]; | |
}); | |
} | |
// ------------------------------------------------------------ | |
// | |
var $vcs = { | |
SUMMARY: prompt('caption:', _sel.textContent) | |
}; | |
// | |
if(typeof $vcs.SUMMARY != 'string'){ $vcs.SUMMARY = document.title; } | |
// | |
var sel_text = _sel.textContent.replace(/\r\n/g,'\n'); | |
var now = new Date(); | |
// | |
var dates = []; | |
zn2hn(sel_text) | |
.replace(/平成(\d+)/g, function (_s,_y){ return (1988 + Math.abs(_y)); }) | |
.replace( | |
/((\d{4})[年/\/\-\.]+)?([01]?\d)[月/\/\-\.]+([0-3]?\d)日?/g | |
, function (_str,_y0, _y,_m,_d){ | |
dates.push([ | |
(_y.length ? _y : now.getFullYear()) | |
, (_m.length ? _m : now.getMonth()+1) | |
, (_d.length ? _d : now.getDate()) | |
].join('/')); | |
} | |
); | |
if(! dates.length){ | |
dates.push( | |
[now.getFullYear(), (now.getMonth()+1), now.getDate()].join('/') | |
); | |
} | |
// | |
var times = []; | |
zn2hn(sel_text).replace( | |
/((午後|PM|PM)\D*)?([0-2]?\d)[::時](([0-5]?\d)([::分]([0-5]?\d)秒?)?)?/gi | |
, function (_str, _n0,_n, _h, _m0,_m,_s0,_s){ | |
_h = Math.abs(_h); | |
if(_n.length){ _h += 12; } | |
if(! _m0.length){ _m = _s = 0; } | |
times.push([_h, Math.abs(_m), Math.abs(_s)].join(':')); | |
} | |
); | |
if(! times.length){ times.push('00:00:00'); } | |
// | |
$vcs.DTSTART = new Date( Date.parse(prompt('start:', dates.concat(times).join(' '))) ); | |
// | |
$vcs.DTEND = ( | |
(dates.length > 1) | |
? prompt('end:', dates.concat(times).join(' ')) | |
: ((times.length > 1) ? prompt('end:', dates[0]+' '+times[1]) : 0) | |
); | |
if( $vcs.DTEND ){ $vcs.DTEND = new Date( Date.parse($vcs.DTEND) ); } | |
// | |
$vcs.DESCRIPTION = ''+ prompt('description:', sel_text); | |
// | |
if( | |
(/((場所.+)|((NHK|NHK)(総合|教育)?)|テレビ\S+|\S+(テレビ|ラジオ|放送))/) | |
.test(document.title + sel_text) | |
){ | |
$vcs.LOCATION = ''+ prompt('場所: ', RegExp.$1); | |
} | |
// | |
$vcs.URL = ''+ prompt('URL: ', location.href); | |
// | |
return $vcs; | |
// | |
} | |
// | |
// ------------------------------------------------------------ | |
(function (){ | |
// | |
try { | |
with( _sylera ){ | |
include(_sylera.__EXTENSION_DIR__ +'/lib/printf.js'); | |
include(_sylera.__EXTENSION_DIR__ +'/lib/wx320k_vcs.js'); | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.selection.js'); | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.charconv.js'); | |
include(_sylera.__EXTENSION_DIR__ +'/_sylera.external.localfile.js'); | |
} | |
// | |
} | |
catch(_e){ | |
alert('[include error]'+ _e.message); | |
return ; | |
} | |
// | |
try { | |
// | |
var $outpath = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("TmpD", Components.interfaces.nsIFile).path | |
+'\\'+ location.pathname.replace(/\W/g,'_') + '.vcs' | |
; | |
// | |
var $vcs = _vcs_parse_selection( _sylera.external.selection() ); | |
if(! $vcs.SUMMARY){ throw {message: '$vcs - no data'}; } | |
if(! _sylera.external.localfile.fileout( | |
$outpath | |
, _sylera.external.charconv(create_vcs($vcs), 'Shift_JIS') | |
) ){ | |
throw {message: 'data save failed'}; | |
} | |
// | |
location.href = 'mailto:?' + [ | |
'Attach='+ $outpath | |
, 'Subject='+ escape( _sylera.external.charconv($vcs.SUMMARY,'Shift_JIS') ) | |
, 'Body='+ escape( | |
($vcs.DESCRIPTION ? _sylera.external.charconv($vcs.DESCRIPTION,'Shift_JIS') : '-vcs-') | |
+ '\r\n' | |
) | |
].join('&'); | |
// | |
} | |
catch(_e){ | |
// | |
alert(_e.message); | |
} | |
// | |
})(); | |
// | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// context.view-source.js | |
// | |
// ==UserScript== | |
// @name context.view-source | |
// @description 指定URLのソースを表示する | |
// @homepage http://xyn9.github.com/sylrextension | |
// | |
// @author xyn9 <xyn9.mail@gmail.com> | |
// @license (CC) Attribution Share Alike; http://creativecommons.org/licenses/by-sa/2.1/jp | |
// ==UserScript== | |
// | |
// | |
try { _sylera.__EXTENSION_DIR__; } catch(_e){ // | |
// | |
_sylera = { | |
// | |
API: Components.classes["@mozilla.org/sylera-api;1"].getService(Components.interfaces.nsISyleraAPI) | |
, | |
// | |
__EXTENSION_DIR__: Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile).path +'/sylrextension' | |
, | |
// | |
external: {} | |
// | |
}; | |
// | |
} // catch | |
// | |
if(! _sylera.include){ | |
_sylera.include = function (_path){ | |
return Components.classes['@mozilla.org/moz/jssubscript-loader;1'].getService(Components.interfaces.mozIJSSubScriptLoader).loadSubScript('file:///' + _path) | |
}; | |
} | |
// | |
// ------------------------------------------------------------ | |
// ------------------------------------------------------------ | |
(function (){ | |
// | |
var $active = _sylera.API.getActiveDOMNode(); | |
var link, tag; | |
// | |
try { | |
// | |
do { | |
// | |
try { | |
if((tag = $active.tagName.toLowerCase()) == 'a'){ | |
link = $active; | |
break; | |
} | |
} catch(__e){} | |
// | |
$active = $active.parentNode; | |
// | |
} while(tag != 'body'); | |
// | |
} | |
catch(_e){} | |
// ------------------------------------------------------------ | |
if( link ){ | |
openDialog('view-source:' + link, 'view-source'); | |
} | |
// | |
})(); | |
// |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// dialog.ShowBookmarksManager.js | |
// | |
// ==UserScript== | |
// @name dialog.ShowBookmarksManager | |
// @description ブックマークエディタを呼び出す | |
// ==UserScript== | |
// | |
openDialog('chrome://communicator/content/bookmarks/bookmarksManager.xul', 'BookmarksManager', 'chrome,all,dialog=yes'); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// dialog.ShowDOMInspector.js | |
// | |
// ==UserScript== | |
// @name dialog.ShowDOMInspector | |
// @description 開いているページに対するDOMインスペクタを呼び出す | |
// ==UserScript== | |
// | |
openDialog('chrome://inspector/content/', 'DOMInspector', 'chrome,all,dialog=yes', document); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// dialog.ShowJSConsole.js | |
// | |
// ==UserScript== | |
// @name dialog.ShowJSConsole | |
// @description エラーコンソール(全体)を呼び出す | |
// ==UserScript== | |
// | |
openDialog('chrome://global/content/console.xul', 'JSConsole'); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// dialog.ShowJSDebug.js | |
// | |
// ==UserScript== | |
// @name dialog.ShowJSDebug | |
// @description JavaScriptデバッガなるツールを呼び出す | |
// ==UserScript== | |
// | |
openDialog('chrome://venkman/content/', 'JSDebug', 'chrome,all,dialog=yes', document); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
What exactly does this script do?