Virtomomica: IC

Индикативные цены - парсинг и отображение

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name        Virtomomica: IC
// @namespace   virtonomica
// @description Индикативные цены - парсинг и отображение
// @include     http://virtonomica.ru/*/main/geo/countrydutylist/*
// @include     http://virtonomica.ru/*/main/unit/view/*/sale
// @version     0.1
// ==/UserScript==
var run = function() {
	//---------------------------------------------------------------------
	// работа с локальным хранилищем
	//---------------------------------------------------------------------
	/**
	* записать данные в локальнео хранилище, с проверкой ошибок
	*/
	function ToStorage(name,  val)
	{
	    try {
	       window.localStorage.setItem( name,  JSON.stringify( val ) );
	    } catch(e) {
	       out = "Ошибка добавления в локальное хранилище";
	       //console.log(out);
	    }
	}

	function getFromStorage(obj, id_shop)
	{
	    if (obj[id_shop] == null) return '';
	    return JSON.stringify(obj[id_shop]);
	}
	//---------------------------------------------------------------------
	// end of работа с локальным хранилищем
	//---------------------------------------------------------------------
	var wc_info = $("<div id=p_info></div>");

	// Проверим ссылку что это игровое поле
	var href = location.href;
	console.log( href );
	if (href.indexOf('countrydutylist') > 0) {
		console.log('parsing....');
		var  wc_parsing = $("<li><div id=parsing style='float:left;cursor:pointer; color: white;'> <img title='Запомнить ИЦ' alt='Запомнить ИЦ' src='http://www.iconsearch.ru/uploads/icons/snowish/32x32/document-save-as.png'> </div>");
		
		var container = $('#topblock').next();
		container = $("li:last", container).prev().parent();
		container.append( wc_parsing ) ;

		$("table.list").before( wc_info );

		$("#parsing").click( function() {
			ic_array = new Object();

			table = $("table.list");
			//console.log('table = ' + table.length);
			tr = $("tr.odd, tr.even", table);
			//console.log('tr = ' + tr.length);
			for (i=0; i<tr.length; i++){
				td = $("td > img", tr.eq(i) );
				//console.log('td = ' + td.length);
				for(j=0; j< td.length; j++){
					src = td.eq(j).attr('src');
					//console.log( src );
					name = td.eq(j).parent().next().text();
					//console.log( name );
					ic = td.eq(j).parent().next().next().next().next().text();
					ic = parseFloat( ic.replace('$', '').replace(' ', '').replace(' ', '').replace(' ', '') );
					//console.log( ic );
					ic_array[ src ] = new Object();
					ic_array[ src ][ 'name' ] = name;
					ic_array[ src ][ 'ic' ] = ic;
				}
	
			}

			//console.log( JSON.stringify( ic_array ) ); 
			ToStorage('ic_array', ic_array );
			$("#p_info").html("Запомнили значения ИЦ").css('color', 'green');

		});
	}
	console.log('start IC');

	$("table.grid").before( wc_info );

	//  Все остальные страницы
	ic_array = JSON.parse( window.localStorage.getItem('ic_array') );
	if ( ic_array == null ) {
		ic_array = new Object();
		$("#p_info").html("Не удалось получить значения ИЦ из локального хранилища").css('color', 'red');
	} else{
		//$("#p_info").html( JSON.stringify( ic_array ) );
	}

	// снабжение
	if (href.indexOf('sale') > 0) {

		table = $("table.grid");
		
		tr = $("tr.odd, tr.even", table);
		console.log('tr = ' + tr.length);
		for (i=0; i<tr.length; i++){
			td = $("td > a > img", tr.eq(i) );
			if ( td.length == 2) td = td.eq(1);
			else td = td.eq(0);

			//console.log("td= " + td.parent().html() );
			src = td.attr('src');
			console.log(  JSON.stringify( ic_array[src] ) );
			if ( ic_array[src] == null ) {
				$("#p_info").append("<br>" + td.attr('alt') + " - нет данных по ИЦ").css('color', 'red');
				continue;
			}
			inp = $("input[name^='storageData']", tr.eq(i) );
			if (inp.length == 3) inp = inp.eq(1);

			console.log("inp = " + inp.length);
			inp.before( "ИЦ: " + ic_array[src]['ic'] + "$<br>" );
			//td.parent().next().next().next().next().next().before( "ИЦ: " + ic_array[src]['ic'] + "$<br>" );
		}
	}

	console.log('end IC');
}
if(window.top == window) {
    var script = document.createElement("script");
    script.textContent = '(' + run.toString() + ')();';
    document.documentElement.appendChild(script);
}