f8g

地方競馬の競走馬の出走履歴の順位の背景に色つけるGreasemonkey

これに色つける。http://www2.keiba.go.jp/keibaWeb/PageFlows/HorseMarkInfo/HorseMarkInfoController.jpf?k_lineageLoginNo=2002106491
Firebugがあればコンソールに勝率、2着までの率、複勝率とか、最大の着差とか前走から何週間経ってるかを出力。
data:text/html;charset=utf-8,//%20%3D%3DUserScript%3D%3D%0A//%20@name%20%20%20%20%20%20%20%20%20%20nar_add_color%0A//%20@namespace%20%20%20%20%20http%3A//d.hatena.ne.jp/arikui/%0A//%20@include%20%20%20%20%20%20%20http%3A//www2.keiba.go.jp/keibaWeb/PageFlows/HorseMarkInfo/HorseMarkInfoController.jpf%3Fk_lineageLoginNo%3D*%0A//%20%3D%3D/UserScript%3D%3D%0A%0A%28function%28%29%7B%0A%0Avar%20ranks%20%3D%20%7B%7D%3B%0Avar%20max_lead%20%3D%200%3B%0A%0Avar%20dbtbl%20%3D%20%24c%28%22dbtbl%22%2C%20%22td%22%29%5B0%5D%3B%0Avar%20dbtbl_rows%20%3D%20dbtbl.getElementsByTagName%28%22tr%22%29%3B%0A%0Avar%20all_race_num%20%3D%20dbtbl_rows.length%20-%202%3B%0A%0Afor%28var%20i%20%3D%202%3B%20i%20%3C%20dbtbl_rows.length%3B%20i++%29%7B%0A%09var%20tds%20%3D%20dbtbl_rows%5Bi%5D.getElementsByTagName%28%22td%22%29%3B%0A%09var%20elm%20%3D%20tds%5B12%5D%3B%0A%09var%20rank%20%3D%20elm.childNodes%5B1%5D.textContent%3B%0A%0A%09if%28%20isNaN%28parseInt%28rank%29%29%20%29%7B%0A%09%09all_race_num--%3B%0A%09%09continue%3B%0A%09%7D%0A%0A%09switch%28rank%29%7B%0A%09%09case%20%221%22%3A%0A%09%09%09elm.style.backgroundColor%20%3D%20%22%23fcc%22%3B%0A%09%09%09%28ranks%5B%221%22%5D%29%3F%20ranks%5B%221%22%5D++%20%3A%20ranks%5B%221%22%5D%20%3D%201%3B%0A%09%09%09var%20lead%20%3D%20parseFloat%28tds%5B14%5D.textContent%29%0A%09%09%09if%28lead%20%3E%20max_lead%29%0A%09%09%09%09max_lead%20%3D%20lead%3B%0A%09%09%09break%3B%0A%09%09case%20%222%22%3A%0A%09%09%09elm.style.backgroundColor%20%3D%20%22%23ccf%22%3B%0A%09%09%09%28ranks%5B%222%22%5D%29%3F%20ranks%5B%222%22%5D++%20%3A%20ranks%5B%222%22%5D%20%3D%201%3B%0A%09%09%09break%3B%0A%09%09case%20%223%22%3A%0A%09%09%09elm.style.backgroundColor%20%3D%20%22%23cfc%22%3B%0A%09%09%09%28ranks%5B%223%22%5D%29%3F%20ranks%5B%223%22%5D++%20%3A%20ranks%5B%223%22%5D%20%3D%201%3B%0A%09%09%09break%3B%0A%09%7D%0A%7D%0A%0Atry%7B%0A%09console.log%28%5B%0A%09%09Math.round%28%20%20ranks%5B%221%22%5D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*%201000%20/%20all_race_num%29%20/%2010%2C%0A%09%09Math.round%28%20%28ranks%5B%221%22%5D+ranks%5B%222%22%5D%20%20%20%20%20%20%20%20%20%20%20%29%20*%201000%20/%20all_race_num%29%20/%2010%2C%0A%09%09Math.round%28%20%28ranks%5B%221%22%5D+ranks%5B%222%22%5D+ranks%5B%223%22%5D%29%20*%201000%20/%20all_race_num%29%20/%2010%2C%0A%09%09max_lead%2C%0A%09%09%28new%20Date%28%29%20-%20Date.parse%28dbtbl_rows%5Bi-1%5D.getElementsByTagName%28%22td%22%29%5B0%5D.textContent%29%29%20/%20%281000%20*%2060%20*%2060%20*%2024%20*%207%29%0A%09%5D.join%28%22%5Cn%22%29%29%0A%7D%0Acatch%28e%29%7B%7D%0A%0A%0Afunction%20%24c%28className%2C%20tagName%2C%20parent%29%7B%0A%09var%20cs%20%3D%20%5B%5D%3B%0A%09tagName%20%3D%20tagName%20%7C%7C%20%22*%22%3B%0A%09parent%20%3D%20parent%20%7C%7C%20document%3B%0A%0A%09var%20tags%20%3D%20parent.getElementsByTagName%28tagName%29%3B%0A%09for%28var%20i%20%3D%200%3B%20i%20%3C%20tags.length%3B%20i++%29%0A%09%09if%28tags%5Bi%5D.getAttribute%28%22class%22%29%20%3D%3D%20className%29%0A%09%09%09cs.push%28tags%5Bi%5D%29%3B%0A%0A%09return%20cs%3B%0A%7D%0A%7D%29%28%29%0A%0A//.user.js

// ==UserScript==
// @name          nar_add_color
// @namespace     http://d.hatena.ne.jp/arikui/
// @include       http://www2.keiba.go.jp/keibaWeb/PageFlows/HorseMarkInfo/HorseMarkInfoController.jpf?k_lineageLoginNo=*
// ==/UserScript==

(function(){

var ranks = {};
var max_lead = 0;

var dbtbl = $c("dbtbl", "td")[0];
var dbtbl_rows = dbtbl.getElementsByTagName("tr");

var all_race_num = dbtbl_rows.length - 2;

for(var i = 2; i < dbtbl_rows.length; i++){
	var tds = dbtbl_rows[i].getElementsByTagName("td");
	var elm = tds[12];
	var rank = elm.childNodes[1].textContent;

	if( isNaN(parseInt(rank)) ){
		all_race_num--;
		continue;
	}

	switch(rank){
		case "1":
			elm.style.backgroundColor = "#fcc";
			(ranks["1"])? ranks["1"]++ : ranks["1"] = 1;
			var lead = parseFloat(tds[14].textContent)
			if(lead > max_lead)
				max_lead = lead;
			break;
		case "2":
			elm.style.backgroundColor = "#ccf";
			(ranks["2"])? ranks["2"]++ : ranks["2"] = 1;
			break;
		case "3":
			elm.style.backgroundColor = "#cfc";
			(ranks["3"])? ranks["3"]++ : ranks["3"] = 1;
			break;
	}
}

try{
	console.log([
		Math.round(  ranks["1"]                        * 1000 / all_race_num) / 10,
		Math.round( (ranks["1"]+ranks["2"]           ) * 1000 / all_race_num) / 10,
		Math.round( (ranks["1"]+ranks["2"]+ranks["3"]) * 1000 / all_race_num) / 10,
		max_lead,
		(new Date() - Date.parse(dbtbl_rows[i-1].getElementsByTagName("td")[0].textContent)) / (1000 * 60 * 60 * 24 * 7)
	].join("\n"))
}
catch(e){}


function $c(className, tagName, parent){
	var cs = [];
	tagName = tagName || "*";
	parent = parent || document;

	var tags = parent.getElementsByTagName(tagName);
	for(var i = 0; i < tags.length; i++)
		if(tags[i].getAttribute("class") == className)
			cs.push(tags[i]);

	return cs;
}
})()