Skip to content

Instantly share code, notes, and snippets.

@xyn9
Created November 20, 2009 16:35
Show Gist options
  • Save xyn9/239605 to your computer and use it in GitHub Desktop.
Save xyn9/239605 to your computer and use it in GitHub Desktop.
Sylera拡張スクリプト
// _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;
}
//
};
//
// _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;
};
//
// _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;
};
//
// _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);
}
};
//
// _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;
};
//
// 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('&amp;') +'"'
, '/>'
].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' );
//
//
// 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>'
)
;
}
//
}
})();
//
// 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' );
//
//
// 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' );
//
//
// 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' );
//
//
// 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' );
//
//
// 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_' );
//
//
// 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);
// 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' );
//
//
// 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,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAwBQTFRF/9hd/9RT/+aG/+mQgWMt/9xo/+R9ubm4/+Fz/Pz8gWMugWQw/+KKgWQx8vLy/+6qgWQvubm2//XK/+yk/+ui/+uZ/9x3/+iU7t2n/+R/zLqM/+ubiW48/9Rg9+vE/+J2/9JOu6d2u6Nq/++s/9xq+vr6/+WS/++w//C09vb2/+GQ/9htiWsz/+ym7tqX/+WO/+2m/+qc/+qV/9t0/9lw/9Za/81C//LE/9tz/+ia/+mW/+KGgWIs/9FT/957/+eX/+SM//XJ/+uh/+2j/+6vzLuS//Cw7tys/954/+ue/+GD/+yi/+CO//Cy/9tw7s50/99+/9BO/8xA/9BJubm3/9dr/+uY//K47u7u9fX1+fn5tbW1////XV1dXl5eX19fYGBgYWFhYmJiY2NjZGRkZWVlZmZmZ2dnaGhoaWlpampqa2trbGxsbW1tbm5ub29vcHBwcXFxcnJyc3NzdHR0dXV1dnZ2d3d3eHh4eXl5enp6e3t7fHx8fX19fn5+f39/gICAgYGBgoKCg4ODhISEhYWFhoaGh4eHiIiIiYmJioqKi4uLjIyMjY2Njo6Oj4+PkJCQkZGRkpKSk5OTlJSUlZWVlpaWl5eXmJiYmZmZmpqam5ubnJycnZ2dnp6en5+foKCgoaGhoqKio6OjpKSkpaWlpqamp6enqKioqampqqqqq6urrKysra2trq6ur6+vsLCwsbGxsrKys7OztLS0tbW1tra2t7e3uLi4ubm5urq6u7u7vLy8vb29vr6+v7+/wMDAwcHBwsLCw8PDxMTExcXFxsbGx8fHyMjIycnJysrKy8vLzMzMzc3Nzs7Oz8/P0NDQ0dHR0tLS09PT1NTU1dXV1tbW19fX2NjY2dnZ2tra29vb3Nzc3d3d3t7e39/f4ODg4eHh4uLi4+Pj5OTk5eXl5ubm5+fn6Ojo6enp6urq6+vr7Ozs7e3t7u7u7+/v8PDw8fHx8vLy8/Pz9PT09fX19vb29/f3+Pj4+fn5+vr6+/v7/Pz8/f39/v7+////wlebGgAAAAp0Uk5T////////////ALLMLM8AAAC7SURBVHjabM9XUgJBFAXQO3kuoQgKYgAkFFAqoGJWQMFAMEB3qx9v//vgb6qgODs44AZQ1hAMXv4jWSEYvP9FvoRgkHKcXKrVHF86Tk0Imrlt7x4lk5VD294RgubC98/jb6V4e9+fCkGzF4ajdOE13SmHD0LQPHvefezgNjase10haGZAw3Xd6gR4FIJmYFmJp4/E97VlLYRgpqf13dnPsdZa54Vg5lSpZbF/o5RSV0LQfP5GTmRbbsNqANc1LdNgt9uJAAAAAElFTkSuQmCC'
, 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' );
//
// 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' );
//
// 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);
}
//
}
//
})();
//
// 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');
}
//
})();
//
//
// 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' );
//
//
// 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);
}
//
})();
//
// 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');
}
//
})();
//
// dialog.ShowBookmarksManager.js
//
// ==UserScript==
// @name dialog.ShowBookmarksManager
// @description ブックマークエディタを呼び出す
// ==UserScript==
//
openDialog('chrome://communicator/content/bookmarks/bookmarksManager.xul', 'BookmarksManager', 'chrome,all,dialog=yes');
// dialog.ShowDOMInspector.js
//
// ==UserScript==
// @name dialog.ShowDOMInspector
// @description 開いているページに対するDOMインスペクタを呼び出す
// ==UserScript==
//
openDialog('chrome://inspector/content/', 'DOMInspector', 'chrome,all,dialog=yes', document);
// dialog.ShowJSConsole.js
//
// ==UserScript==
// @name dialog.ShowJSConsole
// @description エラーコンソール(全体)を呼び出す
// ==UserScript==
//
openDialog('chrome://global/content/console.xul', 'JSConsole');
// dialog.ShowJSDebug.js
//
// ==UserScript==
// @name dialog.ShowJSDebug
// @description JavaScriptデバッガなるツールを呼び出す
// ==UserScript==
//
openDialog('chrome://venkman/content/', 'JSDebug', 'chrome,all,dialog=yes', document);
@Korb
Copy link

Korb commented Mar 12, 2021

What exactly does this script do?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment