Import

Import your card collection in CSV spreadsheet format into tradingcarddb.com

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==

// @name        Import
// @description Import your card collection in CSV spreadsheet format into tradingcarddb.com
// @namespace   baseballsimulator.com
// @include     http://www.tradingcarddb.com/CollectionAddMultiples.cfm/sid/*
// @version     1
// @grant       GM_log
// @grant       GM_setValue
// @grant       GM_getValue
// @grant       GM_xmlhttpRequest
// ==/UserScript==

var thisURL = document.URL;

if(thisURL.indexOf('?PageIndex=') != -1){

	var pageIndex = thisURL.substring(thisURL.indexOf('=')+1);

}

var retrievedValue = GM_getValue('value','');

var form = document.evaluate("//form[@id='CFForm_1']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
form = form.snapshotItem(0);

var button = document.evaluate("//form[@id='add']/p/button[@class='btn btn-primary']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
button = button.snapshotItem(0);

var endPagination;
var endPaginations = document.evaluate("//nav/ul[@class='pagination']/li/a/@href", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = 0; i < endPaginations.snapshotLength; i++) {

	endPagination = endPaginations.snapshotItem(i);

}


endPagination = endPagination.textContent;
endPagination = endPagination.substring(endPagination.indexOf('=')+1);


if(thisURL.indexOf('?PageIndex=') == -1){

	GM_setValue('endPagination',endPagination);

}


var set = document.evaluate("//table/tbody/tr/td/h1", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
set = set.snapshotItem(0);
set = set.textContent;

var cardYear = set.substring(0,4);
set = set.substring(5);

var amounts = document.evaluate("//table[@class='table table-condensed table-hover']/tbody/tr/td[4]/select", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

var cardNumber;
var cardNumbers = document.evaluate("//table[@class='table table-condensed table-hover']/tbody/tr/td[6]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);

for (var i = 0; i < cardNumbers.snapshotLength; i++) {

	cardNumber = cardNumbers.snapshotItem(i);
	
	cardNumber = trim(cardNumber.textContent);

	if(retrievedValue != ''){

		var retrievedValueArray = retrievedValue.split('\n');
	
		for (var j = 0; j < retrievedValueArray.length; j++) {

			var retrievedValueArrayRecord = retrievedValueArray[j].split(',');
			var year = retrievedValueArrayRecord[1];
			var number = retrievedValueArrayRecord[5];
			var amount = retrievedValueArrayRecord[6];

			

			if(cardNumber == number && cardYear == year){

				switch(amount) {
    					case '1':
        				amounts.snapshotItem(i).selectedIndex = 1;
        				break;
    					case '2':
					amounts.snapshotItem(i).selectedIndex = 2;
        				break;
    					case '3':
					amounts.snapshotItem(i).selectedIndex = 3;
        				break;
    					case '4':
					amounts.snapshotItem(i).selectedIndex = 4;
        				break;					
    					case '5':
					amounts.snapshotItem(i).selectedIndex = 5;
        				break;					
    					case '6':
					amounts.snapshotItem(i).selectedIndex = 6;
        				break;					
    					case '7':
					amounts.snapshotItem(i).selectedIndex = 7;
        				break;
    					case '8':
					amounts.snapshotItem(i).selectedIndex = 8;
        				break;					
    					case '9':
					amounts.snapshotItem(i).selectedIndex = 9;
        				break;					
    					case '10':
					amounts.snapshotItem(i).selectedIndex = 10;
        				break;					
				} 				


			}
		
		}

	}	

}

var pageIndex = GM_getValue('currentPage','');
var endPagination = GM_getValue('endPagination','');
var isImport = GM_getValue('isImport',false); 

if(endPagination == "#"){

	GM_setValue('currentPage',1);
	GM_setValue('isImport',false);

}


if(parseInt(pageIndex) <= parseInt(endPagination) && isImport == true){


	if(thisURL.indexOf('?ACTION=ADD') != -1){

		
		pageIndex = parseInt(pageIndex) + 1;
		GM_setValue('currentPage',pageIndex);
		var newURL = thisURL.substring(0,thisURL.indexOf('?')+1) + 'PageIndex=' + pageIndex;
		window.location = newURL;

	}
	else
	{

		click(button);

	}

}



var myText = document.createElement('div');
myText.setAttribute('id','excel');
myText.innerHTML ='<textarea id="excel" style="width:70%;" rows=40 type="text"  WRAP=OFF /></textarea>';

var myButton = document.createElement("button");
myButton.innerHTML = 'Import';
myButton.setAttribute('type','button');

myButton.setAttribute('value','Import');



if(thisURL.indexOf('?PageIndex=') != -1){

	myButton.setAttribute('disabled','true');
	myButton.setAttribute('style','color:Grey; text-decoration:none;');
}



form.parentNode.insertBefore(myButton,form.followingSibling); 
form.parentNode.insertBefore(myText,form.followingSibling); 



function makeCounter(textarea){
   if(!textarea || textarea._already_count)
     return;
  var length = -1;

   setInterval(function(){
     var taLength = textarea.value.length;
     if(taLength != length){
       length = taLength;
       count();
     }
   }, 100);

   var div = document.createElement("div");
   with(div.style){
     textAlign = "left";
     backgroundColor = "#FFFFFF";
     color = "black";
   }
  //div.appendChild(document.createTextNode("Count:"));
  var countArea = document.createElement("span");
  countArea.style.margin = "5px";
  //div.appendChild(countArea);

  var checks = "line,space,tab".split(",");
  var inputs =  checks.map(function(check){
    var label = document.createElement("label");
    var input =document.createElement("input");
    input.type = "checkbox";
    input.style.margin = "2px";
    label.appendChild(input);
    label.appendChild(document.createTextNode(check));

    return input;
  });
  inputs.forEach(function(input){
   input.addEventListener("change", count, true)
  });
  textarea.parentNode.insertBefore(div, textarea.nextSibling);
  textarea._already_count = true;

  function count(){
     var value = textarea.value;

     	if(value != ''){

		GM_setValue('value',value);

	}

     var filter = {
       line: /\r|\n/g,
       space: /\s/g,
      tab: /\t/g
    };

     inputs[1].checked = true;

    for(var i=0;i<checks.length;i++){
      if(inputs[i].checked){
        value = value.replace(filter[checks[i]], "");
      }
     }
     var num = value.length;
       countArea.innerHTML = num;
  }
 }

 var tas = document.getElementsByTagName("textarea");

 
 Array.prototype.forEach.call(tas, function(ta){

	makeCounter(ta);
 });

document.addEventListener('click', function(event) {


	if(event.target.getAttribute('value') == 'Import'){

		GM_setValue('isImport',true);
		window.location = thisURL + '?PageIndex=1';


	}


}, true);


function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

function click(elm) {
     var evt = document.createEvent('MouseEvents');
     evt.initMouseEvent('click', true, true, window, 0, 1, 1, 1, 1, false, false, false, false, 0, null);
     elm.dispatchEvent(evt);
}