您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Dodaje funkcje na forum obrazkowym karachan.org.
// ==UserScript== // @name Kurwachuj.ork // @namespace karachan.org // @match *://*.karachan.org/* // @description Dodaje funkcje na forum obrazkowym karachan.org. // @exclude http://www.karachan.org/*/src/* // @exclude https://www.karachan.org/*/src/* // @exclude http://karachan.org/*/src/* // @exclude https://karachan.org/*/src/* // @grant none // @version 0.0.1.20180706184124 // ==/UserScript== /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _Settings = __webpack_require__(1); var _Settings2 = _interopRequireDefault(_Settings); var _PostsCounter = __webpack_require__(2); var _PostsCounter2 = _interopRequireDefault(_PostsCounter); var _HiderSounds = __webpack_require__(3); var _HiderSounds2 = _interopRequireDefault(_HiderSounds); var _CatalogHider = __webpack_require__(4); var _CatalogHider2 = _interopRequireDefault(_CatalogHider); var _CatalogCSS = __webpack_require__(5); var _CatalogCSS2 = _interopRequireDefault(_CatalogCSS); var _CatalogPreview = __webpack_require__(6); var _CatalogPreview2 = _interopRequireDefault(_CatalogPreview); var _CatalogLastFifty = __webpack_require__(7); var _CatalogLastFifty2 = _interopRequireDefault(_CatalogLastFifty); var _IdHider = __webpack_require__(8); var _IdHider2 = _interopRequireDefault(_IdHider); var _Polish = __webpack_require__(9); var _Polish2 = _interopRequireDefault(_Polish); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var settings = new _Settings2.default(); var counter = new _PostsCounter2.default(); var sounds = new _HiderSounds2.default(); var cathider = new _CatalogHider2.default(); var catcss = new _CatalogCSS2.default(); var catprev = new _CatalogPreview2.default(); var catlast = new _CatalogLastFifty2.default(); var idhider = new _IdHider2.default(); var pl = new _Polish2.default(); window.onload = function () { settings.render(); if (settings.getSettingState("ko-postscounter") == true) { counter.render(); } if (settings.getSettingState("ko-cataloghider") == true) { cathider.render(); } if (settings.getSettingState("ko-hidersounds") == true) { sounds.append(); } if (settings.getSettingState("ko-catalogcss") == true) { catcss.apply(); } if (settings.getSettingState("ko-catalogpreview") == true) { catprev.render(); } if (settings.getSettingState("ko-cataloglastfifty") == true) { catlast.render(); } if (settings.getSettingState("ko-idhider") == true) { idhider.render(); } if (settings.getSettingState("ko-polish") == true) { pl.translate(); } }; /***/ }), /* 1 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Settings = function () { function Settings() { _classCallCheck(this, Settings); this.loadSettings(); if (this.userSettings == null) { this.userSettings = { "ko-postscounter": false, "ko-hidersounds": false, "ko-cataloghider": false, "ko-catalogcss": false, "ko-catalogpreview": false, "ko-cataloglastfifty": false, "ko-idhider": false, "ko-polish": false }; this.saveSettings(); } if (this.userSettings["ko-catalogcss"] == undefined) { this.userSettings["ko-catalogcss"] = false; this.saveSettings(); } if (this.userSettings["ko-catalogpreview"] == undefined) { this.userSettings["ko-catalogpreview"] = false; this.saveSettings(); } if (this.userSettings["ko-cataloglastfifty"] == undefined) { this.userSettings["ko-cataloglastfifty"] = false; this.saveSettings(); } if (this.userSettings["ko-idhider"] == undefined) { this.userSettings["ko-idhider"] = false; this.saveSettings(); } if (this.userSettings["ko-polish"] == undefined) { this.userSettings["ko-polish"] = false; this.saveSettings(); } } _createClass(Settings, [{ key: "loadSettings", value: function loadSettings() { this.userSettings = JSON.parse(localStorage.getItem("kurwa_settings")); } }, { key: "saveSettings", value: function saveSettings() { localStorage.setItem("kurwa_settings", JSON.stringify(this.userSettings)); } }, { key: "render", value: function render() { var modalNav = document.getElementsByClassName("modal-nav")[0]; var modalCont = document.getElementsByClassName("modal-cont")[0]; var tabCont = document.getElementsByClassName("tab-content"); var newTab = document.createElement("li"); newTab.setAttribute("data-tab-ref", "tab-settings-kurwachuj"); newTab.innerText = "Kurwachuj.ork"; newTab.style.color = "#" + ("000000" + Math.floor(Math.random() * 16777216).toString(16)).substr(-6); modalNav.appendChild(newTab); var newTabContent = document.createElement("div"); newTabContent.setAttribute("id", "tab-settings-kurwachuj"); newTabContent.setAttribute("class", "tab-content"); newTabContent.innerHTML = "<h2>Ustawienia użytkownika</h2>"; modalCont.insertBefore(newTabContent, document.getElementsByClassName("btn-wrap")[0]); 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>"; var that = this; var checkboxes = document.getElementsByClassName("kurwa-settings"); for (var i = 0; i < Object.keys(this.userSettings).length; i++) { checkboxes[i].checked = Object.values(this.userSettings)[i]; } var _loop = function _loop(_i) { checkboxes[_i].addEventListener("change", function () { if (checkboxes[_i].checked == true) { that.userSettings[Object.keys(that.userSettings)[_i]] = true; } else if (checkboxes[_i].checked == false) { that.userSettings[Object.keys(that.userSettings)[_i]] = false; } that.saveSettings(); }, false); }; for (var _i = 0; _i < checkboxes.length; _i++) { _loop(_i); } newTab.addEventListener("click", function () { if (newTab.classList.contains("tab-opened") == false) { for (var _i2 = 0; _i2 < modalNav.childElementCount; _i2++) { if (modalNav.children[_i2].classList.contains("tab-opened")) { modalNav.children[_i2].setAttribute("class", ""); } } for (var _i3 = 0; _i3 < tabCont.length; _i3++) { if (tabCont[_i3].classList.contains("opened")) { tabCont[_i3].classList.remove("opened"); } } newTab.setAttribute("class", "tab-opened"); newTabContent.classList.add("opened"); } }, false); } }, { key: "getSettingState", value: function getSettingState(setting) { return this.userSettings[setting]; } }]); return Settings; }(); exports.default = Settings; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var PostsCounter = function () { function PostsCounter() { _classCallCheck(this, PostsCounter); this.loadData(); this.installDate = localStorage.getItem("kurwa_postscounter_installdate"); if (this.installDate == null) { this.installDate = Date.now(); localStorage.setItem("kurwa_postscounter_installdate", this.installDate); } if (this.postsNumber == null || isNaN(this.postsNumber)) { this.postsNumber = 0; this.saveData(); } } _createClass(PostsCounter, [{ key: "loadData", value: function loadData() { this.postsNumber = parseInt(localStorage.getItem("kurwa_postscounter_number")); } }, { key: "saveData", value: function saveData() { localStorage.setItem("kurwa_postscounter_number", this.postsNumber); } }, { key: "render", value: function render() { var averagePosts = this.postsNumber / ((Date.now() - this.installDate) / 3600000 / 24); var rank = this.getRank(); var registerDate = new Date(parseInt(this.installDate)); registerDate = ("0" + registerDate.getDate()).slice(-2) + "/" + ("0" + (registerDate.getMonth() + 1)).slice(-2) + "/" + registerDate.getFullYear() + ", " + ("0" + registerDate.getHours()).slice(-2) + ":" + ("0" + registerDate.getMinutes()).slice(-2); var counter = document.createElement("li"); counter.setAttribute("id", "posts-counter"); counter.setAttribute("title", "Data rejestracji: " + registerDate); if (/catalog/.test(window.location.href) || /\*/.test(window.location.href)) { document.getElementsByClassName("rules")[0].appendChild(counter); } else { document.getElementsByClassName("rules")[1].appendChild(counter); } document.getElementById("posts-counter").innerHTML = "Posty: <a>" + this.postsNumber + "</a> (<b>" + rank + "</b>) | Śr. postów dziennie: <a>" + averagePosts.toFixed(2) + "</a>"; document.getElementById("posts-counter").style.fontSize = "90%"; var buttons = document.getElementsByClassName("ladda-button"); this.update = this.update.bind(this); for (var i = 0; i < buttons.length; i++) { buttons[i].addEventListener("click", this.update, false); } } }, { key: "update", value: function update() { var averagePosts = 0; var rank = 0; var buttons = document.getElementsByClassName("ladda-button"); var that = this; for (var i = 0; i < buttons.length; i++) { buttons[i].removeEventListener("click", this.update, false); } var fillFields_o = fillFields; fillFields = function fillFields(arg) { if (arg != "body") { that.increment(); averagePosts = that.postsNumber / ((Date.now() - that.installDate) / 3600000 / 24); rank = that.getRank(); document.getElementById("posts-counter").innerHTML = "Posty: <a>" + that.postsNumber + "</a> (<b>" + rank + "</b>) | Śr. postów dziennie: <a>" + averagePosts.toFixed(2) + "</a>"; } return fillFields_o(arg); }; } }, { key: "increment", value: function increment() { this.loadData(); this.postsNumber += 1; this.saveData(); } }, { key: "getRank", value: function getRank() { var n = this.postsNumber; if (n >= 0 && n < 100) return "Ekstremalna nowociota"; if (n >= 100 && n < 500) return "Nowociota"; if (n >= 500 && n < 1000) return "Jeszcze w folii"; if (n >= 1000 && n < 2137) return "Anonek"; if (n >= 2137 && n < 5000) return "Syn tej ziemi"; if (n >= 5000 && n < 9000) return "Średniociota"; if (n >= 9000 && n < 15000) return "Anon"; if (n >= 15000 && n < 20000) return "Antoni"; if (n >= 20000 && n < 30000) return "SKURWYSYN"; if (n >= 30000) return "Starociota"; } }]); return PostsCounter; }(); exports.default = PostsCounter; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var HiderSounds = function () { function HiderSounds() { _classCallCheck(this, HiderSounds); 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"]; 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"]; if (!("contains" in String.prototype)) { String.prototype.contains = function (str, startIndex) { return -1 !== String.prototype.indexOf.call(this, str, startIndex); }; } this.hideAudio = []; this.showAudio = []; for (var i = 0; i < this.hideSounds.length; i++) { this.hideAudio[i] = new Audio(this.hideSounds[i]); this.hideAudio[i].volume = 0.4; } for (var _i = 0; _i < this.showSounds.length; _i++) { this.showAudio[_i] = new Audio(this.showSounds[_i]); this.showAudio[_i].volume = 0.4; } } _createClass(HiderSounds, [{ key: "append", value: function append() { var buttons = 0; var that = this; if (/catalog/.test(window.location.href)) { buttons = document.getElementsByClassName("hide-buttons"); } else { buttons = document.getElementsByClassName("hider"); } for (var i = 0; i < buttons.length; i++) { buttons[i].addEventListener("click", function () { that.playSound(this); }, false); } } }, { key: "playSound", value: function playSound(ctx) { if (ctx.innerText.contains("[+]")) { this.hideAudio[Math.floor(Math.random() * this.hideAudio.length)].play(); } else if (ctx.innerText.contains("[–]")) { this.showAudio[Math.floor(Math.random() * this.showAudio.length)].play(); } } }]); return HiderSounds; }(); exports.default = HiderSounds; /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var CatalogHider = function () { function CatalogHider() { _classCallCheck(this, CatalogHider); this.board = window.location.href.split("/")[3]; this.hiddenThreads = []; for (var i = 0; i < localStorage.length; i++) { if (localStorage.key(i).substring(0, 2) == "h_" + this.board) { this.hiddenThreads.push(localStorage.key(i)); } } } _createClass(CatalogHider, [{ key: "render", value: function render() { if (/catalog/.test(window.location.href) == false) return; var threads = document.getElementsByClassName("thread"); for (var i = 0; i < threads.length; i++) { threads[i].innerHTML += "<a href=\"javascript:;\" class=\"hide-buttons\" id=\"hide-btn-" + threads[i].id.replace(/[^0-9]/g, "") + "\">[–]</a>"; } var buttons = document.getElementsByClassName("hide-buttons"); var that = this; for (var _i = 0; _i < buttons.length; _i++) { buttons[_i].addEventListener("click", function () { that.toggleThread(this); }, false); } for (var _i2 = 0; _i2 < threads.length; _i2++) { var thread = threads[_i2]; if (localStorage.getItem("h_" + that.board + "_" + thread.id.replace(/[^0-9]/g, ""))) { thread.style.height = "32px"; thread.getElementsByClassName("thumb")[0].style.display = "none"; thread.getElementsByClassName("teaser")[0].style.display = "none"; thread.getElementsByClassName("hide-buttons")[0].innerText = "[+]"; var parentNode = thread.parentNode; var nextSibiling = document.getElementsByClassName("thread").nextSibiling; thread = parentNode.insertBefore(thread, nextSibiling); } } } }, { key: "toggleThread", value: function toggleThread(ctx) { var thread = document.getElementById("thread-" + ctx.id.replace(/[^0-9]/g, "")); var thumb = thread.getElementsByClassName("thumb")[0]; var teaser = thread.getElementsByClassName("teaser")[0]; var id = "h_" + window.location.href.split("/")[3] + "_" + ctx.id.replace(/[^0-9]/g, ""); if (ctx.innerText.contains("[–]")) { thread.style.height = "32px"; thumb.style.display = "none"; teaser.style.display = "none"; ctx.innerText = "[+]"; var parentNode = thread.parentNode; var nextSibiling = document.getElementsByClassName("thread").nextSibiling; thread = parentNode.insertBefore(thread, nextSibiling); localStorage.setItem(id, teaser.innerText.replace(/https*:\/\/\S+/g, "[url]").replace(/>>\S+/, "").replace(/\s+/g, " ").slice(0, 60)); } else if (ctx.innerText.contains("[+]")) { thread.style.height = "320px"; thumb.style.display = "block"; teaser.style.display = ""; ctx.innerText = "[–]"; localStorage.removeItem(id); } } }]); return CatalogHider; }(); exports.default = CatalogHider; /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var CatalogCSS = function () { function CatalogCSS() { _classCallCheck(this, CatalogCSS); } _createClass(CatalogCSS, [{ key: "apply", value: function apply() { if (/catalog/.test(window.location.href) == false) return; var threads = document.getElementsByClassName("thread"); for (var i = 0; i < threads.length; i++) { threads[i].style.width = "160px"; if (threads[i].getElementsByClassName("hide-buttons")[0].innerText == "[–]") { threads[i].style.height = "320px"; } threads[i].style.marginLeft = "3px"; threads[i].style.marginRight = "3px"; threads[i].style.padding = "3px"; } } }]); return CatalogCSS; }(); exports.default = CatalogCSS; /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var CatalogPreview = function () { function CatalogPreview() { _classCallCheck(this, CatalogPreview); } _createClass(CatalogPreview, [{ key: "render", value: function render() { if (/catalog/.test(window.location.href) == false) return; document.styleSheets[25].insertRule(".img-preview { display: none; position: absolute; }", 0); var thumbs = document.getElementsByClassName("thumb"); var that = this; for (var i = 0; i < thumbs.length; i++) { thumbs[i].addEventListener("mousemove", function (e) { that.preview(this, e); }, false); } } }, { key: "preview", value: function preview(ctx, e) { var src = ctx.src; var previewNode = document.createElement("div"); var img = document.createElement("img"); previewNode.setAttribute("class", "img-preview"); img.setAttribute("src", "./src/" + src.replace(/[^0-9]/g, "") + "." + src.substring(src.lastIndexOf(".") + 1)); previewNode.appendChild(img); var clientWindow = { "x": document.documentElement.getBoundingClientRect().left, "y": document.documentElement.getBoundingClientRect().top * -1, "w": document.documentElement.getBoundingClientRect().width, "h": window.innerHeight }; var cursor = { "x": e.pageX, "y": e.pageY - clientWindow.y }; var spaceLeft = { "w": Math.max(clientWindow.w - cursor.x, cursor.x), "h": clientWindow.h }; document.getElementsByTagName("body")[0].appendChild(previewNode); var preview = document.getElementsByClassName("img-preview")[0]; var previewImg = preview.children[0]; var imgSize = { "w": previewImg.width, "h": previewImg.height, "scale": Math.min(1, spaceLeft.w / previewImg.width, spaceLeft.h / previewImg.height) }; if (imgSize.w != 0 && imgSize.h != 0) { previewImg.maxWidth = imgSize.scale * imgSize.w; previewImg.maxHeight = imgSize.scale * imgSize.h; previewImg.height = imgSize.scale * imgSize.h; preview.style.left = cursor.x > clientWindow.w / 2 ? cursor.x - imgSize.w - 32 + "px" : cursor.x + 32 + "px"; preview.style.top = clientWindow.y + (clientWindow.h - imgSize.h) / 2 + "px"; } preview.style.display = "block"; preview.style.position = "absolute"; preview.style.zIndex = 2137; var previews = document.getElementsByClassName("img-preview"); ctx.addEventListener("mouseleave", function () { for (var i = 0; i < previews.length; i++) { previews[i].parentNode.removeChild(previews[i]); } }, false); } }]); return CatalogPreview; }(); exports.default = CatalogPreview; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var CatalogLastFifty = function () { function CatalogLastFifty() { _classCallCheck(this, CatalogLastFifty); } _createClass(CatalogLastFifty, [{ key: "render", value: function render() { if (/catalog/.test(window.location.href) == false) return; var buttons = []; var threads = document.getElementsByClassName("thread"); for (var i = 0; i < threads.length; i++) { if (threads[i].dataset.replycount >= 50) { buttons[i] = document.createElement("a"); buttons[i].setAttribute("class", "last-fifty-buttons"); buttons[i].setAttribute("href", "./res/" + threads[i].id.replace(/[^0-9]/g, "") + "-50.html"); buttons[i].innerText = "50"; } else { buttons[i] = null; } } var hider = threads[0].children[3].classList == "hide-buttons"; for (var _i = 0; _i < threads.length; _i++) { if (buttons[_i] != null) { if (hider == true) { var separator = document.createElement("b"); separator.innerText = " | "; threads[_i].appendChild(separator); } threads[_i].appendChild(buttons[_i]); } } } }]); return CatalogLastFifty; }(); exports.default = CatalogLastFifty; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var IdHider = function () { function IdHider() { _classCallCheck(this, IdHider); this.loadIds(); if (this.hiddenIds == null || this.hiddenIds == undefined) { this.hiddenIds = {}; this.saveIds(); } } _createClass(IdHider, [{ key: "loadIds", value: function loadIds() { this.hiddenIds = JSON.parse(localStorage.getItem("kurwa_idhider")); } }, { key: "saveIds", value: function saveIds() { localStorage.setItem("kurwa_idhider", JSON.stringify(this.hiddenIds)); } }, { key: "render", value: function render() { if (/res/.test(window.location.href) == false) return; var posts = document.getElementsByClassName("post reply"); for (var i = 0; i < posts.length; i++) { if (window.location.href.indexOf("-50.html") > -1 && i == 0) { continue; } var button = document.createElement("a"); button.setAttribute("class", "hideid-buttons"); var id = posts[i].getElementsByClassName("posteruid")[0].title; button.classList.add("hideid-" + id); button.innerText = "[Ukryj]"; posts[i].getElementsByClassName("nameBlock")[0].appendChild(button); } var buttons = document.getElementsByClassName("hideid-buttons"); var that = this; for (var _i = 0; _i < buttons.length; _i++) { buttons[_i].addEventListener("click", function () { that.togglePosts(this); }, false); } var target = document.getElementsByClassName("thread")[0]; var config = { attributes: true, childList: true, characterData: true }; var observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { var post = mutation.addedNodes[0].getElementsByClassName("post reply")[0]; var button = document.createElement("a"); button.setAttribute("class", "hideid-buttons"); var id = post.getElementsByClassName("posteruid")[0].title; button.classList.add("hideid-" + id); button.innerText = "[Ukryj]"; post.getElementsByClassName("nameBlock")[0].appendChild(button); button.addEventListener("click", function () { that.togglePosts(button); }, false); var thread = document.getElementsByClassName("thread")[0].id.replace(/[^0-9]/g, ""); if (that.hiddenIds[thread.toString()] == undefined) return; if (that.hiddenIds[thread.toString()].indexOf(id) >= 0) { that.togglePosts(button); } }); }); observer.observe(target, config); var thread = document.getElementsByClassName("thread")[0].id.replace(/[^0-9]/g, ""); if (that.hiddenIds[thread.toString()] == undefined) return; for (var _i2 = 0; _i2 < posts.length; _i2++) { var _id = posts[_i2].getElementsByClassName("posteruid")[0].title; if (that.hiddenIds[thread.toString()].indexOf(_id) >= 0) { var _button = posts[_i2].getElementsByClassName("hideid-buttons")[0]; if (_button.innerText == "[Ukryj]") { that.togglePosts(_button); } else { continue; } } } } }, { key: "togglePosts", value: function togglePosts(ctx) { var thread = document.getElementsByClassName("thread")[0].id.replace(/[^0-9]/g, ""); var posts = document.getElementsByClassName(ctx.className); var id = ctx.classList[1].slice(7, 16); if (this.hiddenIds[thread] == null || this.hiddenIds[thread] == undefined) { this.hiddenIds[thread] = []; this.saveIds(); } if (ctx.innerText == "[Ukryj]") { for (var i = 0; i < posts.length; i++) { posts[i].innerText = "[Pokaż]"; var post = posts[i].parentNode.parentNode.parentNode; post.getElementsByClassName("postMessage")[0].style.display = "none"; if (post.getElementsByClassName("file")[0]) { post.getElementsByClassName("file")[0].style.display = "none"; } } if (this.hiddenIds[thread].indexOf(id) < 0) { this.hiddenIds[thread].push(id); } this.saveIds(); } else if (ctx.innerText == "[Pokaż]") { for (var _i3 = 0; _i3 < posts.length; _i3++) { posts[_i3].innerText = "[Ukryj]"; var _post = posts[_i3].parentNode.parentNode.parentNode; _post.getElementsByClassName("postMessage")[0].style.display = "block"; if (_post.getElementsByClassName("file")[0]) { _post.getElementsByClassName("file")[0].style.display = "block"; } } this.hiddenIds[thread].splice(this.hiddenIds[thread].indexOf(id), 1); for (var _i4 = 0; _i4 < Object.keys(this.hiddenIds).length; _i4++) { if (this.hiddenIds[Object.keys(this.hiddenIds)[_i4]].length == 0) { delete this.hiddenIds[parseInt(Object.keys(this.hiddenIds)[_i4])]; } } this.saveIds(); } } }]); return IdHider; }(); exports.default = IdHider; /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 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; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var Polish = function () { function Polish() { _classCallCheck(this, Polish); } _createClass(Polish, [{ key: "translate", value: function translate() { if (/catalog/.test(window.location.href) == true) { var threads = document.getElementsByClassName("thread"); for (var i = 0; i < threads.length; i++) { if (threads[i].children[0].children[0].innerText == "No file") { threads[i].children[0].children[0].innerText = "Brak pliku"; } threads[i].children[1].innerText = threads[i].children[1].innerText.replace(/R/g, "O"); threads[i].children[1].title = "(O)dpowiedzi"; } } } }]); return Polish; }(); exports.default = Polish; /***/ }) /******/ ]);