Guest User

Kurwachuj.ork 2.3 (małpa)

a guest
Sep 22nd, 2017
349
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name Kurwachuj.ork
  3. // @namespace karachan.org
  4. // @match *://*.karachan.org/*
  5. // @exclude http://www.karachan.org/*/src/*
  6. // @exclude https://www.karachan.org/*/src/*
  7. // @exclude http://karachan.org/*/src/*
  8. // @exclude https://karachan.org/*/src/*
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12.  
  13. /******/ (function(modules) { // webpackBootstrap
  14. /******/    // The module cache
  15. /******/    var installedModules = {};
  16. /******/
  17. /******/    // The require function
  18. /******/    function __webpack_require__(moduleId) {
  19. /******/
  20. /******/        // Check if module is in cache
  21. /******/        if(installedModules[moduleId]) {
  22. /******/            return installedModules[moduleId].exports;
  23. /******/        }
  24. /******/        // Create a new module (and put it into the cache)
  25. /******/        var module = installedModules[moduleId] = {
  26. /******/            i: moduleId,
  27. /******/            l: false,
  28. /******/            exports: {}
  29. /******/        };
  30. /******/
  31. /******/        // Execute the module function
  32. /******/        modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  33. /******/
  34. /******/        // Flag the module as loaded
  35. /******/        module.l = true;
  36. /******/
  37. /******/        // Return the exports of the module
  38. /******/        return module.exports;
  39. /******/    }
  40. /******/
  41. /******/
  42. /******/    // expose the modules object (__webpack_modules__)
  43. /******/    __webpack_require__.m = modules;
  44. /******/
  45. /******/    // expose the module cache
  46. /******/    __webpack_require__.c = installedModules;
  47. /******/
  48. /******/    // define getter function for harmony exports
  49. /******/    __webpack_require__.d = function(exports, name, getter) {
  50. /******/        if(!__webpack_require__.o(exports, name)) {
  51. /******/            Object.defineProperty(exports, name, {
  52. /******/                configurable: false,
  53. /******/                enumerable: true,
  54. /******/                get: getter
  55. /******/            });
  56. /******/        }
  57. /******/    };
  58. /******/
  59. /******/    // getDefaultExport function for compatibility with non-harmony modules
  60. /******/    __webpack_require__.n = function(module) {
  61. /******/        var getter = module && module.__esModule ?
  62. /******/            function getDefault() { return module['default']; } :
  63. /******/            function getModuleExports() { return module; };
  64. /******/        __webpack_require__.d(getter, 'a', getter);
  65. /******/        return getter;
  66. /******/    };
  67. /******/
  68. /******/    // Object.prototype.hasOwnProperty.call
  69. /******/    __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  70. /******/
  71. /******/    // __webpack_public_path__
  72. /******/    __webpack_require__.p = "";
  73. /******/
  74. /******/    // Load entry module and return exports
  75. /******/    return __webpack_require__(__webpack_require__.s = 0);
  76. /******/ })
  77. /************************************************************************/
  78. /******/ ([
  79. /* 0 */
  80. /***/ (function(module, exports, __webpack_require__) {
  81.  
  82. "use strict";
  83.  
  84.  
  85. var _Settings = __webpack_require__(1);
  86.  
  87. var _Settings2 = _interopRequireDefault(_Settings);
  88.  
  89. var _PostsCounter = __webpack_require__(2);
  90.  
  91. var _PostsCounter2 = _interopRequireDefault(_PostsCounter);
  92.  
  93. var _HiderSounds = __webpack_require__(3);
  94.  
  95. var _HiderSounds2 = _interopRequireDefault(_HiderSounds);
  96.  
  97. var _CatalogHider = __webpack_require__(4);
  98.  
  99. var _CatalogHider2 = _interopRequireDefault(_CatalogHider);
  100.  
  101. var _CatalogCSS = __webpack_require__(5);
  102.  
  103. var _CatalogCSS2 = _interopRequireDefault(_CatalogCSS);
  104.  
  105. var _CatalogPreview = __webpack_require__(6);
  106.  
  107. var _CatalogPreview2 = _interopRequireDefault(_CatalogPreview);
  108.  
  109. var _CatalogLastFifty = __webpack_require__(7);
  110.  
  111. var _CatalogLastFifty2 = _interopRequireDefault(_CatalogLastFifty);
  112.  
  113. var _IdHider = __webpack_require__(8);
  114.  
  115. var _IdHider2 = _interopRequireDefault(_IdHider);
  116.  
  117. var _Polish = __webpack_require__(9);
  118.  
  119. var _Polish2 = _interopRequireDefault(_Polish);
  120.  
  121. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  122.  
  123. var settings = new _Settings2.default();
  124. var counter = new _PostsCounter2.default();
  125. var sounds = new _HiderSounds2.default();
  126. var cathider = new _CatalogHider2.default();
  127. var catcss = new _CatalogCSS2.default();
  128. var catprev = new _CatalogPreview2.default();
  129. var catlast = new _CatalogLastFifty2.default();
  130. var idhider = new _IdHider2.default();
  131. var pl = new _Polish2.default();
  132.  
  133. window.onload = function () {
  134.     settings.render();
  135.  
  136.     if (settings.getSettingState("ko-postscounter") == true) {
  137.         counter.render();
  138.     }
  139.  
  140.     if (settings.getSettingState("ko-cataloghider") == true) {
  141.         cathider.render();
  142.     }
  143.     if (settings.getSettingState("ko-hidersounds") == true) {
  144.         sounds.append();
  145.     }
  146.     if (settings.getSettingState("ko-catalogcss") == true) {
  147.         catcss.apply();
  148.     }
  149.     if (settings.getSettingState("ko-catalogpreview") == true) {
  150.         catprev.render();
  151.     }
  152.     if (settings.getSettingState("ko-cataloglastfifty") == true) {
  153.         catlast.render();
  154.     }
  155.     if (settings.getSettingState("ko-idhider") == true) {
  156.         idhider.render();
  157.     }
  158.     if (settings.getSettingState("ko-polish") == true) {
  159.         pl.translate();
  160.     }
  161. };
  162.  
  163. /***/ }),
  164. /* 1 */
  165. /***/ (function(module, exports, __webpack_require__) {
  166.  
  167. "use strict";
  168.  
  169.  
  170. Object.defineProperty(exports, "__esModule", {
  171.     value: true
  172. });
  173.  
  174. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  175.  
  176. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  177.  
  178. var Settings = function () {
  179.     function Settings() {
  180.         _classCallCheck(this, Settings);
  181.  
  182.         this.loadSettings();
  183.  
  184.         if (this.userSettings == null) {
  185.  
  186.             this.userSettings = {
  187.                 "ko-postscounter": false,
  188.                 "ko-hidersounds": false,
  189.                 "ko-cataloghider": false,
  190.                 "ko-catalogcss": false,
  191.                 "ko-catalogpreview": false,
  192.                 "ko-cataloglastfifty": false,
  193.                 "ko-idhider": false,
  194.                 "ko-polish": false
  195.             };
  196.             this.saveSettings();
  197.         }
  198.  
  199.         if (this.userSettings["ko-catalogcss"] == undefined) {
  200.             this.userSettings["ko-catalogcss"] = false;
  201.             this.saveSettings();
  202.         }
  203.         if (this.userSettings["ko-catalogpreview"] == undefined) {
  204.             this.userSettings["ko-catalogpreview"] = false;
  205.             this.saveSettings();
  206.         }
  207.         if (this.userSettings["ko-cataloglastfifty"] == undefined) {
  208.             this.userSettings["ko-cataloglastfifty"] = false;
  209.             this.saveSettings();
  210.         }
  211.         if (this.userSettings["ko-idhider"] == undefined) {
  212.             this.userSettings["ko-idhider"] = false;
  213.             this.saveSettings();
  214.         }
  215.         if (this.userSettings["ko-polish"] == undefined) {
  216.             this.userSettings["ko-polish"] = false;
  217.             this.saveSettings();
  218.         }
  219.     }
  220.  
  221.     _createClass(Settings, [{
  222.         key: "loadSettings",
  223.         value: function loadSettings() {
  224.             this.userSettings = JSON.parse(localStorage.getItem("kurwa_settings"));
  225.         }
  226.     }, {
  227.         key: "saveSettings",
  228.         value: function saveSettings() {
  229.             localStorage.setItem("kurwa_settings", JSON.stringify(this.userSettings));
  230.         }
  231.     }, {
  232.         key: "render",
  233.         value: function render() {
  234.  
  235.             var modalNav = document.getElementsByClassName("modal-nav")[0];
  236.             var modalCont = document.getElementsByClassName("modal-cont")[0];
  237.             var tabCont = document.getElementsByClassName("tab-content");
  238.  
  239.             var newTab = document.createElement("li");
  240.             newTab.setAttribute("data-tab-ref", "tab-settings-kurwachuj");
  241.             newTab.innerText = "Kurwachuj.ork";
  242.  
  243.             newTab.style.color = "#" + ("000000" + Math.floor(Math.random() * 16777216).toString(16)).substr(-6);
  244.  
  245.             modalNav.appendChild(newTab);
  246.  
  247.             var newTabContent = document.createElement("div");
  248.             newTabContent.setAttribute("id", "tab-settings-kurwachuj");
  249.             newTabContent.setAttribute("class", "tab-content");
  250.             newTabContent.innerHTML = "<h2>Ustawienia użytkownika</h2>";
  251.  
  252.             modalCont.insertBefore(newTabContent, document.getElementsByClassName("btn-wrap")[0]);
  253.  
  254.             newTabContent.innerHTML += "\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-postscounter\" checked=\"false\">\n                <label for=\"ko-postscounter\">Licznik post\xF3w</label>\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-hidersounds\" checked=\"false\">\n                <label for=\"ko-hidersounds\">Efekty d\u017Awi\u0119kowe kraw\u0119\u017Cnika</label>\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-cataloghider\" checked=\"false\">\n                <label for=\"ko-cataloghider\">Kraw\u0119\u017Cnik w katalogu</label>\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-catalogcss\" checked=\"false\">\n                <label for=\"ko-catalogcss\">Wyr\xF3wnaj fredy w katalogu</label>\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-catalogpreview\" checked=\"false\">\n                <label for=\"ko-catalogpreview\">Podgl\u0105d obrazk\xF3w w katalogu</label>\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-cataloglastfifty\" checked=\"false\">\n                <label for=\"ko-cataloglastfifty\">Ostatnie 50 w katalogu</label>\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-idhider\" checked=\"false\">\n                <label for=\"ko-idhider\">Kraw\u0119\u017Cnik anon\xF3w po ID</label>\n            <input type=\"checkbox\" class=\"kurwa-settings\" id=\"ko-polish\" checked=\"false\">\n                <label for=\"ko-polish\">Spolszczenie czana</label>";
  255.  
  256.             var that = this;
  257.  
  258.             var checkboxes = document.getElementsByClassName("kurwa-settings");
  259.             for (var i = 0; i < Object.keys(this.userSettings).length; i++) {
  260.                 checkboxes[i].checked = Object.values(this.userSettings)[i];
  261.             }
  262.  
  263.             var _loop = function _loop(_i) {
  264.                 checkboxes[_i].addEventListener("change", function () {
  265.                     if (checkboxes[_i].checked == true) {
  266.                         that.userSettings[Object.keys(that.userSettings)[_i]] = true;
  267.                     } else if (checkboxes[_i].checked == false) {
  268.                         that.userSettings[Object.keys(that.userSettings)[_i]] = false;
  269.                     }
  270.  
  271.                     that.saveSettings();
  272.                 }, false);
  273.             };
  274.  
  275.             for (var _i = 0; _i < checkboxes.length; _i++) {
  276.                 _loop(_i);
  277.             }
  278.  
  279.             newTab.addEventListener("click", function () {
  280.  
  281.                 if (newTab.classList.contains("tab-opened") == false) {
  282.  
  283.                     for (var _i2 = 0; _i2 < modalNav.childElementCount; _i2++) {
  284.                         if (modalNav.children[_i2].classList.contains("tab-opened")) {
  285.                             modalNav.children[_i2].setAttribute("class", "");
  286.                         }
  287.                     }
  288.                     for (var _i3 = 0; _i3 < tabCont.length; _i3++) {
  289.                         if (tabCont[_i3].classList.contains("opened")) {
  290.                             tabCont[_i3].classList.remove("opened");
  291.                         }
  292.                     }
  293.  
  294.                     newTab.setAttribute("class", "tab-opened");
  295.                     newTabContent.classList.add("opened");
  296.                 }
  297.             }, false);
  298.         }
  299.     }, {
  300.         key: "getSettingState",
  301.         value: function getSettingState(setting) {
  302.             return this.userSettings[setting];
  303.         }
  304.     }]);
  305.  
  306.     return Settings;
  307. }();
  308.  
  309. exports.default = Settings;
  310.  
  311. /***/ }),
  312. /* 2 */
  313. /***/ (function(module, exports, __webpack_require__) {
  314.  
  315. "use strict";
  316.  
  317.  
  318. Object.defineProperty(exports, "__esModule", {
  319.     value: true
  320. });
  321.  
  322. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  323.  
  324. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  325.  
  326. var PostsCounter = function () {
  327.     function PostsCounter() {
  328.         _classCallCheck(this, PostsCounter);
  329.  
  330.         this.loadData();
  331.  
  332.         this.installDate = localStorage.getItem("kurwa_postscounter_installdate");
  333.         if (this.installDate == null) {
  334.             this.installDate = Date.now();
  335.             localStorage.setItem("kurwa_postscounter_installdate", this.installDate);
  336.         }
  337.  
  338.         if (this.postsNumber == null || isNaN(this.postsNumber)) {
  339.             this.postsNumber = 0;
  340.             this.saveData();
  341.         }
  342.     }
  343.  
  344.     _createClass(PostsCounter, [{
  345.         key: "loadData",
  346.         value: function loadData() {
  347.             this.postsNumber = parseInt(localStorage.getItem("kurwa_postscounter_number"));
  348.         }
  349.     }, {
  350.         key: "saveData",
  351.         value: function saveData() {
  352.             localStorage.setItem("kurwa_postscounter_number", this.postsNumber);
  353.         }
  354.     }, {
  355.         key: "render",
  356.         value: function render() {
  357.  
  358.             var averagePosts = this.postsNumber / ((Date.now() - this.installDate) / 3600000 / 24);
  359.             var rank = this.getRank();
  360.  
  361.             var registerDate = new Date(parseInt(this.installDate));
  362.             registerDate = ("0" + registerDate.getDate()).slice(-2) + "/" + ("0" + (registerDate.getMonth() + 1)).slice(-2) + "/" + registerDate.getFullYear() + ", " + ("0" + registerDate.getHours()).slice(-2) + ":" + ("0" + registerDate.getMinutes()).slice(-2);
  363.  
  364.             var counter = document.createElement("li");
  365.             counter.setAttribute("id", "posts-counter");
  366.             counter.setAttribute("title", "Data rejestracji: " + registerDate);
  367.  
  368.             if (/catalog/.test(window.location.href) || /\*/.test(window.location.href)) {
  369.                 document.getElementsByClassName("rules")[0].appendChild(counter);
  370.             } else {
  371.                 document.getElementsByClassName("rules")[1].appendChild(counter);
  372.             }
  373.             document.getElementById("posts-counter").innerHTML = "Posty: <a>" + this.postsNumber + "</a> (<b>" + rank + "</b>) | Śr. postów dziennie: <a>" + averagePosts.toFixed(2) + "</a>";
  374.  
  375.             document.getElementById("posts-counter").style.fontSize = "90%";
  376.  
  377.             var buttons = document.getElementsByClassName("ladda-button");
  378.             this.update = this.update.bind(this);
  379.             for (var i = 0; i < buttons.length; i++) {
  380.                 buttons[i].addEventListener("click", this.update, false);
  381.             }
  382.         }
  383.     }, {
  384.         key: "update",
  385.         value: function update() {
  386.             var averagePosts = 0;
  387.             var rank = 0;
  388.  
  389.             var buttons = document.getElementsByClassName("ladda-button");
  390.             var that = this;
  391.  
  392.             for (var i = 0; i < buttons.length; i++) {
  393.                 buttons[i].removeEventListener("click", this.update, false);
  394.             }
  395.  
  396.             var fillFields_o = fillFields;
  397.             fillFields = function fillFields(arg) {
  398.                 if (arg != "body") {
  399.                     that.increment();
  400.  
  401.                     averagePosts = that.postsNumber / ((Date.now() - that.installDate) / 3600000 / 24);
  402.                     rank = that.getRank();
  403.  
  404.                     document.getElementById("posts-counter").innerHTML = "Posty: <a>" + that.postsNumber + "</a> (<b>" + rank + "</b>) | Śr. postów dziennie: <a>" + averagePosts.toFixed(2) + "</a>";
  405.                 }
  406.                 return fillFields_o(arg);
  407.             };
  408.         }
  409.     }, {
  410.         key: "increment",
  411.         value: function increment() {
  412.  
  413.             this.loadData();
  414.  
  415.             this.postsNumber += 1;
  416.             this.saveData();
  417.         }
  418.     }, {
  419.         key: "getRank",
  420.         value: function getRank() {
  421.             var n = this.postsNumber;
  422.  
  423.             if (n >= 0 && n < 100) return "Ekstremalna nowociota";
  424.             if (n >= 100 && n < 500) return "Nowociota";
  425.             if (n >= 500 && n < 1000) return "Jeszcze w folii";
  426.             if (n >= 1000 && n < 2137) return "Anonek";
  427.             if (n >= 2137 && n < 5000) return "Syn tej ziemi";
  428.             if (n >= 5000 && n < 9000) return "Średniociota";
  429.             if (n >= 9000 && n < 15000) return "Anon";
  430.             if (n >= 15000 && n < 20000) return "Antoni";
  431.             if (n >= 20000 && n < 30000) return "SKURWYSYN";
  432.             if (n >= 30000) return "Starociota";
  433.         }
  434.     }]);
  435.  
  436.     return PostsCounter;
  437. }();
  438.  
  439. exports.default = PostsCounter;
  440.  
  441. /***/ }),
  442. /* 3 */
  443. /***/ (function(module, exports, __webpack_require__) {
  444.  
  445. "use strict";
  446.  
  447.  
  448. Object.defineProperty(exports, "__esModule", {
  449.     value: true
  450. });
  451.  
  452. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  453.  
  454. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  455.  
  456. var HiderSounds = function () {
  457.     function HiderSounds() {
  458.         _classCallCheck(this, HiderSounds);
  459.  
  460.         this.hideSounds = ["https://instaud.io/1fm1/download", "https://instaud.io/1fmN/download", "https://instaud.io/1fmP/download", "https://instaud.io/1fmQ/download", "https://instaud.io/1fmR/download", "https://instaud.io/1fmU/download", "https://instaud.io/1fmV/download", "https://instaud.io/1fmW/download", "https://instaud.io/1fmY/download", "https://instaud.io/1fmZ/download", "https://instaud.io/1fn2/download", "https://instaud.io/1fnb/download", "https://instaud.io/1fnd/download", "https://instaud.io/1fne/download", "https://instaud.io/1fn7/download", "https://instaud.io/1fnh/download", "https://instaud.io/1fnk/download", "https://instaud.io/1fnl/download", "https://instaud.io/1fnm/download", "https://instaud.io/1fnn/download", "https://instaud.io/1fns/download", "https://instaud.io/1fnt/download", "https://instaud.io/1fnu/download", "https://instaud.io/1fnx/download", "https://instaud.io/1fny/download"];
  461.         this.showSounds = ["https://instaud.io/1fmY/download", "https://instaud.io/1fmZ/download", "https://instaud.io/1fn0/download", "https://instaud.io/1fn1/download", "https://instaud.io/1fn2/download", "https://instaud.io/1fne/download", "https://instaud.io/1fn7/download", "https://instaud.io/1fnx/download"];
  462.  
  463.         if (!("contains" in String.prototype)) {
  464.             String.prototype.contains = function (str, startIndex) {
  465.                 return -1 !== String.prototype.indexOf.call(this, str, startIndex);
  466.             };
  467.         }
  468.  
  469.         this.hideAudio = [];
  470.         this.showAudio = [];
  471.  
  472.         for (var i = 0; i < this.hideSounds.length; i++) {
  473.             this.hideAudio[i] = new Audio(this.hideSounds[i]);
  474.             this.hideAudio[i].volume = 0.4;
  475.         }
  476.         for (var _i = 0; _i < this.showSounds.length; _i++) {
  477.             this.showAudio[_i] = new Audio(this.showSounds[_i]);
  478.             this.showAudio[_i].volume = 0.4;
  479.         }
  480.     }
  481.  
  482.     _createClass(HiderSounds, [{
  483.         key: "append",
  484.         value: function append() {
  485.             var buttons = 0;
  486.             var that = this;
  487.  
  488.             if (/catalog/.test(window.location.href)) {
  489.                 buttons = document.getElementsByClassName("hide-buttons");
  490.             } else {
  491.                 buttons = document.getElementsByClassName("hider");
  492.             }
  493.  
  494.             for (var i = 0; i < buttons.length; i++) {
  495.                 buttons[i].addEventListener("click", function () {
  496.                     that.playSound(this);
  497.                 }, false);
  498.             }
  499.         }
  500.     }, {
  501.         key: "playSound",
  502.         value: function playSound(ctx) {
  503.             if (ctx.innerText.contains("[+]")) {
  504.                 this.hideAudio[Math.floor(Math.random() * this.hideAudio.length)].play();
  505.             } else if (ctx.innerText.contains("[–]")) {
  506.                 this.showAudio[Math.floor(Math.random() * this.showAudio.length)].play();
  507.             }
  508.         }
  509.     }]);
  510.  
  511.     return HiderSounds;
  512. }();
  513.  
  514. exports.default = HiderSounds;
  515.  
  516. /***/ }),
  517. /* 4 */
  518. /***/ (function(module, exports, __webpack_require__) {
  519.  
  520. "use strict";
  521.  
  522.  
  523. Object.defineProperty(exports, "__esModule", {
  524.     value: true
  525. });
  526.  
  527. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  528.  
  529. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  530.  
  531. var CatalogHider = function () {
  532.     function CatalogHider() {
  533.         _classCallCheck(this, CatalogHider);
  534.  
  535.         this.board = window.location.href.split("/")[3];
  536.  
  537.         this.hiddenThreads = [];
  538.         for (var i = 0; i < localStorage.length; i++) {
  539.             if (localStorage.key(i).substring(0, 2) == "h_" + this.board) {
  540.                 this.hiddenThreads.push(localStorage.key(i));
  541.             }
  542.         }
  543.     }
  544.  
  545.     _createClass(CatalogHider, [{
  546.         key: "render",
  547.         value: function render() {
  548.  
  549.             if (/catalog/.test(window.location.href) == false) return;
  550.  
  551.             var threads = document.getElementsByClassName("thread");
  552.  
  553.             for (var i = 0; i < threads.length; i++) {
  554.                 threads[i].innerHTML += "<a href=\"javascript:;\" class=\"hide-buttons\" id=\"hide-btn-" + threads[i].id.replace(/[^0-9]/g, "") + "\">[–]</a>";
  555.             }
  556.  
  557.             var buttons = document.getElementsByClassName("hide-buttons");
  558.             var that = this;
  559.             for (var _i = 0; _i < buttons.length; _i++) {
  560.                 buttons[_i].addEventListener("click", function () {
  561.                     that.toggleThread(this);
  562.                 }, false);
  563.             }
  564.  
  565.             for (var _i2 = 0; _i2 < threads.length; _i2++) {
  566.                 var thread = threads[_i2];
  567.                 if (localStorage.getItem("h_" + that.board + "_" + thread.id.replace(/[^0-9]/g, ""))) {
  568.                     thread.style.height = "32px";
  569.                     thread.getElementsByClassName("thumb")[0].style.display = "none";
  570.                     thread.getElementsByClassName("teaser")[0].style.display = "none";
  571.                     thread.getElementsByClassName("hide-buttons")[0].innerText = "[+]";
  572.                     var parentNode = thread.parentNode;
  573.                     var nextSibiling = document.getElementsByClassName("thread").nextSibiling;
  574.                     thread = parentNode.insertBefore(thread, nextSibiling);
  575.                 }
  576.             }
  577.         }
  578.     }, {
  579.         key: "toggleThread",
  580.         value: function toggleThread(ctx) {
  581.             var thread = document.getElementById("thread-" + ctx.id.replace(/[^0-9]/g, ""));
  582.             var thumb = thread.getElementsByClassName("thumb")[0];
  583.             var teaser = thread.getElementsByClassName("teaser")[0];
  584.             var id = "h_" + window.location.href.split("/")[3] + "_" + ctx.id.replace(/[^0-9]/g, "");
  585.  
  586.             if (ctx.innerText.contains("[–]")) {
  587.  
  588.                 thread.style.height = "32px";
  589.                 thumb.style.display = "none";
  590.                 teaser.style.display = "none";
  591.                 ctx.innerText = "[+]";
  592.  
  593.                 var parentNode = thread.parentNode;
  594.                 var nextSibiling = document.getElementsByClassName("thread").nextSibiling;
  595.                 thread = parentNode.insertBefore(thread, nextSibiling);
  596.  
  597.                 localStorage.setItem(id, teaser.innerText.replace(/https*:\/\/\S+/g, "[url]").replace(/>>\S+/, "").replace(/\s+/g, " ").slice(0, 60));
  598.             } else if (ctx.innerText.contains("[+]")) {
  599.  
  600.                 thread.style.height = "320px";
  601.                 thumb.style.display = "block";
  602.                 teaser.style.display = "";
  603.                 ctx.innerText = "[–]";
  604.  
  605.                 localStorage.removeItem(id);
  606.             }
  607.         }
  608.     }]);
  609.  
  610.     return CatalogHider;
  611. }();
  612.  
  613. exports.default = CatalogHider;
  614.  
  615. /***/ }),
  616. /* 5 */
  617. /***/ (function(module, exports, __webpack_require__) {
  618.  
  619. "use strict";
  620.  
  621.  
  622. Object.defineProperty(exports, "__esModule", {
  623.     value: true
  624. });
  625.  
  626. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  627.  
  628. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  629.  
  630. var CatalogCSS = function () {
  631.     function CatalogCSS() {
  632.         _classCallCheck(this, CatalogCSS);
  633.     }
  634.  
  635.     _createClass(CatalogCSS, [{
  636.         key: "apply",
  637.         value: function apply() {
  638.             if (/catalog/.test(window.location.href) == false) return;
  639.             var threads = document.getElementsByClassName("thread");
  640.  
  641.             for (var i = 0; i < threads.length; i++) {
  642.                 threads[i].style.width = "160px";
  643.                 if (threads[i].getElementsByClassName("hide-buttons")[0].innerText == "[–]") {
  644.                     threads[i].style.height = "320px";
  645.                 }
  646.                 threads[i].style.marginLeft = "3px";
  647.                 threads[i].style.marginRight = "3px";
  648.                 threads[i].style.padding = "3px";
  649.             }
  650.         }
  651.     }]);
  652.  
  653.     return CatalogCSS;
  654. }();
  655.  
  656. exports.default = CatalogCSS;
  657.  
  658. /***/ }),
  659. /* 6 */
  660. /***/ (function(module, exports, __webpack_require__) {
  661.  
  662. "use strict";
  663.  
  664.  
  665. Object.defineProperty(exports, "__esModule", {
  666.     value: true
  667. });
  668.  
  669. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  670.  
  671. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  672.  
  673. var CatalogPreview = function () {
  674.     function CatalogPreview() {
  675.         _classCallCheck(this, CatalogPreview);
  676.     }
  677.  
  678.     _createClass(CatalogPreview, [{
  679.         key: "render",
  680.         value: function render() {
  681.             if (/catalog/.test(window.location.href) == false) return;
  682.  
  683.             document.styleSheets[25].insertRule(".img-preview { display: none; position: absolute; }", 0);
  684.  
  685.             var thumbs = document.getElementsByClassName("thumb");
  686.             var that = this;
  687.             for (var i = 0; i < thumbs.length; i++) {
  688.                 thumbs[i].addEventListener("mousemove", function (e) {
  689.                     that.preview(this, e);
  690.                 }, false);
  691.             }
  692.         }
  693.     }, {
  694.         key: "preview",
  695.         value: function preview(ctx, e) {
  696.             var src = ctx.src;
  697.  
  698.             var previewNode = document.createElement("div");
  699.             var img = document.createElement("img");
  700.             previewNode.setAttribute("class", "img-preview");
  701.             img.setAttribute("src", "./src/" + src.replace(/[^0-9]/g, "") + "." + src.substring(src.lastIndexOf(".") + 1));
  702.             previewNode.appendChild(img);
  703.  
  704.             var clientWindow = {
  705.                 "x": document.documentElement.getBoundingClientRect().left,
  706.                 "y": document.documentElement.getBoundingClientRect().top * -1,
  707.                 "w": document.documentElement.getBoundingClientRect().width,
  708.                 "h": window.innerHeight
  709.             };
  710.  
  711.             var cursor = {
  712.                 "x": e.pageX,
  713.                 "y": e.pageY - clientWindow.y
  714.             };
  715.  
  716.             var spaceLeft = {
  717.                 "w": Math.max(clientWindow.w - cursor.x, cursor.x),
  718.                 "h": clientWindow.h
  719.             };
  720.  
  721.             document.getElementsByTagName("body")[0].appendChild(previewNode);
  722.  
  723.             var preview = document.getElementsByClassName("img-preview")[0];
  724.             var previewImg = preview.children[0];
  725.  
  726.             var imgSize = {
  727.                 "w": previewImg.width,
  728.                 "h": previewImg.height,
  729.                 "scale": Math.min(1, spaceLeft.w / previewImg.width, spaceLeft.h / previewImg.height)
  730.             };
  731.  
  732.             if (imgSize.w != 0 && imgSize.h != 0) {
  733.                 previewImg.maxWidth = imgSize.scale * imgSize.w;
  734.                 previewImg.maxHeight = imgSize.scale * imgSize.h;
  735.                 previewImg.height = imgSize.scale * imgSize.h;
  736.                 preview.style.left = cursor.x > clientWindow.w / 2 ? cursor.x - imgSize.w - 32 + "px" : cursor.x + 32 + "px";
  737.                 preview.style.top = clientWindow.y + (clientWindow.h - imgSize.h) / 2 + "px";
  738.             }
  739.             preview.style.display = "block";
  740.             preview.style.position = "absolute";
  741.             preview.style.zIndex = 2137;
  742.  
  743.             var previews = document.getElementsByClassName("img-preview");
  744.             ctx.addEventListener("mouseleave", function () {
  745.                 for (var i = 0; i < previews.length; i++) {
  746.                     previews[i].parentNode.removeChild(previews[i]);
  747.                 }
  748.             }, false);
  749.         }
  750.     }]);
  751.  
  752.     return CatalogPreview;
  753. }();
  754.  
  755. exports.default = CatalogPreview;
  756.  
  757. /***/ }),
  758. /* 7 */
  759. /***/ (function(module, exports, __webpack_require__) {
  760.  
  761. "use strict";
  762.  
  763.  
  764. Object.defineProperty(exports, "__esModule", {
  765.     value: true
  766. });
  767.  
  768. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  769.  
  770. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  771.  
  772. var CatalogLastFifty = function () {
  773.     function CatalogLastFifty() {
  774.         _classCallCheck(this, CatalogLastFifty);
  775.     }
  776.  
  777.     _createClass(CatalogLastFifty, [{
  778.         key: "render",
  779.         value: function render() {
  780.             if (/catalog/.test(window.location.href) == false) return;
  781.  
  782.             var buttons = [];
  783.             var threads = document.getElementsByClassName("thread");
  784.             for (var i = 0; i < threads.length; i++) {
  785.  
  786.                 if (threads[i].dataset.replycount >= 50) {
  787.  
  788.                     buttons[i] = document.createElement("a");
  789.                     buttons[i].setAttribute("class", "last-fifty-buttons");
  790.                     buttons[i].setAttribute("href", "./res/" + threads[i].id.replace(/[^0-9]/g, "") + "-50.html");
  791.                     buttons[i].innerText = "50";
  792.                 } else {
  793.                     buttons[i] = null;
  794.                 }
  795.             }
  796.  
  797.             var hider = threads[0].children[3].classList == "hide-buttons";
  798.  
  799.             for (var _i = 0; _i < threads.length; _i++) {
  800.                 if (buttons[_i] != null) {
  801.                     if (hider == true) {
  802.                         var separator = document.createElement("b");
  803.                         separator.innerText = " | ";
  804.                         threads[_i].appendChild(separator);
  805.                     }
  806.                     threads[_i].appendChild(buttons[_i]);
  807.                 }
  808.             }
  809.         }
  810.     }]);
  811.  
  812.     return CatalogLastFifty;
  813. }();
  814.  
  815. exports.default = CatalogLastFifty;
  816.  
  817. /***/ }),
  818. /* 8 */
  819. /***/ (function(module, exports, __webpack_require__) {
  820.  
  821. "use strict";
  822.  
  823.  
  824. Object.defineProperty(exports, "__esModule", {
  825.     value: true
  826. });
  827.  
  828. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  829.  
  830. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  831.  
  832. var IdHider = function () {
  833.     function IdHider() {
  834.         _classCallCheck(this, IdHider);
  835.  
  836.         this.loadIds();
  837.  
  838.         if (this.hiddenIds == null || this.hiddenIds == undefined) {
  839.             this.hiddenIds = {};
  840.             this.saveIds();
  841.         }
  842.     }
  843.  
  844.     _createClass(IdHider, [{
  845.         key: "loadIds",
  846.         value: function loadIds() {
  847.             this.hiddenIds = JSON.parse(localStorage.getItem("kurwa_idhider"));
  848.         }
  849.     }, {
  850.         key: "saveIds",
  851.         value: function saveIds() {
  852.             localStorage.setItem("kurwa_idhider", JSON.stringify(this.hiddenIds));
  853.         }
  854.     }, {
  855.         key: "render",
  856.         value: function render() {
  857.             if (/res/.test(window.location.href) == false) return;
  858.  
  859.             var posts = document.getElementsByClassName("post reply");
  860.             for (var i = 0; i < posts.length; i++) {
  861.  
  862.                 if (window.location.href.indexOf("-50.html") > -1 && i == 0) {
  863.                     continue;
  864.                 }
  865.                 var button = document.createElement("a");
  866.                 button.setAttribute("class", "hideid-buttons");
  867.                 var id = posts[i].getElementsByClassName("posteruid")[0].title;
  868.                 button.classList.add("hideid-" + id);
  869.                 button.innerText = "[Ukryj]";
  870.                 posts[i].getElementsByClassName("nameBlock")[0].appendChild(button);
  871.             }
  872.  
  873.             var buttons = document.getElementsByClassName("hideid-buttons");
  874.             var that = this;
  875.             for (var _i = 0; _i < buttons.length; _i++) {
  876.                 buttons[_i].addEventListener("click", function () {
  877.                     that.togglePosts(this);
  878.                 }, false);
  879.             }
  880.  
  881.             var target = document.getElementsByClassName("thread")[0];
  882.             var config = {
  883.                 attributes: true,
  884.                 childList: true,
  885.                 characterData: true
  886.             };
  887.             var observer = new MutationObserver(function (mutations) {
  888.                 mutations.forEach(function (mutation) {
  889.                     var post = mutation.addedNodes[0].getElementsByClassName("post reply")[0];
  890.  
  891.                     var button = document.createElement("a");
  892.                     button.setAttribute("class", "hideid-buttons");
  893.                     var id = post.getElementsByClassName("posteruid")[0].title;
  894.                     button.classList.add("hideid-" + id);
  895.                     button.innerText = "[Ukryj]";
  896.                     post.getElementsByClassName("nameBlock")[0].appendChild(button);
  897.  
  898.                     button.addEventListener("click", function () {
  899.                         that.togglePosts(button);
  900.                     }, false);
  901.  
  902.                     var thread = document.getElementsByClassName("thread")[0].id.replace(/[^0-9]/g, "");
  903.                     if (that.hiddenIds[thread.toString()] == undefined) return;
  904.                     if (that.hiddenIds[thread.toString()].indexOf(id) >= 0) {
  905.                         that.togglePosts(button);
  906.                     }
  907.                 });
  908.             });
  909.             observer.observe(target, config);
  910.  
  911.             var thread = document.getElementsByClassName("thread")[0].id.replace(/[^0-9]/g, "");
  912.             if (that.hiddenIds[thread.toString()] == undefined) return;
  913.  
  914.             for (var _i2 = 0; _i2 < posts.length; _i2++) {
  915.                 var _id = posts[_i2].getElementsByClassName("posteruid")[0].title;
  916.                 if (that.hiddenIds[thread.toString()].indexOf(_id) >= 0) {
  917.  
  918.                     var _button = posts[_i2].getElementsByClassName("hideid-buttons")[0];
  919.                     if (_button.innerText == "[Ukryj]") {
  920.                         that.togglePosts(_button);
  921.                     } else {
  922.                         continue;
  923.                     }
  924.                 }
  925.             }
  926.         }
  927.     }, {
  928.         key: "togglePosts",
  929.         value: function togglePosts(ctx) {
  930.             var thread = document.getElementsByClassName("thread")[0].id.replace(/[^0-9]/g, "");
  931.             var posts = document.getElementsByClassName(ctx.className);
  932.             var id = ctx.classList[1].slice(7, 16);
  933.  
  934.             if (this.hiddenIds[thread] == null || this.hiddenIds[thread] == undefined) {
  935.                 this.hiddenIds[thread] = [];
  936.                 this.saveIds();
  937.             }
  938.  
  939.             if (ctx.innerText == "[Ukryj]") {
  940.  
  941.                 for (var i = 0; i < posts.length; i++) {
  942.                     posts[i].innerText = "[Pokaż]";
  943.                     var post = posts[i].parentNode.parentNode.parentNode;
  944.                     post.getElementsByClassName("postMessage")[0].style.display = "none";
  945.  
  946.                     if (post.getElementsByClassName("file")[0]) {
  947.                         post.getElementsByClassName("file")[0].style.display = "none";
  948.                     }
  949.                 }
  950.  
  951.                 if (this.hiddenIds[thread].indexOf(id) < 0) {
  952.                     this.hiddenIds[thread].push(id);
  953.                 }
  954.                 this.saveIds();
  955.             } else if (ctx.innerText == "[Pokaż]") {
  956.  
  957.                 for (var _i3 = 0; _i3 < posts.length; _i3++) {
  958.                     posts[_i3].innerText = "[Ukryj]";
  959.                     var _post = posts[_i3].parentNode.parentNode.parentNode;
  960.                     _post.getElementsByClassName("postMessage")[0].style.display = "block";
  961.                     if (_post.getElementsByClassName("file")[0]) {
  962.                         _post.getElementsByClassName("file")[0].style.display = "block";
  963.                     }
  964.                 }
  965.                 this.hiddenIds[thread].splice(this.hiddenIds[thread].indexOf(id), 1);
  966.  
  967.                 for (var _i4 = 0; _i4 < Object.keys(this.hiddenIds).length; _i4++) {
  968.                     if (this.hiddenIds[Object.keys(this.hiddenIds)[_i4]].length == 0) {
  969.                         delete this.hiddenIds[parseInt(Object.keys(this.hiddenIds)[_i4])];
  970.                     }
  971.                 }
  972.                 this.saveIds();
  973.             }
  974.         }
  975.     }]);
  976.  
  977.     return IdHider;
  978. }();
  979.  
  980. exports.default = IdHider;
  981.  
  982. /***/ }),
  983. /* 9 */
  984. /***/ (function(module, exports, __webpack_require__) {
  985.  
  986. "use strict";
  987.  
  988.  
  989. Object.defineProperty(exports, "__esModule", {
  990.     value: true
  991. });
  992.  
  993. var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  994.  
  995. function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  996.  
  997. var Polish = function () {
  998.     function Polish() {
  999.         _classCallCheck(this, Polish);
  1000.     }
  1001.  
  1002.     _createClass(Polish, [{
  1003.         key: "translate",
  1004.         value: function translate() {
  1005.  
  1006.             if (/catalog/.test(window.location.href) == true) {
  1007.                 var threads = document.getElementsByClassName("thread");
  1008.                 for (var i = 0; i < threads.length; i++) {
  1009.  
  1010.                     if (threads[i].children[0].children[0].innerText == "No file") {
  1011.                         threads[i].children[0].children[0].innerText = "Brak pliku";
  1012.                     }
  1013.  
  1014.                     threads[i].children[1].innerText = threads[i].children[1].innerText.replace(/R/g, "O");
  1015.                     threads[i].children[1].title = "(O)dpowiedzi";
  1016.                 }
  1017.             }
  1018.         }
  1019.     }]);
  1020.  
  1021.     return Polish;
  1022. }();
  1023.  
  1024. exports.default = Polish;
  1025.  
  1026. /***/ })
  1027. /******/ ]);
Add Comment
Please, Sign In to add comment