Trambambaj

układ okien live

Feb 5th, 2022 (edited)
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name       układ okien live
  3. // @version    1.3
  4. // @include    *hegira.com.pl/*
  5. // ==/UserScript==
  6. "use strict;";
  7. const cookieOBJ = JSON.parse(`{${document.cookie
  8.   .split("; ")
  9.   .filter((x) => x.includes("px"))
  10.   .map(function (x) {
  11.     let temp = x.split("=");
  12.     temp[0] = `"${temp[0]}"`;
  13.     temp[1] = `"${temp[1]}"`;
  14.     return temp.join(":");
  15.   })
  16.   .join(",")}}
  17. `);
  18. $(
  19.   "p:contains(Aktualizacja plików cookie nastąpi po ponownym przeładowaniu strony.)"
  20. ).after(
  21.   "<h2>Ustaw układ okien ze skryptu</h2>" +
  22.     "<p style ='color: red;'>Wartości w polach należy wpisywać w następującym formacie: liczbapx,liczbapx  przykład: 130px,28px  . 0000px oznacza brak ustawiań możliwych do odczytania.</p>" +
  23.     "<p name ='srodekYX'> Główne okno</p>" +
  24.     `<input type="text" class ="verifier" id="srodekYX" size="10" value="${
  25.      cookieOBJ.srodeky || "0000px"
  26.    },${cookieOBJ.srodekx || "0000px"}">` +
  27.     "<p> Pozostałe okna ustawiasz względem lewego górnego rogu głównego okna.</p>" +
  28.     "<p name = 'onlinesysYX'> Czat</p>" +
  29.     `<input type="text" class ="verifier" id="onlinesysYX" size="10" value="${
  30.      cookieOBJ.onlinesysy || "0000px"
  31.    },${cookieOBJ.onlinesysx || "0000px"}">` +
  32.     "<p name ='pole_komunikatuYX'>Komunikaty</p>" +
  33.     `<input type="text" class ="verifier" id="pole_komunikatuYX" size="10" value="${
  34.      cookieOBJ.pole_komunikatuy || "0000px"
  35.    },${cookieOBJ.pole_komunikatux || "0000px"}">` +
  36.     "<p name ='infosysYX'> Pasek produkcji</p>" +
  37.     `<input type="text" class ="verifier" id="infosysYX" size="10" value="${
  38.      cookieOBJ.infosysy || "0000px"
  39.    },${cookieOBJ.infosysx || "0000px"}">` +
  40.     "<p name = 'panel_flotYX'> Panel flot</p>" +
  41.     `<input type="text" class ="verifier" id="panel_flotYX" size="10" value="${
  42.      cookieOBJ.panel_floty || "0000px"
  43.    },${cookieOBJ.panel_flotx || "0000px"}">` +
  44.     "<p name ='porownanie_flotYX'> Panel porównania flot</p>" +
  45.     `<input type ="text" class ="verifier" id ="porownanie_flotYX" size ="10" value ="${
  46.      cookieOBJ.porownanie_floty || "0000px"
  47.    },${cookieOBJ.porownanie_flotx || "0000px"}">` +
  48.     "<p name ='panel_dywiYX'> Panel dywizji</p>" +
  49.     `<input type="text" class ="verifier" id="panel_dywiYX" size="10" value="${
  50.      cookieOBJ.panel_dywiy || "0000px"
  51.    },${cookieOBJ.panel_dywix || "0000px"}">` +
  52.     "<p name='srodekmapyYX'> Okno mapy kosmosu</p>" +
  53.     `<input type="text" class ="verifier" id="srodekmapyYX" size="10" value="${
  54.      cookieOBJ.srodekmapyy || "0000px"
  55.    },${cookieOBJ.srodekmapyx || "0000px"}">` +
  56.     "<p name ='zasobysysYX'> Surowce</p>" +
  57.     `<input type="text" class ="verifier" id="zasobysysYX" size="10" value="${
  58.      cookieOBJ.zasobysysy || "0000px"
  59.    },${cookieOBJ.zasobysysx || "0000px"}">` +
  60.     "<p name ='tutorialYX'> Samouczek/Doradca</p>" +
  61.     `<input type="text" class ="verifier" id="tutorialYX" size="10" value="${
  62.      cookieOBJ.tutorialy || "0000px"
  63.    },${cookieOBJ.tutorialx || "0000px"}"><br/>` +
  64.     '<button type="button" id = "aktCook">Aktualizuj</button><br/>' +
  65.     "<p>Poniższe dwa przyciski służą do zapamiętywania w pamięci przeglądarki i wczytywania zapamiętanych ustawień z pamieci przeglądarki. W polach należy wpisywać cyfry 0-9</p>" +
  66.     '<button type="button" id="zap" title="Zapamiętaj ustawienia na wybranej pozycji.">Zapamiętaj</button><input type="text" id="zapIn" size="1px" title="Wprowadź cyfrę 0-9"></input><br/>' +
  67.     '<button type="button" id="wcz" title="Wczytaj ustawienia z wybranej pozycji.">Wczytaj</button><input type="text" id="wczIn" size="1px" title="Wprowadź cyfrę 0-9"></input><br/>' +
  68.     "<p>Po naciśnięciu guzika eksportuj należy skopiować zawartość pola tekstowego i zapisać ją na przykład w notatniku.</p>" +
  69.     '<button type="button" id="expUst">Eksportuj</button><input type="text" id="expUstIn"></input></br>' +
  70.     "<p>Aby importować ustawienia, należy w polu tekstowym wkleić to co eksportowano wcześniej za pomocą guzika powyżej.</p>" +
  71.     '<button type="button" id="impUst">Importuj</button><input type="text" id="impUstIn"></input>'
  72. );
  73. //eksport
  74. $("button#expUst").click(function () {
  75.   let exxport = [];
  76.   $(".verifier").each(function () {
  77.     exxport.push(`"${this.id}":"${this.value}"`);
  78.   });
  79.   $("#expUstIn")[0].value = `{${exxport.join(",")}}`;
  80. });
  81. //import
  82. $("button#impUst").click(function () {
  83.   const importOBJ = JSON.parse($("#impUstIn")[0].value);
  84.   wczytywacz(importOBJ);
  85. });
  86. //zapisywanie ustawień
  87. $("button#zap").click(function () {
  88.   let errorFree = 0;
  89.   $(".verifier").each(function () {
  90.     errorFree += verifier(this.id);
  91.   });
  92.   let JSONarr = [];
  93.   let slot = "";
  94.   if (!errorFree) {
  95.     $(".verifier").each(function () {
  96.       JSONarr.push(`"${this.id}":"${this.value}"`);
  97.     });
  98.   } else {
  99.     return;
  100.   }
  101.   if ($("#zapIn")[0].value.replace(/[0-9]/g, "1") <= 1) {
  102.     slot = `memoryOkna${$("#zapIn")[0].value}`;
  103.     localStorage[slot] = `{${JSONarr.join(",")}}`;
  104.     alert("Zapisano pomyślnie");
  105.   } else {
  106.     alert("Wpisano nieprawidłową wartość.");
  107.   }
  108. });
  109. //wczytywanie zapisanych ustawień
  110. $("button#wcz").click(function () {
  111.   if (
  112.     $("#zapIn")[0].value.replace(/[0-9]/g, "1") <= 1 &&
  113.     localStorage[`memoryOkna${$("#wczIn")[0].value}`]
  114.   ) {
  115.     const oknaUstObj = JSON.parse(
  116.       localStorage[`memoryOkna${$("#wczIn")[0].value}`]
  117.     );
  118.     wczytywacz(oknaUstObj);
  119.     alert("Wczytano pomyślnie. Teraz należy nacisnąć przycisk 'Aktualizuj'");
  120.   } else {
  121.     alert("Wpisano nieprawidłową wartość lub wybrany zestaw nie istnieje.");
  122.   }
  123. });
  124.  
  125. $("button#aktCook").click(function () {
  126.   let errorFree = 0;
  127.   $(".verifier").each(function () {
  128.     errorFree += verifier(this.id);
  129.   });
  130.   if (!errorFree) {
  131.     //do zrobienia cookie i ustawianie na żywo
  132.     $(".verifier").each(function () {
  133.       const cookieStringY = `${this.id.replace("YX", "y")}=${
  134.         this.value.split(",")[0]
  135.       }`;
  136.       const cookieStringX = `${this.id.replace("YX", "x")}=${
  137.         this.value.split(",")[1]
  138.       }`;
  139.       console.log(`${cookieStringY}|${cookieStringX}`);
  140.       document.cookie = cookieStringY;
  141.       document.cookie = cookieStringX;
  142.       ustawiaczLive(this.id);
  143.     });
  144.   } else {
  145.     console.log(`Wykryto ${errorFree} błędów.`);
  146.   }
  147. });
  148. //funkcja sprawdzajaca czy podano prawidłowe dane
  149. const verifier = function (id) {
  150.   let checker = 0;
  151.   $(`#${id}`).each(function () {
  152.     for (let i = 0; i < 2; i++) {
  153.       if (this.value.split(",")[i]?.replace(/[0-9-]/g, "") !== "px") {
  154.         alert(
  155.           "W polu " +
  156.             $(`p[name="${this.id}"]`)[0].innerText +
  157.             " podano błędne dane."
  158.         );
  159.         checker += 1;
  160.       }
  161.     }
  162.   });
  163.   return checker;
  164. };
  165. const ustawiaczLive = function (id) {
  166.   const elId = id.replace("YX", "");
  167.   if ($(`#${elId}`).length) {
  168.     console.log(elId);
  169.     $(`#${elId}`)[0].style.left = $(`#${id}`)[0].value.split(",")[0];
  170.     $(`#${elId}`)[0].style.top = $(`#${id}`)[0].value.split(",")[1];
  171.   }
  172. };
  173. const wczytywacz = function (obj) {
  174.   for (const [key, value] of Object.entries(obj)) {
  175.     $(`#${key}`)[0].value = value;
  176.   }
  177. };
  178.  
Add Comment
Please, Sign In to add comment