Enhancements for Logchecker
// ==UserScript== // @name LogcheckerPlus // @namespace LogcheckerPlus // @author TNSepta // @description Enhancements for Logchecker // @include http*://*apollo.rip/logchecker.php // @include http*://*passtheheadphones.me/logchecker.php // @include http*://*notwhat.cd/logchecker.php // @include http*://*hydra.zone/logchecker.php // @version 1 // @grant GM_addStyle // ==/UserScript== upTable = document.getElementsByClassName('forum_post vertical_margin') if (upTable.length > 0) { GM_addStyle (".LCPtooltip {\ position: absolute;\ display: inline-block;\ border-bottom: 1px dotted black; /* If you want dots under the hoverable text */}\ .LCPtooltip .LCPtooltiptext {\ visibility: hidden;\ width: 480px;\ background-color: black;\ color: #fff;\ text-align: center;\ padding: 5px 0;\ border-radius: 6px;\ position: absolute;\ z-index: 1;}\ .LCPtooltip:hover .LCPtooltiptext {\ visibility: visible;}"); upTable[0].innerHTML = '<tr class = \'colhead\'><td colspan=\'2\'>Bulk Upload Files</td></tr><tr><td> <div id=\'fileselect\'>\t<div id=\'filedrag\'><font size = \'60\'>Drop files here</font></div><div id = \'output\'></div></div> </td></tr>' + upTable[0].innerHTML // getElementById function $id(id) { return document.getElementById(id); } // output information function Output(msg) { var m = $id('output'); m.innerHTML = msg + m.innerHTML; } // call initialization file if (window.File && window.FileList && window.FileReader) { Init(); }else{ Output("Error, AJAX upload not supported, check your browser!"); } // initialize function Init() { var fileselect = $id('fileselect'), filedrag = $id('filedrag') filedrag.style.height = '100px'; // file select fileselect.addEventListener('change', FileSelectHandler, false); // is XHR2 available? var xhr = new XMLHttpRequest(); if (xhr.upload) { // file drop filedrag.addEventListener('dragover', FileDragHover, false); filedrag.addEventListener('dragleave', FileDragHover, false); filedrag.addEventListener('drop', FileSelectHandler, false); filedrag.style.display = 'block'; } } // file drag hover function FileDragHover(e) { e.stopPropagation(); e.preventDefault(); e.target.className = (e.type == 'dragover' ? 'hover' : ''); } // file selection function FileSelectHandler(e) { // cancel event and hover styling FileDragHover(e); // fetch FileList object var files = e.target.files || e.dataTransfer.files; // process all File objects for (var i = 0, f; f = files[i]; i++) { UploadFile(f); } } function UploadFile(file) { var xhr = new XMLHttpRequest(); var reader = new FileReader(); reader.onload = function(e) { var url = "logchecker.php" var params = "action=takeupload&submit=Upload+log&pastelog=" + escape(reader.r###lt) xhr.open("POST", url, true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function() { //Call a function when the state changes. if (xhr.readyState == 4 && xhr.status == 200) { //Grab the relevant information. anaOut = xhr.responseText.split("<div id=\"content\">")[1].split("<div id=\"footer\">")[0]; console.log(anaOut); fname = file.name; logScore = anaOut.split("<strong>Score:</strong>")[1].split("(out of 100)")[0]; if (anaOut.indexOf("Log validation report:")>=0){ logReport = anaOut.split("<h3>Log validation report:</h3>")[1].split("</blockquote>")[0]; }else{ logReport = "No log report found, all is good!"; } Output("<div class = 'LCPtooltip'>"+logScore+"<span class='LCPtooltiptext'>"+logReport+"</span></div> "+fname+"</div><br>"); } } xhr.send(params); } reader.readAsText(file); } }