DeletedUser19087
Vendég
A script Gabriel kérésére készült. A fórumon kell futtatni, ahol a hozzászólások vannak.
Felület:
- a két dátum mezőben kell megadni, mettől-meddig nyerje ki a játékosok neveit, akik hozzászóltak
- az adatok -és dátumok törlése gombokkal értelemszerűen törölhetjük a dátumot, ami ilyenkor visszaáll az alapértelmezett értékre, mindig az éppen aktuális napra, illetve törölhetjük az addig összegyűjtött adatokat a játékosokról és a hozzászólásaik mennyiségéről
- van még ezen kívül egy adatok gomb, amire ha kattintunk, akkor egy szövegmezőben megmutatja ki és hányszor szólt hozzá a fórumhoz; mindig összesített értékeket mutat, az összes lapról beérkezett adatokból; a szövegmezőbe egyszer belekattintva kijelöl mindent, így másolhatjuk excelbe és készíthetünk róla grafikonokat
Használat:
- futtatjuk, beállítjuk a dátumokat, ekkor kiszedi azon a lapon szereplő és a dátumnak is megfelelő hozzászólásokból a játékosok neveit és összesíti őket
- mehetünk a következő oldalra, szintén futtatjuk, és így tovább, mindig menti az aktuális oldalról beérkező adatokat és összegzi a korábbiakkal
- ha elértük az időintervallum végét, egy üzenettel jelzi
- első futtatásnál a dátumokat mindig az éppen aktuális napra állítja be
Felület:
- a két dátum mezőben kell megadni, mettől-meddig nyerje ki a játékosok neveit, akik hozzászóltak
- az adatok -és dátumok törlése gombokkal értelemszerűen törölhetjük a dátumot, ami ilyenkor visszaáll az alapértelmezett értékre, mindig az éppen aktuális napra, illetve törölhetjük az addig összegyűjtött adatokat a játékosokról és a hozzászólásaik mennyiségéről
- van még ezen kívül egy adatok gomb, amire ha kattintunk, akkor egy szövegmezőben megmutatja ki és hányszor szólt hozzá a fórumhoz; mindig összesített értékeket mutat, az összes lapról beérkezett adatokból; a szövegmezőbe egyszer belekattintva kijelöl mindent, így másolhatjuk excelbe és készíthetünk róla grafikonokat
Használat:
- futtatjuk, beállítjuk a dátumokat, ekkor kiszedi azon a lapon szereplő és a dátumnak is megfelelő hozzászólásokból a játékosok neveit és összesíti őket
- mehetünk a következő oldalra, szintén futtatjuk, és így tovább, mindig menti az aktuális oldalról beérkező adatokat és összegzi a korábbiakkal
- ha elértük az időintervallum végét, egy üzenettel jelzi
- első futtatásnál a dátumokat mindig az éppen aktuális napra állítja be
Kód beillesztése:
javascript:
function formatDateToString(date) {
// get day
dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
// get month
mm = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
// get year
yyyy = date.getFullYear();
// return date
return [yyyy + "-" + mm + "-" + dd, yyyy, mm, dd];
}
function clearNames() {
localStorage.removeItem("x");
$("textarea#scriptused_text").val("");
UI.SuccessMessage("A játékosok és a hozzászólások számai törlésre kerültek.", 2000);
}
function resetDates() {
localStorage.removeItem("from");
localStorage.removeItem("to");
defaultInputsValue()
$("input#date1")[0].value = localStorage["from"];
$("input#date2")[0].value = localStorage["to"];
}
function saveInputsValue() {
from = $("input#date1")[0].value;
to = $("input#date2")[0].value;
localStorage.setItem("from", from);
localStorage.setItem("to", to);
}
function defaultInputsValue() {
localStorage["from"] = localStorage["from"] != null ? localStorage["from"] : formatDateToString(new Date())[0];
localStorage["to"] = localStorage["to"] != null ? localStorage["to"] : formatDateToString(new Date())[0];
}
function createInput(callback) {
defaultInputsValue()
content = `<input type="date" value=${localStorage["from"]} id="date1" name="name">-tól</input>
<input type="date" value=${localStorage["to"]} id="date2" name="name">-ig</input>
<button type="button" id="button1" onclick="clearNames()">Adatok törlése</button>
<button type="button" id="button2" onclick="resetDates()">Dátumok törlése</button>
<button type="button" id="button3" onclick="run()">Adatok</button>`;
$(".forum-content.clearfix").find("tr").first().after(content);
callback()
}
createInput(loop)
$("#date1, #date2").on('change', function(event) {
async function change() {
await saveInputsValue();
await clearNames();
await loop();
await run();
}
change()
})
$("#button2").on("click", function(event) {
async function click() {
await resetDates();
await saveInputsValue();
await clearNames();
await loop();
await run();
}
click()
})
$("#button1, #button2, #button3, #date1, #date2").on("mouseenter", function(event) {
if (event.target.id == "button1") {
$(this).css("box-shadow", "0 0 5px 3px red");
} else if (event.target.id == "button2") {
$(this).css("box-shadow", "0 0 5px 3px red");
} else if (event.target.id == "button3") {
$(this).css("box-shadow", "0 0 5px 3px blue");
} else if (event.target.id == "date1") {
$(this).css("box-shadow", "0 0 5px 3px green");
} else if (event.target.id == "date2") {
$(this).css("box-shadow", "0 0 5px 3px green");
}
})
$("#button1, #button2, #button3, #date1, #date2").on("mouseleave", function() {
$(this).removeAttr("style");
})
function loop() {
var array = [];
for (var i = 0; i < $("form .post").length; i++) {
data = $(".igmline-date")[i].textContent.split(" ")[0];
format = formatDateToString(new Date());
if (data == "ma") {
day = format[3];
month = format[2];
year = format[1];
} else if (data == "tegnap") {
day = format[3] - 1;
month = format[2];
year = format[1];
} else {
day = data.split(".")[0];
month = data.split(".")[1];
year = data.split(".")[2];
}
if (month < 10) {
month = Number(month.charAt(1))
}
from = (new Date($("#date1").val()).getTime()) / 1000 - 7200;
forum = (new Date(year, month - 1, day).getTime()) / 1000;
to = (new Date($("#date2").val()).getTime()) / 1000 - 7200;
if (from <= forum && forum <= to) {
try {
array.push($(".postheader_left").eq(i).find("a").last().text().split(" - ")[1].trim());
} catch (error) {
array.push($(".postheader_left").eq(i).find("a").last().text().trim());
array.push($(".postheader_left")[i].childNodes[0].nodeValue.trim().split(" ")[0]);
}
} else if (forum > to) {
UI.InfoMessage("Elérted az időintervallum végét.", 2000);
}
}
localStorage["x"] = localStorage["x"] != null ? localStorage["x"] : "";
localStorage["x"] += String(array) + ",";
}
function output(arr) {
var a = [],
b = [],
prev;
arr.sort();
for (var i = 0; i < arr.length; i++) {
if (arr[i] !== prev) {
a.push(arr[i]);
b.push(1);
} else {
b[b.length - 1]++;
}
prev = arr[i];
}
return [a, b];
}
function run() {
if (!$("#scriptused_text").is(":visible")) {
$(".forum-content.clearfix").find("tbody").first().after('<textarea id="scriptused_text" rows="5" cols="30">');
$("textarea#scriptused_text").on("mouseup", function() {
$(this).select();
})
}
for (var i = 1; i < output(localStorage.getItem("x").split(","))[0].length; i++) {
$('textarea#scriptused_text').val($('textarea#scriptused_text').val() +
output(localStorage.getItem("x").split(","))[0][i] +
": " +
output(localStorage.getItem("x").split(","))[1][i] +
"\n");
}
}
void(0);