Skip to content

Instantly share code, notes, and snippets.

Created August 29, 2008 08:38
Show Gist options
  • Save anonymous/7938 to your computer and use it in GitHub Desktop.
Save anonymous/7938 to your computer and use it in GitHub Desktop.
undefined
// ==UserScript==
// @name newcomicsearch
// @namespace http://d.hatena.ne.jp/dalmacija/
// @description newcomicsearch
// @include http://www.taiyosha.co.jp/comic/*
// ==/UserScript==
//作家定義
var favorite=new Array(
"御形屋 はるか",
"紺條 夏生",
"もと なおこ",
"はっとり みつる",
"咲 香里",
"冬川 基",
"近木 野中哉",
"岡本 倫",
"羅川 真里茂",
"林 ふみの",
"今 市子",
"沙村 広明",
"篠房 六郎",
"幸村 誠",
"中村 嘉宏",
"サトウ ナンキ",
"おがき ちか",
"群青",
"後藤 晶",
"きづき あきら",
"美樹本 晴彦",
"安彦 良和",
"相原 実貴",
"宮坂 香帆",
"倉藤 光二",
"技来 静也",
"松本 次郎",
"阿部 吉俊",
"よしなが ふみ",
"藤崎 竜",
"陽香",
"橘 裕",
"長谷川 スズ",
"星 樹",
"あづま ゆき",
"武富 健治",
"私屋 カヲル",
"曽田 正人",
"一条 ゆかり",
"仲村 佳樹",
"糸杉 柾宏",
"岡田 和人",
"桜瀬 琥姫",
"遠藤 浩輝",
"惣領 冬実",
"遠藤 海成",
"山岸 凉子",
"箸井 地図",
"一色 まこと",
"宇仁田 ゆみ",
"okama",
"桂 明日香",
"雁 須磨子",
"Cuvie",
"さいとう ちほ",
"末次 由紀",
"宗我部 としのり",
"高遠 るい",
"高崎 ゆうき",
"高屋 奈月",
"田中 メカ",
"稚野 鳥子",
"鶴田 謙二",
"桃森 ミヨシ",
"那州 雪絵",
"袴田 めら",
"ひぐち アサ",
"水上 悟志",
"六道 神士",
"いけだ たかし",
"犬上 すくね",
"入江 亜季",
"影崎 由那",
"カトウ ハルアキ",
"桐原 いづみ",
"高河 ゆん",
"しげの 秀一",
"志村 貴子",
"鈴木 ジュリエッタ",
"冬目 景",
"中村 明日美子",
"日本橋 ヨヲコ",
"松苗 あけみ",
"森 薫",
"ヤスダ スズヒト",
"弓 きいろ",
"吉住 渉",
"東 まゆみ",
"麻生 みこと",
"新井 理恵",
"荒川 弘",
"有吉 京子",
"井ノ本 リカ子",
"佐々木少年",
"椎名 軽穂",
"塩野 干支郎次",
"志水 アキ",
"奥瀬 サキ",
"目黒 三吉",
"小梅 けいと",
"神葉 理世",
"杉基 イクラ",
"鈴見 敦",
"高野 真之",
"田中 ユタカ",
"海藍",
"萩尾 望都",
"はっとり みつる",
"船戸 明里",
"山名 沢湖",
"やまむら はじめ",
"吉富 昭仁",
"山口 貴由",
"石川 雅之",
"植芝 理一",
"漆原 友紀",
"弐瓶 勉",
"北崎 拓",
"筑波 さくら",
"羽海野 チカ",
"板場 広志",
"内藤 泰弘",
"久世 番子",
"しゃあ",
"小石川 ふに",
"木村 紺",
"三嶋 くるみ",
"水城 せとな",
"大岩 ケンジ",
"倉藤 梓",
"林家 志弦",
"鴨居 まさね",
"田村 由美",
"鬼頭 莫宏",
"津田 雅美",
"高野 うい",
"花見沢 Q太郎",
"石田 敦子",
"秋吉 由美子",
"きゆづき さとこ",
"ゆうき まさみ",
"松本 光司",
"CLAMP",
"神尾 葉子",
"山本 ヤマト",
"夏海 ケイ",
"小林 立",
"よしづき くみち",
"浜田 よしかづ",
"榎本 ナリコ",
"あきづき 空太",
"安部 真弘",
"上田 夢人",
"海野 つなみ",
"二ノ宮 知子",
"星野 リリィ",
"鎌谷 悠希",
"皆川 亮二",
"岡田 芽武",
"熊倉 隆敏",
"黒田 硫黄",
"中原 アヤ",
"あずま きよひこ",
"東雲 太郎",
"西川 秀明",
"上遠野 浩平",
"シギサワカヤ"
);
// ************以下、External jQuery Loader
/** Usage:
var loader = new jQueryLoader(
{ // jQuery Core: required
name: 'jQuery',
version: '1.2.3',
url: 'http://blog.fulltext-search.biz/javascripts/gm/jquery-1.2.3.min.js'
},
[
{ // jQuery Plugin: optional
name: 'reflect',
version: '1.0', // optional: use '1.0' if undefined
url: 'http://blog.fulltext-search.biz/javascripts/gm/jquery.reflect.js'
}
]
);
**/
function jQueryLoader() { this.initialize.apply(this, arguments); };
var Util = {
bind: function() {
if (arguments.length < 3 && arguments[1] === undefined) return arguments[0];
var args = Util.toArray(arguments), __method = args.shift(), object = args.shift();
return function() {
return __method.apply(object, args.concat(Util.toArray(arguments)));
}
},
toArray: function(iterable) {
if (!iterable) return [];
var length = iterable.length || 0, results = new Array(length);
while (length--) results[length] = iterable[length];
return results;
},
extend: function(dist, source) {
for (var property in source) {
if(dist == source[property]) continue;
if(source[property] !== undefined) dist[property] = source[property];
}
return dist;
},
each: function(iteratorable, iterator) {
if(iteratorable.length === undefined)
for(var i in iteratorable) iterator.call( iteratorable[i], i, iteratorable[i] );
else
for(var i = 0, l = iteratorable.length, val = iteratorable[0];
i < l && iterator.call(val,i,val) !== false; val = iteratorable[++i] );
},
map: function(elems, callback) {
var ret = [];
for(var i=0,l=elems.length; i<l; i++) {
var value = callback(elems[i], i);
if(value !== null && value != undefined) {
if(value.constructor != Array) value = [value];
ret = ret.concat(value);
}
}
return ret;
},
parseQueryString: function(str) {
var memo = str.split('&');
for(var i=0,obj={},l=memo.length; i<l; i++) {
var pair = memo[i];
if((pair = pair.split('='))[0]) {
var name = decodeURIComponent(pair[0]);
var value = pair[1] ? decodeURIComponent(pair[1]) :undefined;
if(obj[name] !== undefined) {
if(obj[name].constructor != Array) obj[name] = [obj[name]];
if(value) obj[name].push(value);
} else {
var dummy = parseInt(new Number(value), 10);
obj[name] = isNaN(dummy) ? value : dummy;
}
}
}
return obj;
},
periodicalExecuter: function(callback, frequency) {
this.callback = callback;
this.frequency = frequency;
this.currentlyExecuting = false;
Util.extend(this, {
registerCallback: function() {
this.timer = setInterval(Util.bind(this.onTimerEvent, this), this.frequency * 1000);
},
execute: function() {
this.callback(this);
},
stop: function() {
if (!this.timer) return;
clearInterval(this.timer);
this.timer = null;
},
onTimerEvent: function() {
if (!this.currentlyExecuting) {
try {
this.currentlyExecuting = true;
this.execute();
} finally {
this.currentlyExecuting = false;
}
}
}
});
this.registerCallback();
}
};
jQueryLoader.prototype = {
cacheName: 'jQuery.Libraries',
namespace: 'jQueryLoader',
initialize: function(jquery, plugins) {
this.jquery = jquery;
this.plugins = plugins || [];
this.downloaded = 0;
this.permanents = eval(GM_getValue(this.cacheName, '({})'));
},
load: function(callback) {
if(typeof callback != 'function') return;
this.callback = callback;
this._load(this.jquery);
Util.each(this.plugins, Util.bind(function(i,lib) { this._load(lib); }, this));
this.eval();
},
_load: function(lib) {
lib.version = lib.version ? lib.version : '1.0';
if(!this.permanents[lib.name] || !this.permanents[lib.name].script ||
this.permanents[lib.name].version &&
this.compareVersion(this.permanents[lib.name].version, lib.version) < 0) {
if(!this.permanents[lib.name]) this.permanents[lib.name] = {};
Util.extend(this.permanents[lib.name], lib);
var self = this;
GM_xmlhttpRequest({
method: 'GET',
url: this.permanents[lib.name].url,
onload: function(res) {
self.permanents[lib.name].script = encodeURI(res.responseText);
GM_setValue(self.cacheName, self.permanents.toSource());
self.downloaded++;
},
onerror: function(res) { GM_log(res.status + ':' + res.responseText); }
});
} else { this.downloaded++; }
},
eval: function() {
if(this.plugins.length + 1 == this.downloaded) {
this.insert(this.permanents['jQuery'].script);
if(!unsafeWindow.__jQuery) unsafeWindow.__jQuery = {};
this.insert("__jQuery['" + this.namespace + "'] = jQuery.noConflict(true);");
var plugins = Util.map(this.plugins, Util.bind(function(plugin) {
return this.permanents[plugin.name].script;
}, this)).join("\n");
this.insert([
'(function(jQuery,$) {', plugins, "})(__jQuery['",
this.namespace, "'],__jQuery['", this.namespace, "']);"
].join(''));
this.wait();
} else {
setTimeout(Util.bind(function() { this.eval(); }, this), 10);
}
},
wait: function() {
if(unsafeWindow.__jQuery && unsafeWindow.__jQuery[this.namespace] &&
unsafeWindow.__jQuery[this.namespace]().jquery == this.permanents['jQuery'].version) {
this.callback(unsafeWindow.__jQuery[this.namespace]);
} else {
setTimeout(Util.bind(function() { this.wait(); }, this), 10);
}
},
insert: function(script) {
var lib = document.createElement('script');
lib.setAttribute('type', 'text/javascript');
lib.appendChild(document.createTextNode(decodeURI(script)));
document.getElementsByTagName('head')[0].appendChild(lib);
},
compareVersion: function(current, latest) {
var delta = 0;
var curr = current.split('.');
var ltst = latest.split('.');
for(var i=0, len = curr.length >= ltst.length ? curr.length : ltst.length; i<len; i++) {
var curr_num = parseInt(curr[i], 10);
var ltst_num = parseInt(ltst[i], 10);
if(isNaN(ltst_num) || curr_num > ltst_num) {
delta = 1;
break;
} else if(isNaN(curr_num) || curr_num < ltst_num) {
delta = -1;
break;
}
}
return delta;
}
};
//------------------------------jQueryローダオブジェクト
var loader = new jQueryLoader(
{ // jQuery Core: required
name: 'jQuery',
version: '1.2.3',
url: 'http://blog.fulltext-search.biz/javascripts/gm/jquery-1.2.3.min.js'
}
);
//------------------------------メイン。登録ワードを含むコミックをピックアップ
//alert(str);
loader.load(function($j) {
$j("table:has(th:contains('書籍扱'))").addClass("mainTable");
//---このページでは「書籍扱」という文字をトリガーに発売日一覧テーブルを判別
for (i in favorite){
$j("tr:contains("+favorite[i]+")").addClass("checked");
//---favリストを含む行にフラグを立てる
}
$j(".mainTable tr:not(.checked)").css({"color":"#aaa","font-size":"70%","height":"50%"});//---非チェック項目をグレーアウト
// $j(".mainTable tr:not(.checked)").html("");//--消去する場合はこんな感じ
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment