Lang-8 - Minor "All Corrections" View Enhancer

Easier to read and view corrections in the "All Corrections" view. - https://greasyfork.org/en/users/3656-kaiko

目前為 2015-07-27 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Lang-8 - Minor "All Corrections" View Enhancer
// @namespace   Lang8LTR
// @description	Easier to read and view corrections in the "All Corrections" view. - https://greasyfork.org/en/users/3656-kaiko
// @include     http://lang-8.com/*/journals/*
// @include     https://lang-8.com/*/journals/*
// @version     1
// @grant       none
// ==/UserScript==

document.getElementById("showAll").onclick = function showallexecuteLineThroughRemoval() {
	var haveWeAlreadyRun = false;
	var allCorrectionsParent = document.getElementById("allCorrectionsPanel_c");
	var allCorrections = document.getElementById("allCorrectionsPanel");
	//Resize the window
	var heightBox = allCorrections.getElementsByClassName("bd")[0];
	allCorrections.style.width = window.innerWidth/1.5 + "px";
	heightBox.style.height = window.innerHeight/1.5 + "px";
	//ReCenter it
	allCorrectionsParent.style.left = window.innerWidth/6.2 + "px";
	allCorrectionsParent.style.top = window.innerHeight/7 + "px";
	if (!haveWeAlreadyRun){
		//Remove some unnecessary spacing
		var toRep = heightBox.innerHTML;
		var toRepB = toRep.replace(/<br>/g, "");
		var toRepC = toRepB.replace(/<p><\/p>/g, "");
		var toRepD = toRepC.replace("Title", "Title<br>");
		var toRepE = toRepD.replace("Main Body", "<br>");
		heightBox.innerHTML = toRepE;
		//Break up our corrections with a background
		var bb = allCorrections.getElementsByClassName("correction_field");
		for (i = 0; i < bb.length; ++i) {
			bb[i].style.backgroundColor = "#E5E5E5"
		}
		//Remove "All Corrections" line-through
		var b = allCorrections.getElementsByTagName("span");
		for (i = 0; i < b.length; ++i) {
			if (b[i].style.textDecorationLine){
				b[i].innerHTML = "";
			}
		}
		//Remove duplicate non-corrected lines from our entry, for further readability and less confusion
		//Hacked-in absurdly as Lang-8's developers didn't correctly use tags around our written text, and corrections.
		var bc = allCorrections.textContent;
		var bd = allCorrections.getElementsByClassName("correction");
		for (i = 0; i < bd.length; ++i) {
			var re = new RegExp(bd[i].textContent, 'g');
			var matchCount  = bc.match(re).length;
			if (matchCount >= 2){
				console.log(matchCount +"	Diff is:	"+bd[i].textContent);
				bd[i].textContent = "CORRECT";
			}
		}
		//Remove default NoCorrectionNecessary message
		var c = allCorrections.getElementsByClassName("corrected perfect");
		for (i = 0; i < c.length; ++i) {
			c[i].innerHTML = "";
		}
		//Reinsert comment image next to comments since they don't always have one
		var d = allCorrections.getElementsByClassName("correction_comment");
		for (i = 0; i < d.length; ++i) {
			d[i].innerHTML = '<img alt="Comment" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAMAAABhq6zVAAAANlBMVEV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3AS/7wAAAAEXRSTlMACTReYWJmdpaf7e7v8PHy93y2WnUAAAA2SURBVHjancc3DgAgEMTAJeew//8sFKcTNVPZ8IOiO1SqBj6+ZlBNhEWxPK5MFgORd4RKVuIAotwHM1W7LmAAAAAASUVORK5CYII" />' + " " + d[i].innerHTML + "<br />";
			d[i].className = '';
		}
		//Remove empty 'correct' fields
		var e = allCorrections.getElementsByClassName("correct");
		for (i = 0; i < e.length; ++i) {
			if (e[i].textContent == ''){
				e[i].className = '';
			}
		}
		haveWeAlreadyRun = true;
	}
};

window.onload = function onloadexecuteLineThroughRemoval(){
	//Remove correction posts' themselves' line-through
	var a = document.getElementsByClassName("sline");
	for (i = 0; i < a.length; ++i) {
		a[i].innerHTML='';
	}
}