GisMeteo Humidex & WindCold

Баллы Humidex и ветрохолода для Gismeteo

当前为 2021-04-22 提交的版本,查看 最新版本

// ==UserScript==
// @name			GisMeteo Humidex & WindCold
// @version			2021.04.22.1
// @description		Баллы Humidex и ветрохолода для Gismeteo
// @include			http*://*gismeteo.ru/*
// @exclude			http*://*gismeteo.ru/*/10-days/
// @exclude			http*://*gismeteo.ru/*/2-weeks/
// @icon			https://www.google.com/s2/favicons?domain=gismeteo.ru
// @author			Rainbow-Spike
// @namespace		https://greasyfork.org/users/7568
// @homepage		https://greasyfork.org/ru/users/7568-dr-yukon
// @grant			GM_addStyle
// ==/UserScript==

GM_addStyle ( ".chart__temperature { height: 120px !important; } .adds { display: block; font-size: 80%; font-weight: bold; margin: 10px 5px -5px 5px; }" );

var temps = document.querySelectorAll ( '.w_temperature .value span:nth-of-type(1)' ),
	hums = document.querySelectorAll ( 'div[data-widget-id = humidity] .w-humidity' ),
	speeds = document.querySelectorAll ( '.widget__row_wind .w_wind span:nth-of-type(1)' ),
	temp, hum, speed, hdex, wcold, color, color1, t_sh, t_sh1;

function paint ( h ) {
	switch ( true ) {
		case h < 0: color = 'violet'; t_sh = 'white'; break;
		case h == 0: color = 'blue'; t_sh = 'violet'; break;
		case h < 10: color = 'blue'; t_sh = 'white'; break;
		case h == 10: color = 'darkturquoise'; t_sh = 'blue'; break;
		case h < 20: color = 'darkturquoise'; t_sh = 'white'; break;
		case h == 20: color = 'green'; t_sh = 'darkturquoise'; break;
		case h < 30: color = 'green'; t_sh = 'white'; break;
		case h == 30: color = 'gold'; t_sh = 'green'; break;
		case h < 40: color = 'gold'; t_sh = 'white'; break;
		case h == 40: color = 'orange'; t_sh = 'gold'; break;
		case h < 45: color = 'orange'; t_sh = 'white'; break;
		case h == 45: color = 'red'; t_sh = 'orange'; break;
		case h < 54: color = 'red'; t_sh = 'white'; break;
		case h == 54: color = 'darkred'; t_sh = 'red'; break;
		case h > 54: color = 'darkred'; t_sh = 'white'; break;
		default: color = 'black'; t_sh = 'white'; break;
	}
}

function paint1 ( h ) {
	switch ( true ) {
		case h <= -55: color1 = 'yellow'; t_sh1 = 'black'; break;
		case h <= -48: color1 = '#413'; t_sh1 = 'white'; break;
		case h <= -40: color1 = '#A47'; t_sh1 = 'white'; break;
		case h <= -28: color1 = '#C7A'; t_sh1 = 'white'; break;
		case h <= -10: color1 = '#87C'; t_sh1 = 'white'; break;
		case h <= 0: color1 = '#DDE'; t_sh1 = 'white'; break;
		case h > 0: color1 = 'white'; t_sh1 = 'black'; break;
		default: color1 = 'black'; t_sh1 = 'white'; break;
	}
}

for ( var i in temps ) {
	if ( temps [ i ].innerHTML != null ) temp = temps [ i ].innerHTML.replace ( '+', '' ).replace ( '−', '-' ) * 1;
	hum = hums [ i ].innerHTML * 1;
	speed = Math.pow ( speeds [ i ].innerHTML * 3.6, 0.16 );
	hdex = ( temp + 5 / 9 * ( ( 0.06112 * ( hums [ i ].innerHTML * 1 ) * Math.pow ( 10, ( 7.5 * temp / ( 237.7 + temp ) ) ) ) - 10 ) ) . toFixed ( 1 );
	wcold = ( 13.12 + 0.6215 * hdex - 11.37 * speed + 0.3965 * hdex * speed ) . toFixed ( 1 );
	paint ( hdex );
	paint1 ( wcold );
	if ( temps [ i ].innerHTML != null ) {
		temps [ i ].innerHTML =
			temps [ i ].innerHTML
			+ '<span class = "adds" style = "color: ' + color + '; text-shadow: 0 0 0 ' + t_sh + ', 0 0 2px ' + t_sh + ', 0 0 4px ' + t_sh + '">' + hdex + ' Hx</span>'
			+ '<span class = "adds" style = "color: ' + color1 + '; text-shadow: 0 0 0 ' + t_sh1 + ', 0 0 2px ' + t_sh1 + ', 0 0 4px ' + t_sh1 + '">' + wcold + ' wc</span>';
	}
}