Skip to content

Instantly share code, notes, and snippets.

@azu
Created January 6, 2009 11:51
Show Gist options
  • Save azu/43780 to your computer and use it in GitHub Desktop.
Save azu/43780 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name mata niconico miteru
// @namespace http://d.hatena.ne.jp/
// @include http://www.nicovideo.jp/watch/*
// @include http://www.nicovideo.jp/tag/*
// @include http://www.nicovideo.jp/search/*
// @include http://www.nicovideo.jp/related_tag/*
// @include http://ch.nicovideo.jp/community/co*
// @include http://dic.nicovideo.jp/*
// @include http://live.nicovideo.jp/watch/*
// @include http://www.niconicommons.jp/material/nc*
// @include http://www.niconicommons.jp/tag/*
// @include http://www.niconicommons.jp/search/*
// @include http://www.niconicommons.jp/tree/*
// @author Sore_0
// @version 0.3.2
// @update 2008/12/15
// @require http://kojim71.googlepages.com/update_checker.user.js
// ==/UserScript==
var w = unsafeWindow || window, document = w.document;
var ConfigDefault = {
SET: {
watch: true,
tag: true,
search: true,
related_tag: true,
community: true,
dic: true,
com_material: true,
com_tag: true,
com_search: true,
com_tree: true,
live: true
},
COMMENT: {
watch: true,
tag: false,
search: false,
related_tag: false,
community: false,
dic: false,
com_material: false,
com_tag: false,
com_search: false,
com_tree: false,
live: false
},
PREFIX: {
watch: ["\u307e\u305f\u30cb\u30b3\u30cb\u30b3\u52d5\u753b\u898b\u3066\u308b:"],
tag: ["\u30bf\u30b0:"],
search: ["\u30ad\u30fc\u30ef\u30fc\u30c9:"],
related_tag: ["\u95a2\u9023\u30bf\u30b0:"],
community: ["\u307e\u305f\u30cb\u30b3\u30cb\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u898b\u3066\u308b:"],
dic: ["\u307E\u305F\u30CB\u30B3\u30CB\u30B3\u5927\u767E\u79D1\u898B\u3066\u308B:"],
com_material: ["\u307e\u305f\u30cb\u30b3\u30cb\u30fb\u30b3\u30e2\u30f3\u30ba\u7d20\u6750\u898b\u3066\u308b:"],
com_tag: ["\u30cb\u30b3\u30cb\u30fb\u30b3\u30e2\u30f3\u30ba \u30bf\u30b0:"],
com_search: ["\u30cb\u30b3\u30cb\u30fb\u30b3\u30e2\u30f3\u30ba \u30ad\u30fc\u30ef\u30fc\u30c9:"],
com_tree: ["\u307e\u305f\u30b3\u30e2\u30f3\u30ba\u30c4\u30ea\u30fc\u898b\u3066\u308b:"],
live: ["\u307e\u305f\u30cb\u30b3\u751f\u307f\u3066\u308b:"]
},
DEFAULT_PREFIX: {
watch: ["\u307e\u305f\u30cb\u30b3\u30cb\u30b3\u52d5\u753b\u898b\u3066\u308b:"],
tag: ["\u30bf\u30b0:"],
search: ["\u30ad\u30fc\u30ef\u30fc\u30c9:"],
related_tag: ["\u95a2\u9023\u30bf\u30b0:"],
community: ["\u307e\u305f\u30cb\u30b3\u30cb\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u898b\u3066\u308b:"],
dic: ["\u307E\u305F\u30CB\u30B3\u30CB\u30B3\u5927\u767E\u79D1\u898B\u3066\u308B:"],
com_material: ["\u307e\u305f\u30cb\u30b3\u30cb\u30fb\u30b3\u30e2\u30f3\u30ba\u7d20\u6750\u898b\u3066\u308b:"],
com_tag: ["\u30cb\u30b3\u30cb\u30fb\u30b3\u30e2\u30f3\u30ba \u30bf\u30b0:"],
com_search: ["\u30cb\u30b3\u30cb\u30fb\u30b3\u30e2\u30f3\u30ba \u30ad\u30fc\u30ef\u30fc\u30c9:"],
com_tree: ["\u307e\u305f\u30b3\u30e2\u30f3\u30ba\u30c4\u30ea\u30fc\u898b\u3066\u308b:"],
live: ["\u307e\u305f\u30cb\u30b3\u751f\u307f\u3066\u308b:"]
},
TEMPLATE: {
watch : "%PREFIX% %TITLE% %URL% (%DATA%) %COMMENT%",
tag : "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
search : "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
related_tag: "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
community : "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
dic : "%PREFIX% %TITLE% %URL% %COMMENT%",
com_material : "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
com_tag : "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
com_search : "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
com_tree : "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%",
live: "%PREFIX% %TITLE% %DATA% %URL% %COMMENT%"
},
POSITION: {
watch: function(){ return document.getElementsByTagName("h1")[0] },
tag: function(){ return document.getElementsByClassName("search_word")[0].parentNode },
search: function(){ return document.getElementsByClassName("search_word")[0] },
related_tag: function(){ return document.getElementsByClassName("search_word")[0] },
community: function(){ return document.getElementsByTagName("h1")[0] },
dic: function(){ return document.getElementById("contents") },
com_material: function(){ return document.getElementsByClassName("commons_title")[0] },
com_tag: function(){ return document.getElementsByClassName("search_title")[0].firstChild; },
com_search: function(){ return document.getElementsByClassName("search_title")[0].firstChild; },
com_tree: function(){ return document.getElementsByTagName("h2")[1] },
live: function(){ return document.getElementsByClassName("title")[0] }
},
COMMENT_LENGTH: {
watch: 10,
tag: 10,
search: 10,
related_tag: 10,
community: 10,
dic: 10,
com_material: 10,
com_tag: 10,
com_search: 10,
com_tree: 10,
live: 10
}
};
var Config = eval(GM_getValue("CONFIG", ConfigDefault)) || ConfigDefault;
var pg = "";
if(/http:\/\/live\.nicovideo\.jp\/watch/.test(location.href)){
pg = "live";
} else if(/http:\/\/.*?\.nicovideo\.jp\/([^\/]*)\/?/.test(location.href)){
switch(RegExp.$1){
case "watch": pg = "watch"; break;
case "tag" : pg = "tag"; break;
case "search" : pg = "search"; break;
case "related_tag":pg = "related_tag"; break;
case "community" : pg = "community"; break;
case "a" : pg = "dic"; break;
default : break;
}
} else if(/http:\/\/.*?\.niconicommons\.jp\/([^\/]*)\/?/.test(location.href)){
switch(RegExp.$1){
case "material" : pg = "com_material"; break;
case "tag" : pg = "com_tag"; break;
case "search" : pg = "com_search"; break;
case "tree" : pg = "com_tree"; break;
}
} else {
return;
}
if(!pg) return;
function ConfigBox(){this.initialize.apply(this, arguments);}
ConfigBox.prototype = {
initialize: function(cfg, items) {
this.cfg = cfg;
this.name = "MataNico_cfg"
this.items = items;
},
show: function() {
var bd = document.getElementById(this.name);
if(bd) return;
var self = this;
var items = this.items;
var nodes = [];
var box = document.createElement("div");
box.id = this.name;
var box_page = document.createElement("span");
box_page.id = this.name + "_header";
box_page.innerHTML = "<b>MataNico Config</b> \u3000\u3000\u3000" + pg.toUpperCase() + "\u3000\u3000\u3000";
for(var i = 0; i < items.length; i++){
if(items[i][0] == "text"){
nodes.push(self.makeText(self.items[i][1]))
} else if(items[i][0] == "select") {
nodes.push(self.makeSelect(self.items[i][1], self.items[i][2]))
}
}
var cf_body = this.createBoxBody(nodes);
box.appendChild(box_page);
box.appendChild(cf_body);
box.appendChild(self.makeSetButton());
document.body.appendChild(box);
},
createBoxBody: function(nodes){
var body = document.createElement("div");
body.id = "MNconf_box";
var table = document.createElement("table");
table.id = "cfg_form_table";
for(var i = 0;i < nodes.length; i++){
table.appendChild(nodes[i]);
}
body.appendChild(table);
return body;
},
makeSelect: function(key, items) {
var cfg = this.cfg;
var cf_key = (cfg[key]) ? cfg[key] : ConfigDefault[key];
var tr = document.createElement("tr");
var td_1 = document.createElement("td");
var td_2 = document.createElement("td");
tr.appendChild(td_1);
tr.appendChild(td_2);
var label = document.createElement("label");
label.className = "MN_label";
var text = document.createTextNode(key + " :\u3000");
var op = "";
label.setAttribute("for", this.name + "_" + key);
label.appendChild(text);
var input = document.createElement("select");
input.id = this.name + "_" + key;
input.className = "MN_input";
if(!cf_key[pg] && typeof cf_key[pg] != "boolean") cf_key[pg] = ConfigDefault[pg];
for(var i = 0; i < items.length; i++) {
op += (items[i] == cf_key[pg].toString()) ?
"<option value='" + items[i] + "' selected>" + items[i] + "</option>"
: "<option value='" + items[i] + "'>" + items[i] + "</option>";
}
var v = (cf_key && cf_key[pg]) ? cf_key[pg] : ConfigDefault[pg];
input.value = (v) ? v.toString() : "";
input.innerHTML = op;
td_1.appendChild(label);
td_2.appendChild(input);
return tr;
},
makeText: function(key) {
var cfg = this.cfg;
var cf_key = (cfg[key]) ? cfg[key] : ConfigDefault[key];
var tr = document.createElement("tr");
var td_1 = document.createElement("td");
var td_2 = document.createElement("td");
tr.appendChild(td_1);
tr.appendChild(td_2);
var label = document.createElement("label");
label.className = "MN_label";
var text = document.createTextNode(key + " :\u3000");
label.setAttribute("for", this.name + "_" + key);
label.appendChild(text);
var input = document.createElement("input");
input.id = this.name + "_" + key;
input.className = "MN_input";
input.type = "text";
var v = (cf_key && cf_key[pg]) ? cf_key[pg] : ConfigDefault[pg];
input.value = (v) ? v.toString() : "";
td_1.appendChild(label);
td_2.appendChild(input);
return tr;
},
makeSetButton: function() {
var span = document.createElement("span");
span.id = "MNconf_buttons";
switch(pg){
case "community": span.style.marginLeft = "109px";break;
case "dic": span.style.marginLeft = "92px";break;
default: break;
}
var self = this;
var cancel = document.createElement("input");
cancel.type = "button";
cancel.id = "MNconf_cancel";
cancel.value = "\u30ad\u30e3\u30f3\u30bb\u30eb";
cancel.className = "submit MN_button";
cancel.addEventListener("click", function(){self.hide();}, false);
var set = document.createElement("input");
set.type = "button";
set.id = "MNconf_set";
set.value = " \u3000O K\u3000 ";
set.className = "submit MN_button";
set.addEventListener("click", function(){self.set();}, false);
var clear = document.createElement("input");
clear.type = "button";
clear.id = "MNconf_clear";
clear.value = "\u521d\u671f\u5316";
clear.className = "submit MN_button";
clear.addEventListener("click", function(){self.clear();}, false);
span.appendChild(clear);
span.appendChild(cancel);
span.appendChild(set);
return span;
},
getValue: function(){
var name = this.name;
var items = this.items;
var values = {};
for(var i = 0; i < this.items.length; i++){
values[items[i][1]] = document.getElementById(name + "_" + items[i][1]).value;
}
return values;
},
update: function() {
var cfg = this.cfg;
var span = document.getElementById("matamite_trigger");
if(span)span.parentNode.removeChild(span);
var cfg_button = document.getElementById("cfg_button");
var bar = cfg_button.previousSibling;
if(cfg_button) {
cfg_button.parentNode.removeChild(bar);
cfg_button.parentNode.removeChild(cfg_button);
}
var mn = new MataNico(cfg);
},
save: function() {
var cfg = this.cfg;
var items = this.items;
var value = this.getValue();
for(var i = 0; i < items.length; i++){
switch(value[items[i][1]]){
case "true" : cfg[items[i][1]][pg] = true;break;
case "false" : cfg[items[i][1]][pg] = false;break;
default :
if(items[i][1] == "PREFIX"){
cfg[items[i][1]][pg] = eval("['" + value[items[i][1]].replace(/,/g,"','") + "']");
break;
}
if(items[i][1] == "POSITION"){
cfg[items[i][1]][pg] = eval("(" + value[items[i][1]] + ")");
break;
}
if(items[i][1] == "COMMENT_LENGTH"){
cfg[items[i][1]][pg] = value[items[i][1]] - 0;
break;
}
cfg[items[i][1]][pg] = value[items[i][1]];
}
}
GM_setValue("CONFIG", uneval(cfg));
},
set: function() {
this.save();
this.update();
this.hide();
},
hide: function() {
var box = document.getElementById(this.name);
if(box) box.parentNode.removeChild(box);
},
clear: function() {
if(!confirm(pg.toUpperCase() +"\u30da\u30fc\u30b8\u306e\u8a2d\u5b9a\u3092\u521d\u671f\u5316\u3057\u307e\u3059\u3002\u4e00\u5ea6\u521d\u671f\u5316\u3059\u308b\u3068\u3001\u5143\u306e\u8a2d\u5b9a\u306f\u623b\u308a\u307e\u305b\u3093"))return;
var cfg = this.cfg;
var items = this.items;
for(var i = 0;i < items.length; i++){
cfg[items[i][1]][pg] = ConfigDefault[items[i][1]][pg];
}
GM_setValue("CONFIG", uneval(cfg));
this.update();
this.hide();
}
};
var cfg_box = new ConfigBox(
Config,
[
["select", "SET", ["true", "false"]],
["select", "COMMENT", ["display", "true", "false"]],
["text", "PREFIX"],
["text", "TEMPLATE"],
["text", "POSITION"],
["text", "COMMENT_LENGTH"]
]
);
GM_registerMenuCommand("MataNico - Setting", function(){cfg_box.show(this)});
function MataNico(){this.initialize.apply(this, arguments);}
MataNico.prototype = {
initialize: function(cfg){
this.cfg = cfg;
this.insertCfgBoxTrigger();
if(!cfg.SET[pg])return;
this.template = this.cfg.TEMPLATE[pg];
this.pos = cfg.POSITION[pg]();
this.DATA = {prefix:"",title:"",data:"",url:"",comment:""};
this.insert();
},
insert: function(){
var cfg = this.cfg;
var template = this.template;
var node = this.pos;
if(!node)return;
this.insertText(node, template, cfg.PREFIX[pg]);
},
parse: function(string){
var DATA = this.DATA;
var result = string.replace(/%(PREFIX)%|%(TITLE)%|%(DATA)%|%(URL)%|%(COMMENT)%/gi,
function(matched){
var word = matched.substring(1, matched.length-1);
return DATA[word.toLowerCase()] || "";
}
);
return result;
},
getTitle: function(){
var title = "";
switch(pg){
case "watch" :
if(w.Video)title = w.Video.title;
break;
case "tag" :
var search_words = document.getElementsByClassName("search_word");
if(!search_words)return false;
for(var i = 0;i < search_words.length;i++){
if(title) title = title + " ";
title = title + search_words[i].textContent;
}
break;
case "search" :
var search_words = document.getElementsByClassName("search_word");
if(!search_words)return false;
for(var i = 0;i < search_words.length;i++){
if(title) title = title + " ";
title = title + search_words[i].textContent;
}
break;
case "related_tag" :
var name = document.getElementsByClassName("search_word");
if(name)title = name[0].textContent;
break;
case "community" :
var h1 = document.getElementsByTagName("h1");
if(!h1)return false;
title = "\u300e" + h1[0].textContent + "\u300f";
break;
case "dic" :
var contents = document.getElementById("contents");
if(!contents)return false;
var titles = document.getElementsByTagName("title");
title = titles[0].innerHTML.match('(.*) - [^-]+')[1];
break;
case "com_material" :
var name = document.getElementsByClassName("commons_title");
if(name)title = name[0].textContent;
break;
case "com_tag" :
var name = document.getElementById("search_word");
if(name)title = name.value;
break;
case "com_search" :
var name = document.getElementById("search_word");
if(name)title = name.value;
break;
case "com_tree" :
var name = document.getElementsByClassName("TXT12");
if(name)title = name[1].textContent;
break;
case "live" :
var name = w.Video.title;
if(name)title = name;
break;
default :
return false;
break;
}
return (title) ? title : false;
},
checkWrapper : function(){
if (unsafeWindow.$('flvplayer').GetVariable('o') == "base") return true;
else return false;
},
getData: function(){
var data = "";
switch(pg){
case "watch" :
if(this.checkWrapper()){
var len = unsafeWindow.$("flvplayer").GetVariable("nico.ContentLength");
}else{
var len = unsafeWindow.$("flvplayer").GetVariable("ContentLength");
}
var lmin = Math.floor(len / 60);
var lsec = len % 60;
data = (0 < len ? lmin.z(2) : '--') + ':' + (0 < len ? lsec.z(2) : '--');
break;
case "tag" :
var result_total = document.getElementsByClassName('result_total');
if ( !result_total ) { GM_log( 'result_total not found' ); return; }
data = result_total[0].innerHTML + "\u4ef6";
break;
case "search" :
var result_total = $x("descendant::div[@id='PAGEBODY']/div/p/strong", document);
if ( !result_total ) { GM_log( 'result_total not found' ); return; }
data = result_total[1].innerHTML + "\u4ef6";
break;
case "related_tag" :
var result_total = document.getElementsByClassName("result_total");
if ( !result_total ) { GM_log( "result_total not found" ); return; }
data = result_total[0].innerHTML + "\u4ef6";
break;
case "community" :
var level = $x("/descendant::td[contains(descendant::text(), '\u30ec\u30d9\u30eb')]/following-sibling::td/strong", document);
var member = $x("/descendant::td[contains(descendant::text(), '\u30e1\u30f3\u30d0\u30fc')]/following-sibling::td/strong", document);
var video = $x("/descendant::td[contains(descendant::text(), '\u6295\u7a3f\u52d5\u753b')]/following-sibling::td/strong", document);
data = "\u3000\u30ec\u30d9\u30eb\uff1a" + level[0].textContent + "\u3000\u30e1\u30f3\u30d0\u30fc\uff1a" + member[0].textContent + "\u3000\u6295\u7a3f\u52d5\u753b\uff1a" + video[0].textContent;
break;
case "com_material" :
var info = document.getElementsByClassName("commons_info_value");
if(!info)return false;
var author = info[0];
var view = info[1];
var download = info[2];
var following_products = info[3]
data = "\u4f5c\u8005\uff1a" + author.textContent + "\u3000\u95b2\u89a7\uff1a" + view.textContent + "\u3000\u5229\u7528\u4f5c\u54c1\uff1a" + following_products.textContent;
if(download) data += "\u3000\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\uff1a" + download.textContent;
break;
case "com_tag" :
var number = $x("/descendant::div[@class='paginate']/div/span/b", document);
data = number[0].textContent + "\u4ef6";
break;
case "com_search" :
var number = $x("/descendant::div[@class='paginate']/div/span/b", document);
data = number[0].textContent + "\u4ef6";
break;
case "com_tree" :
var tree = document.getElementsByClassName("arrow_on_tree");
var parents = $x("descendant::div[contains(concat(' ',normalize-space(@class),' '), ' tree_boxmini ')]", tree[0]);
var children = $x("descendant::div[contains(concat(' ',normalize-space(@class),' '), ' tree_boxmini ')]", tree[1]);
data = "\u3000\u3010\u89aa\u4f5c\u54c1\u3011" + parents.length + " \u3010\u5b50\u4f5c\u54c1\u3011" + children.length;
break;
case "live" :
var community = document.getElementsByClassName("community");
if(community.length > 0){
data = "from " + community[0].textContent;
} else {
data = "\u3010\u516c\u5f0f\u3011";
}
break;
default :
break;
}
return data;
},
insertText : function(node, data, strings) {
var self = this;
var cfg = this.cfg
var span = document.createElement("span");
span.id = "matamite_trigger";
if(strings.length > 1 || strings[0] != ConfigDefault.DEFAULT_PREFIX[pg][0]){
for(var i = 0; i < strings.length; i++){
var a = document.createElement("a");
var parent = a.parentNode;
var num = function(n){return n};
a.href = "javascript:void(0);"
if(i == 0){
a.appendChild(document.createTextNode("[\u307e\u305f\u898b\u3066\u308b]"));
} else{
a.appendChild(document.createTextNode("[" + strings[i] + "]"));
}
if(cfg.COMMENT[pg] == "display"){
var dummy = "";
self.makeCommentSpace(dummy, data, strings[0], "\u307e\u305f\u898b\u3066\u308b");
return;
}else if(cfg.COMMENT[pg]){
(function(n){a.addEventListener("click", function(e){
var parent = e.target.parentNode;
for(var i = parent.childNodes.length - 1;i >= 0; i--){
if(parent.childNodes[i] != e.target)parent.removeChild(parent.childNodes[i]);
}
if(n == 0){
self.makeCommentSpace(e, data, strings[n], "\u307e\u305f\u898b\u3066\u308b");
} else {
self.makeCommentSpace(e, data, strings[n]);
}
}, false);})(num(i));
}else {
data = data.replace(/%COMMENT%/, "");
(function(n){a.addEventListener("click",
function(e){
var parent = e.target.parentNode;
for(var i = parent.childNodes.length - 1;i >= 0; i--){
if(parent.childNodes[i] != e.target)parent.removeChild(parent.childNodes[i]);
}
self.PostPage(e, data, strings[n]); }, false);})(num(i));
}
span.appendChild(a);
}
node.parentNode.insertBefore(span, node);
} else {
var a = document.createElement("a");
var tx = "\u307e\u305f\u898b\u3066\u308b";
a.href = "javascript:void(0)";
a.className = "mata_miteru";
a.appendChild(document.createTextNode("[" + tx +"]"));
if(cfg.COMMENT[pg] == "display"){
var dummy = "";
self.makeCommentSpace(dummy, data, strings[0], tx);
return;
} else if(cfg.COMMENT[pg]){
a.addEventListener("click", function(e){ self.makeCommentSpace(e, data, strings[0], tx); }, false);
} else {
data = data.replace(/%COMMENT%/, "");
a.addEventListener("click", function(e){ self.PostPage(e, data, strings[0], tx); }, false);
}
span.appendChild(a);
node.parentNode.insertBefore(span, node);
}
},
makeCommentSpace : function(e, data, text, txt){
var self = this;
var cfg = this.cfg;
var tx = txt ? txt : text;
if(e){
var parent = e.target.parentNode;
parent.removeChild(e.target);
}else{
var parent = document.createElement("span");
parent.id = "matamite_trigger";
var node = this.pos;
node.parentNode.insertBefore(parent, node);
}
var comment = document.createElement("input");
comment.type = "text";
comment.value = "";
comment.size = 20;
comment.setAttribute("maxlength", cfg.COMMENT_LENGTH[pg]);
var a = document.createElement("a");
a.appendChild(document.createTextNode("[" + tx + "]"));
a.href = "javascript:void(0)";
a.addEventListener("click", function(e) { self.PostPage(e, data, text, comment.value); }, false);
parent.appendChild(a);
parent.appendChild(comment);
},
PostPage : function(e, data, prefix, comment){
var DATA = this.DATA;
var parent = e.target.parentNode;
DATA["prefix"] = prefix;
DATA["title"] = this.getTitle();
DATA["data"] = this.getData();
DATA["url"] = location.href;
if(comment){
DATA["comment"] = comment;
}
while(parent.firstChild){parent.removeChild(parent.firstChild);}
var result = this.parse(data);
var req = {
method: "POST",
url: "http://twitter.com/statuses/update.json",
headers: { "Content-type": "application/x-www-form-urlencoded" },
data: "status=" + encodeURIComponent(result),
onload: function(res){ GM_log('\u6295\u7a3f\u3057\u307e\u3057\u305f\u3002'); },
onerror: function(res){ GM_log(res.status + ":" + res.statusText); }
};
// debug
// GM_log(result);
GM_xmlhttpRequest(req);
},
insertCfgBoxTrigger : function(){
var trigger_pos = $x("descendant::table/tbody/tr/td", document)[0];
if(pg == "live")trigger_pos = document.getElementById("headtxt");
if(trigger_pos){
var bd = document.createTextNode(" | ");;
var trigger = document.createElement("a");
if(!pg.match("com_"))trigger.style.color = "yellow";
var trigger_txt = document.createTextNode("Tw!");
trigger.href = "javascript:void(0)";
trigger.id = "cfg_button";
trigger.addEventListener("click", function(e){
init = 1;
cfg_box.show(this);
e.target.blur();
},false);
trigger_pos.appendChild(bd);
trigger_pos.appendChild(trigger);
trigger.appendChild(trigger_txt);
}
}
};
var mn = new MataNico(Config);
Number.prototype.z = function(len){
var s = '0'.fill(len) + this.toString();
return s.substr(s.length - len);
};
String.prototype.fill = function(len){
var result = '';
for(var i = 0; i < len; i++) result += this;
return result;
};
function $x(xpath, context){
var x = document.evaluate(xpath, context, null, 7, null);
var array = [];
for(var i = 0;i < x.snapshotLength;i++){
array.push(x.snapshotItem(i));
}
return array;
}
new UpdateChecker({
script_name: "mata niconico miteru"
,script_url: "http://kojim71.googlepages.com/mataniconicomiteru.user.js"
,current_version: "0.3.2"
});
GM_addStyle(<><![CDATA[
#MataNico_cfg {
position: fixed;
width: 355px;
left: 30%;
top: 30%;
border: 1px solid #000;
background-color: #EEE;
overflow: auto;
padding : 10px;
}
#MataNico_cfg_header {
width: 355px;
border-bottom : 1px solid #000;
padding-bottom : 3px;
}
#MNconf_buttons {
margin: 2px;
padding: 5px;
margin-left: 138px;
}
#MNconf_clear {
margin : 5px;
}
#MNconf_cancel {
margin : 5px;
}
#MNconf_set {
margin : 5px;
}
#cfg_form_table {
margin-top : 5px;
}
.MN_input {
margin : 5px;
padding : 2px;
}
.ML_label {
margin : 20px;
}
]]></>);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment