futaba log search

img,dat,mayのスレが消えた時に過去ログを表示しちゃう

目前為 2015-06-10 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name           futaba log search
// @namespace      https://github.com/himuro-majika
// @description    img,dat,mayのスレが消えた時に過去ログを表示しちゃう
// @include        http://img.2chan.net/b/res/*.htm
// @include        http://dat.2chan.net/b/res/*.htm
// @include        http://may.2chan.net/b/res/*.htm
// @require        http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js
// @grant          GM_xmlhttpRequest
// @icon           data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAPUExURYv4i2PQYy2aLUe0R////zorx9oAAAA$DFJOU/////8A+7YOUwAAAElJREFUeNqUj1EOwDAIQoHn/c88bX+2fq0kRsAoUXVAfwzCttWsDWzw0kNVWd2tZ5K9gqmMZB8libt4pSg6YlO3RnTzyxePAAMAzqMDgTX8hYYAAAAASUVORK5CYII=
// @version 0.0.1.20150610134758
// ==/UserScript==
this.$ = this.jQuery = jQuery.noConflict(true);

(function ($) {
	var waitnum = 3;	//404時のページ遷移ウェイト[秒]

	var title = document.title;								//ページタイトル
	
	//パターン:http://dat.2chan.net/b/res/11111111.htm
	var $S = document.domain.match(/^[^.]+/);			//鯖名(dat)
	var $F = location.pathname.match(/\d+\.htm/);		//ファイル名(11111111.htm)
	var $D = $F[0].match(/\d+/);						//ファイル名の数字(11111111)

	//ログ保管サービスジャンプ先URL
	var logService = {
		img: [
			{
				site: "logbox",
				url: "http://parupunte.net/logbox/detail.html?no=" + $D,
			},
			{
				site: "ふたろぐばこ",
				url: "http://imgbako.com/" + $F,
			},
		],
		dat: [
			{
				site: "リッチー",
				url: "http://appsweets.net/tatelog/dat/thread/" + $D,
			},
		],
		may: [
			{
				site: "ふたろぐばこ",
				url: "http://futalog.com/" + $F,
			},
		]
	}
	//鯖毎の振り分け
	if ( $S == "img" ) {
		logService_server = logService.img;
	}
	else if ( $S == "dat" ) {
		logService_server = logService.dat;
	}
	else if ( $S == "may" ) {
		logService_server = logService.may;
	}
	
	//404時
	if (title == "404 File Not Found") {
		var $h1 = $("body > h1");
		$h1.before("<div><span id='countdown'>" + waitnum + "</span>秒後に外部ログサイト(" + logService_server[0].site + ")に移動します</div>");
		$h1.before("<div>ログサイトリスト :</div>");
		$h1.before("<ul id='loglist'></ul>");
		var $li = $("#loglist");
		for each(var item in logService_server) {
			$li.append("<li><a href='" + item.url + "' target='_blank'>" + item.site + "*</a></li>");
		}
		satty($S, $D);
		setTimeout(redirect, waitnum * 1000);
		setInterval(countdown, 1000);
	}
	//通常時
	else {
		$("body > table").before("<a href='" + logService_server[0].url + "' target='_blank'>外部ログサイト*</a>");
	}

	/*
	 * ログ保管先にジャンプ
	 */
	function redirect() {
		location.href = logService_server[0].url;
	}
	
	function countdown() {
		waitnum--;
		$("#countdown").text(waitnum);
	}

	/*
	 * サッチーのログを検索
	 */
	function satty(saba, name){
		var url_prefix = "http://tsumanne.net";
		var url_ss;
		var url_cgi = "indexes.php?format=json&sbmt=URL&w=";
		if (saba == "img") {
			url_ss = "/si/";
		}
		else if (saba == "dat") {
			url_ss = "/sa/";
		}
		else {
			return;
		}
		var url_req = url_prefix + url_ss + url_cgi + name;
		GM_xmlhttpRequest({
			method: "GET",
			url: url_req,
			onload: function(response) {
				var res;
				eval("res=" + response.responseText);
				if (res.success) {
					$li.append("<li><a href='" + url_prefix + res.path + "' target='_blank'>「」ッチー*</a></li>");
				}
			}
		});
	}
})(jQuery);