lstdmi / Складчик - добавить свое описание

// ==UserScript==
// @name        Складчик - добавить свое описание
// @namespace   sk0
// @description Возможность добавить свое описание каждой складчине - Описание складчин хранится-ведется  во внешнем файле и подгружается, затем подставляет описание орентируясь на имена складчин. Важно кодировка текста в файле должна быть UTF-8 
// @include     https://skladchik.com/shares/
// @match       https://skladchik.com/shares/*
// @exclude     none
// @version     1.2
// @grant       none
// ==/UserScript==
//1.2 почему то неоторые складчинны отрабатывали не правильно пробел он какойто задвоенный был, и также добавил в одно правило \r\n or \n

//v+?  редактирования находясь прямо на странице 
//v+?  хранрить список гденть в cloud..
//v+ теперь файл подключайется внешний.
//v+ исправил вызов функции .split('\n'); на .split('\r\n');  в linux почему редактор не ставит \r в новой строке, в виндус \r\n (CRLF).. 

//пример внешнего файла text.txt -  1 строка название складчиный, 2 строка ее описание, 3 название складчины, 4 ее описание и тд

//[Специалист] Сертифицированный системный администратор Linux (Ubuntu), подготовка к LPIC (1,2,3)
//пароль "ewrdfsfewe223" скачал на ноут dev\toshiba
//Работа с календарем в 1С 8.3
//Блин скоро оплачевать))
//1С Предприятие в облаке (Кухар Богдан)
//жду жду


//Element input add in top left corner

document.getElementById("headerMover").innerHTML+="<input style='position:absolute; top:5px; left:15px;' type='file' onchange='openFile(event)'>";

Node.prototype.insertAfter = function(newNode, referenceNode) {
	  
	   
    return referenceNode.parentNode.insertBefore(
        newNode, referenceNode.nextSibling); // based on karim79's solution
};


 
    // JavaScript-код
//document.getElementsByClassName("PreviewTooltip")[3].firstChild
// Open file event
//var openFile = function(event) {
Node.prototype.openFile = function(event) {
var input = event.target;
var reader = new FileReader();
    reader.onload = function(){
      var text = reader.result;
      //console.log(reader.result.substring(0, 200));
	//parse file to massiv
      var sk_text = reader.result.split(/\r\n|\n/);//(/[^\r\n]+/g);  //('\r\n');  
//JS compare and add new element
var divs = document.getElementsByClassName("PreviewTooltip");

for (var i=0, len=divs.length; i<len; i++){
    var current = divs[i];
    for (var b=0, len0=sk_text.length; b<len0; b=b+2){
			//var newText3 = text3.replace(/\s+/g, '');
			 if (sk_text[b].replace(/\s+/g, '') == current.firstChild.nodeValue.replace(/\s+/g, '')) {
			console.log("test "+ sk_text[b] + " test 2 " + current.firstChild.nodeValue);
				 // getting required handles
				var refElem = current.firstChild;
				var parent = refElem.parentNode;

				// creating <p>paragraph three</p>
				//var txt = document.createTextNode("paragraph three");
				var txt = document.createTextNode(sk_text[b+1]);
				var paragraph = document.createElement("p");
				paragraph.appendChild(txt);

				// now we can call it the same way as insertBefore()
				parent.insertAfter(paragraph, refElem);
				//end insert div
				//console.log("test");
				}
			}
		
   
}
//end js


    };

     reader.readAsText(input.files[0]);
  };