// ==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;
/***/ })
/******/ ]);