2009-06-13

ugigiの検索結果から作品へのリンクを生成するGreasemonkeyを作ったよ

http://anond.hatelabo.jp/20090611195327

javascriptが全然分からないのでググりまくってなんとかできた。

XPathで要素の指定をもうちょっとなんとかするとか、今後の課題は多い。

&になっている箇所は&に置換して下さい。

あと、ugigiの検索結果をAutoPagerで自動的に読み込むようにしようと挑戦してみたものの挫けたよ。

どのようにnextlinkを指定すれば上手く行くのだろう。

// ==UserScript==
// @name           ugigi link test
// @namespace      http://anond.hatelabo.jp/
// @include        http://ugigi.dvrdns.org/?*
// ==/UserScript==

var sakuhin = document.getElementsByClassName('sakuhin');
for (var i = 0; i < sakuhin.length; i++) {
	var relatedurl = unescape(sakuhin[i].getElementsByClassName('link')[0].childNodes[0].href);
	var siteinfotext = sakuhin[i].getElementsByClassName('sinfo')[0].getElementsByTagName('a')[0].text;
	var linkurl = genurl(relatedurl, siteinfotext);
	if (linkurl != null) {
		var a = document.createElement('a');
		a.textContent = 'Link';
		a.href = linkurl;
		var title = sakuhin[i].getElementsByClassName('title')[0];
		title.appendChild(a);
	}
}

function genurl(relatedurl, siteinfotext) {
	match = relatedurl.match(/\/([a-z_]+)(\d*)\/(\d+$)/);
	var board = match[1];
	var boardnum = match[2];
	var idnum = match[3];
	var lognum = siteinfotext.match(/\d+$/);
	var url;
	switch (board) {
		case 'ssw_l':
			url = 'http://coolier.sytes.net:8080/sosowa/ssw_l/?mode=read&amp;amp;key=' + idnum + '&amp;amp;log=' + lognum;
			break;
		case 'ssw_p':
			url = 'http://coolier.sytes.net:8080/sosowa/ssw_p/?mode=read&amp;amp;key=' + idnum + '&amp;amp;log=' + lognum;
			break;
		case 'compe':
			url = 'http://www10.atpages.jp/thcompe/compe' + boardnum + '/?mode=read&amp;amp;key=' + idnum + '&amp;amp;log=0';
			break;
		case 'yotogi':
			url = 'http://yotogi.com/yotogi/?mode=read&amp;amp;key=' + idnum + '&amp;amp;log=' + lognum;
			break;
		case 'comp':
			var nechocompenum = siteinfotext.match(/[一二三四]/);
			switch (nechocompenum[0]) {
				case '一':
					url = 'http://easy2life.sakura.ne.jp/necho/comp/anthologys.cgi?action=html2&amp;amp;key=' + idnum;
					break;
				case '二':
					url = 'http://easy2life.sakura.ne.jp/necho/comp2/anthologys.cgi?action=html2&amp;amp;key=' + idnum;
					break;
				case '三':
					url = 'http://green.ribbon.to/~ronron/comp/?mode=read&amp;amp;key=' + idnum + '&amp;amp;log=';
					break;
				case '四':
					url = 'http://green.ribbon.to/~ronron/comp4/?mode=read&amp;amp;key=' + idnum + '&amp;amp;log=0';
					break;
				default:
					url = null;
					break;
			}
			break;
		default:
			url = null;
			break;
	}
	return url;
}
記事への反応 -

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん