Librus Srednia

Liczy srednia wazona na librusie

// ==UserScript==
// @version 1.6
// @name Librus Srednia
// @namespace https://greasyfork.org/pl/scripts/16170-librus-srednia/code/Librus%20Srednia.user.js
// @description Liczy srednia wazona na librusie
// @include https://synergia.librus.pl/przegladaj_oceny/uczen
// @author szonek
// @grant none
// ==/UserScript==  


javascript:(function()
{
	var pole=document.getElementsByClassName('decorated stretch')[1].children[1];
	
	// pierwszy semestr
	for (var i=0;i<pole.children.length-2;i+=2)
	{
		pole.children[i].children[3].innerHTML="";
		pole.children[i].children[7].innerHTML="";
		var srednia=0;
		var sumawag=0;
		var srednia1=0;
		var sumawag1=0;
		for(var j=0; j<pole.children[i].children[2].children.length;j++)
		{
			
			var string=pole.children[i].children[2].children[j].children[0].getAttribute("title");
			if(string[string.search("Licz do średniej: ")+18]=="t")
			{
				var waga=parseInt(string.substr(string.search("Waga: ")+5));
				var ocena=pole.children[i].children[2].children[j].children[0].innerHTML;
				var liczba=parseInt(ocena);
				if(ocena[1]=="+") liczba+=0.5;
				else  if(ocena[1]=="-") liczba-=0.25;
				srednia+=liczba*waga;
				sumawag+=waga;
			}
		}
		if(!isNaN(srednia/sumawag))pole.children[i].children[3].innerHTML=Math.round(srednia/sumawag*100)/100;
		else pole.children[i].children[3].innerHTML="-";
		srednia=0;
		sumawag=0;

		for(var j=0; j<pole.children[i].children[6].children.length;j++)
		{
			
			var string1=pole.children[i].children[6].children[j].children[0].getAttribute("title");
			if(string1[string1.search("Licz do średniej: ")+18]=="t")
			{
				var waga1=parseInt(string1.substr(string1.search("Waga: ")+5));
				var ocena1=pole.children[i].children[6].children[j].children[0].innerHTML;
				var liczba1=parseInt(ocena1);
				if(ocena1[1]=="+") liczba1+=0.5;
				else  if(ocena1[1]=="-") liczba1-=0.25;
				srednia1+=liczba1*waga1;
				sumawag1+=waga1;
			}
		}
		if(!isNaN(srednia1/sumawag1))pole.children[i].children[7].innerHTML=Math.round(srednia1/sumawag1*100)/100;
		else pole.children[i].children[7].innerHTML="-";
		srednia1=0;
		sumawag1=0;
	}
	

	//koniec roku
	
	for (var i=0;i<pole.children.length-2;i+=2)
	{
		pole.children[i].children[9].innerHTML="";
		var a=parseFloat(pole.children[i].children[3].innerHTML);
		var b=parseFloat(pole.children[i].children[7].innerHTML);
		if(isNaN(a)&&isNaN(b)) pole.children[i].children[9].innerHTML="-";
		else if(isNaN(a)) pole.children[i].children[9].innerHTML=b;
		else if(isNaN(b)) pole.children[i].children[9].innerHTML=a;
                else pole.children[i].children[9].innerHTML=Math.round((a+b)*50)/100;
	}
})();