// ==UserScript== // @name Wykop XS 3 // @name:pl Wykop XS 3 // @name:en Wykop XS 3 // @version 3.1.5 // @description Wykop XS służy do wspomagania działania stylu "Wykop X Style 3", który jest sugerowany do poprawnego działania niniejszego skryptu. Wykop X Style znajdziesz na http://styl.wykopx.pl // @description:en Wykop XS is a helper script for userstyle "Wykop X Style 3" which modifies wykop.pl website and make it easier to use adding enhancements and new features. Check it out here: http://styl.wykopx.pl // Chcesz wesprzeć projekt Wykop X? Postaw kawkę: // @contributionURL https://buycoffee.to/wykopx // @author Wykop X // @match https://wykop.pl/* // @match https://github.com/wykopx/* // @supportURL http://wykop.pl/tag/wykopx // @namespace Violentmonkey Scripts // @compatible chrome, firefox, opera, safari, edge // @license No License // @icon https://www.google.com/s2/favicons?sz=64&domain=wykop.pl // @require https://unpkg.com/localforage@1.10.0/dist/localforage.min.js // @require https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js // @require https://cdn.jsdelivr.net/npm/dayjs@1.11.10/locale/pl.js // @require https://cdn.jsdelivr.net/npm/dayjs@1.11.10/plugin/relativeTime.js // @downloadURL https://update.greasyfork.icu/scripts/458860/Wykop%20XS%203.user.js // @updateURL https://update.greasyfork.icu/scripts/458860/Wykop%20XS%203.meta.js // ==/UserScript== (async function () { 'use strict'; const currentVersion = "3.1.5"; let dev = false; const promoString = " - Wykop XS / #wykopx"; const root = document.documentElement; const head = document.head; const body = document.body; const bodySection = body.querySelector("section"); dayjs.locale("pl"); dayjs.extend(window.dayjs_plugin_relativeTime); //dayjs.extend(relativeTime); // https://day.js.org/docs/en/plugin/relative-time // https://www.jsdelivr.com/package/npm/dayjs?tab=files&path=plugin // github if (!bodySection) { const openGitHubSidebar = () => { document.querySelector('div#wiki-wrapper div#wiki-content button.js-wiki-more-pages-link')?.click(); }; openGitHubSidebar(); window.addEventListener('load', openGitHubSidebar); window.addEventListener('pageshow', openGitHubSidebar); // window.addEventListener('popstate', openGitHubSidebar); // window.addEventListener('hashchange', openGitHubSidebar); // window.addEventListener('pagehide', openGitHubSidebar); // window.addEventListener('beforeunload', openGitHubSidebar); // window.addEventListener('unload', openGitHubSidebar); if (window.navigation) { window.navigation.addEventListener('navigate', function () { openGitHubSidebar(); }); } } // wykop else { const wykopxSettings = getComputedStyle(head); // getComputedStyle(document.documentElement) -- nie działa, nie wczytuje właściwości z :root const settings = {}; const styleElement = document.createElement('style'); styleElement.id = "wykopxs"; let CSS = ""; function setSettingsValueFromCSSProperty(settingName, defaultValueForWykopXS = true, propertyValueInsteadOfBoolean = false) { if (propertyValueInsteadOfBoolean) settings[settingName] = wykopxSettings.getPropertyValue(`--${settingName}`) ? wykopxSettings.getPropertyValue(`--${settingName}`).trim() : defaultValueForWykopXS; else settings[settingName] = wykopxSettings.getPropertyValue(`--${settingName}`) ? wykopxSettings.getPropertyValue(`--${settingName}`).trim() === '1' : defaultValueForWykopXS; } setSettingsValueFromCSSProperty("WykopXSEnabled"); if (settings.WykopXSEnabled == false) return; /* WYKOP XS HEADER */ let loggedUser = { //data: null, username: null // loggedUser.username -> nazwa zalogowanego uzytkownika }; let wxs_modal = null; let loadTime = dayjs(); // wykop_xs_mikroczat.user.js -MIKROCZAT/LISTA PLUSUJĄCYCH - settings setSettingsValueFromCSSProperty("entryVotersListEnable"); // włącza pokazywanie listy plusujących z Wykop X Style setSettingsValueFromCSSProperty("entryVotersListExpandIfLessThan", 50, true); setSettingsValueFromCSSProperty("hideAds"); // blokuje wszystkie reklamy na wykopie if (settings.entryVotersListEnable) { // entryVotersListExpandIfLessThan - domyślnie Wykop pokazywał 5 osób, które zaplusowały. // Możesz zmienić tę wartość na np. 10 albo 25. Jeśli wpis ma mniej plusów niż ta liczba, zostaną od razu wyświetleni wszyscy plusujący bez przycisku "+15 INNYCH" if (!settings.entryVotersListExpandIfLessThan) settings.entryVotersListExpandIfLessThan = 20; settings.votersFollow = true; // pokazuje 🔔 przed użytkownikami, których obserwujesz settings.votersBlacklist = true; // pokazuje ⛔ przed użytkownikami, których blokujesz settings.votersBanned = true; // pokazuje użytkowników z aktywnym banem w kolorze i z ikonką 🍌 settings.votersSuspended = true; // pokazuje ✖ przed kontami, które są w trakcie usuwania settings.votersRemoved = true; // pokazuje ✖ przed kontami, które są usunięte settings.votersGenderF = false; // pokazuje różową kropkę przed kobietami settings.votersGenderM = false; // pokazuje niebieską kropkę przed mężczyznami settings.votersColorGreen = true; // pokazuje zielonki w kolorze settings.votersColorOrange = false; // pokazuje pomarańczowych użytkowników w kolorze settings.votersColorBurgundy = true; // pokazuje użytkowników bordo w kolorze settings.votersFollowFirst = true; // pokazuje użytkowników, których obserwujesz pierwszych na liście settings.votersBlackFirst = false; // pokazuje plusy od moderacji pierwsze na liście (konta typu @wykop, @m__b, @a__s itd.) settings.votersBurgundyFirst = false; // pokazuje użytkowników bordo pierwszych na liście settings.votersOrangeFirst = false; // pokazuje zielonki pierwszych na liście settings.votersGreenFirst = false; // pokazuje pomarańczki pierwszych na liście settings.votersBlacklistLast = false; // pokazuje użytkowników, których zablokowałeś na końcu listy settings.votersRemovedLast = false; // pokazuje usunięte konta na końcu listy settings.votersBannedLast = false; // pokazuje zbanowanych na końcu listy settings.votersSuspendedLast = false; // pokazuje konta w trakcie usuwania na końcu listy } settings.hideShareButton = true; // ukrywa przycisk "Udostępnij" settings.showFavouriteButton = true; // pokazuje przycisk "Dodaj do ulubionych" (samą gwiazdkę) settings.showFavouriteButtonLabel = true; // pokazuje oprócz gwiazdki także tekst "Ulubione" settings.addCommentPlusWhenVotingOnEntry = false; // gdy plusujesz wpis, dodaje komentarz "+1" settings.addCommentPlusWhenVotingOnComment = false; // gdy plusujesz komentarz, dodaje komentarz "+1" settings.showAnimatedAvatars = true; // pokazuje animowane avatary settings.version = (getComputedStyle(bodySection).getPropertyValue("--version").trim().slice(1, -1)); // "2.48"; settings.versor = (getComputedStyle(bodySection).getPropertyValue("--versor").trim().slice(1, -1)); // "style", "blank", "block" settings.xblocker = (getComputedStyle(bodySection).getPropertyValue("--xblocker").trim().slice(1, -1)); // "2.48"; if (!dev) dev = setSettingsValueFromCSSProperty("wxsDev", false); setSettingsValueFromCSSProperty("WykopXStyleEnabled", false); setSettingsValueFromCSSProperty("quickLinksEnable"); setSettingsValueFromCSSProperty("myWykopInTopNavJS"); setSettingsValueFromCSSProperty("favoritesInTopNavJS"); setSettingsValueFromCSSProperty("imageUploaderEnable", false); // https://github.com/wykopx/WykopX/wiki/X-Wklejanie-obrazkow-ze-schowka setSettingsValueFromCSSProperty("disableNewLinkEditorPastedTextLimit"); setSettingsValueFromCSSProperty("autoOpenMoreContentEverywhere"); setSettingsValueFromCSSProperty("autoOpenSpoilersEverywhere"); setSettingsValueFromCSSProperty("observedTagsInRightSidebarEnable"); setSettingsValueFromCSSProperty("linkVoteDownButton"); setSettingsValueFromCSSProperty("infiniteScrollEntriesEnabled"); setSettingsValueFromCSSProperty("infiniteScrollLinksEnabled"); setSettingsValueFromCSSProperty("editorShowMyUsername"); setSettingsValueFromCSSProperty("editorShowMyUsernameOnSendButton"); setSettingsValueFromCSSProperty("haveBanDisableTextarea"); // ARCHIWUM X setSettingsValueFromCSSProperty("wxsArchiveXNewestEntry", false); if (settings.wxsArchiveXNewestEntry) settings.wxsArchiveXNewestEntryRefresh = wykopxSettings.getPropertyValue("--wxsArchiveXNewestEntryRefresh") ? parseInt(wykopxSettings.getPropertyValue("--wxsArchiveXNewestEntryRefresh")) : 15000; // PRZEŁĄCZNIKI setSettingsValueFromCSSProperty("wxsSwitchesEnable", false); if (settings.wxsSwitchesEnable) { setSettingsValueFromCSSProperty("wxsSwitchPhotoViewer"); setSettingsValueFromCSSProperty("wxsSwitchImages"); setSettingsValueFromCSSProperty("wxsSwitchYouTube"); setSettingsValueFromCSSProperty("wxsSwitchAdult"); setSettingsValueFromCSSProperty("wxsSwitchNSFW"); setSettingsValueFromCSSProperty("wxsSwitchTags"); setSettingsValueFromCSSProperty("wxsSwitchByUserColor"); setSettingsValueFromCSSProperty("wxsSwitchByUserGender"); } setSettingsValueFromCSSProperty("removeAnnoyancesEnable"); if (settings.removeAnnoyancesEnable) { setSettingsValueFromCSSProperty("removeAnnoyancesIframes"); setSettingsValueFromCSSProperty("removeAnnoyancesScripts"); setSettingsValueFromCSSProperty("removeAnnoyancesAds"); setSettingsValueFromCSSProperty("removeAnnoyancesGDPR"); } // WYKOP OBJECTS INTERSECTION OBSERVER let IntersectionObserverEnabled = false; setSettingsValueFromCSSProperty("intersectionObserverRootMargin"); setSettingsValueFromCSSProperty("linkToVideoDuration"); setSettingsValueFromCSSProperty("entryWithVideoDuration"); if (settings.linkToVideoDuration || settings.entryWithVideoDuration) { IntersectionObserverEnabled = true; } setSettingsValueFromCSSProperty("checkLinkVotesEnable"); if (settings.checkLinkVotesEnable) { IntersectionObserverEnabled = true; setSettingsValueFromCSSProperty("checkLinkVotesPerHour"); setSettingsValueFromCSSProperty("checkLinkCommentsPerHour"); } // voting explosion setSettingsValueFromCSSProperty("votingExplosionEnable", false); // checkPluses() let votesFetchingLimitMinimumVotes = 1; let votesFetchingLimitMaximumHoursOld = 48; let votesFetchingFirstDelayInSeconds = 1; // seconds let votesFetchingOngoingDelayInSeconds = 990; // seconds let votesFetchingHigherFrequencyLimitMinimumVotes = 30; let votesFetchingHigherFrequencyLimitMaximumHoursOld = 24; let votesFetchingHigherFrequencyDelayInSeconds = 990; // seconds setSettingsValueFromCSSProperty("checkEntryPlusesWhenVoting"); setSettingsValueFromCSSProperty("checkEntryPlusesEnable"); setSettingsValueFromCSSProperty("prefixBeforePlusesCount", "brak", true); // domyslnie puste, dodajemy plus przed liczbą plusów const prefixBeforePlusesCountMap = new Map([ ['brak', ''], ['plus', '+'], // domyslnie ['emoji_serce', '💚'], ['emoji_index_pointing_up', '☝'], ['emoji_thumbs_up', '👍'], ['emoji_backhand_index_pointing_up', '👆'], ['emoji_upwards_button', '🔼'], ['emoji_up_arrow', '⬆'], ['emoji_up_right_arrow', '↗'], ['emoji_up_left_arrow', '↖'], ['emoji_right_arrow_curving_up', '⤴'], ['emoji_heavy_tick', '✔'], ['emoji_plus_sign', '➕'], ['emoji_red_triangle_pointed_up', '🔺'] ]); settings.prefixBeforePlusesCount = prefixBeforePlusesCountMap.get(settings.prefixBeforePlusesCount); setSettingsValueFromCSSProperty("prefixBeforeMinusesCount", "minus", true); // domyślnie minus i tak zostawiamy const prefixBeforeMinusesCountMap = new Map([ ['brak', ''], ['minus', '-'], // domyslnie ['emoji_cross_mark', '❌'], ['emoji_backhand_index_pointing_down', '👇'], ['emoji_thumbs_down', '👎'], ['emoji_downwards_button', '🔽'], ['emoji_down_arrow', '⬇'], ['emoji_down_right_arrow', '↘'], ['emoji_down_left_arrow', '↙'], ['emoji_right_arrow_curving_down', '⤵'], ['emoji_minus_sign', '➖'], ['emoji_red_triangle_pointed_down', '🔻'] ]); settings.prefixBeforeMinusesCount = prefixBeforeMinusesCountMap.get(settings.prefixBeforeMinusesCount); if (settings.checkEntryPlusesEnable) { IntersectionObserverEnabled = true; setSettingsValueFromCSSProperty("checkEntryPlusesPerHour"); setSettingsValueFromCSSProperty("checkEntryCommentsPerHour"); setSettingsValueFromCSSProperty("checkEntryPlusesForVotingGame"); } // SPRAWDZANIE UZYTKOWNIKOW KTORZY CIE BLOKUJA settings.authorBlocksYouCheckingEnable = true; // LOCAL STORAGE let localStorageMirkoukrywacz = null; let localStorageNotatkowator = null; let localStorageUserLabels = null; // LOCALSTORAGE const localStorageFirstDailyIDs = localforage.createInstance({ driver: localforage.LOCALSTORAGE, name: "wykopx", storeName: "firstDailyIDs", }); setSettingsValueFromCSSProperty("linkThumbnail", "poprawej", true); // "poprawej", "polewej", "niepokazuj" setSettingsValueFromCSSProperty("actionBoxEnable"); if (settings.actionBoxEnable) { IntersectionObserverEnabled = true; setSettingsValueFromCSSProperty("filterUserComments"); setSettingsValueFromCSSProperty("filterUserReplies"); setSettingsValueFromCSSProperty("mirkoukrywaczEnable"); if (settings.mirkoukrywaczEnable) { setSettingsValueFromCSSProperty("mirkoukrywaczMinimizedGrayedOut"); setSettingsValueFromCSSProperty("mirkoukrywaczMinimizeEntries"); setSettingsValueFromCSSProperty("mirkoukrywaczMinimizeComments"); setSettingsValueFromCSSProperty("mirkoukrywaczHideEntries"); setSettingsValueFromCSSProperty("mirkoukrywaczHideComments"); setSettingsValueFromCSSProperty("mirkoukrywaczHideLinks"); setSettingsValueFromCSSProperty("mirkoukrywaczSaveEntries"); setSettingsValueFromCSSProperty("mirkoukrywaczSaveComments"); } CSS += ` /* ACTION BOX */ section .wxs_menu_action_box { --buttonsBorderRadius: 5px; width: fit-content; position: absolute; height: 30px; border-style: solid; border-color: var(--blackOpacity01, rgb(125 125 125 / 1)); color: var(--blackOpacity02, rgb(125 125 125 / 1)); display: flex; flex-direction: row; justify-content: space-between; font-size: 11px; z-index: 1; opacity: 1!important; transition: opacity 0.5s linear!important; } section .wxs_menu_action_box:hover { background-color: var(--contentBackgroundColor, rgb(0 0 0 / 0.2)); } @starting-style { section .wxs_menu_action_box { opacity: 0!important; } } /* WE WPISACH I KOMENTARZACH */ section.entry .wxs_menu_action_box { border-radius: 0px 0px var(--buttonsBorderRadius, 4px) var(--buttonsBorderRadius, 4px); border-width: 0px 1px 1px 1px; right: 140px; } section.entry:not(.reply) .wxs_menu_action_box { top: 0px; } /* w znaleziskach */ section.link-block .wxs_menu_action_box { border-color: var(--blackOpacity005, rgb(125 125 125 / 1)); border-radius: var(--buttonsBorderRadius, 4px) var(--buttonsBorderRadius, 4px) 0px 0px; border-width: 1px 1px 0px 1px; bottom: 0px; top: unset; /* zmienione gdy linkThumbnail == "polewej" */ right: 18px; left: unset; } /* kolejność przycisków zmienione gdy linkThumbnail == "polewej" */ section.link-block .wxs_menu_action_box .wxs_filter_off { order: 1; } section.link-block .wxs_menu_action_box .wxs_filter_on_user { order: 2; } section.link-block .wxs_menu_action_box .wxs_hide { order: 3; } /* MOBILE */ @media (max-width: 640px) { /* WXS ACTION MENU BUTTONS */ section.link-block .wxs_menu_action_box { right: unset!important; left: 40%!important; } } `; if (settings.linkThumbnail == "polewej") { CSS += `@media (max-width: 640px) { section.link-block .wxs_menu_action_box .wxs_filter_on_user { order: 2!important; } section.link-block .wxs_menu_action_box .wxs_filter_off { order: 3!important; } section.link-block .wxs_menu_action_box .wxs_hide { order: 1!important; } } /* WERSJA PC */ @media (min-width: 641px) { /* WXS ACTION MENU BUTTONS */ section.link-block .wxs_menu_action_box { right: unset!important; left: 122px!important; } section.link-block .wxs_menu_action_box .wxs_filter_on_user { order: 2!important; } section.link-block .wxs_menu_action_box .wxs_filter_off { order: 3!important; } section.link-block .wxs_menu_action_box .wxs_hide { order: 1!important; } } `; }; CSS += ` section.link-page section.link-block .wxs_menu_action_box { left: unset!important; right: 155px!important; } section.link-page section.entry .wxs_menu_action_box { right: 190px; } /* wpisy w sidebarze */ main.main > section > section.sidebar > section.custom-sidebar > div.content > section.entries > section.entry .wxs_menu_action_box { display: none!important; } section.entry .wxs_menu_action_box:hover { box-shadow: 3px 3px 2px 1px rgba(0, 0, 0, 0.1); border-color: var(--blackOpacity04, rgb(125 125 125 / 1)); } section.link-block .wxs_menu_action_box:hover { box-shadow: 3px -3px 2px 1px rgba(0, 0, 0, 0.1); border-color: var(--blackOpacity04, rgb(125 125 125 / 1)); } section .wxs_menu_action_box button { display: flex; justify-content: center; align-items: center; font-size: inherit; min-width: 20px; width: max-content; padding: 0px 10px; height: 100%; color: inherit; } section .wxs_menu_action_box button:first-child { border-radius: 0px 0px 0px var(--buttonsBorderRadius, 4px)!important; } section .wxs_menu_action_box button:last-child { border-radius: 0px 0px var(--buttonsBorderRadius, 4px) 0px!important; } section .wxs_menu_action_box button span { font-size: inherit; padding: 0px 3px; } @media (max-width: 1350px) { section.entry .wxs_menu_action_box button span { display: none; } } /* ukrycie niepotrzebnych przycisków */ section.wxs_minimized > article > div.wxs_menu_action_box > button.wxs_minimize, section:not(.wxs_minimized) > article > div.wxs_menu_action_box > button.wxs_maximize, section.own > article > .wxs_menu_action_box > .wxs_hide { display: none; } /* ukrycie filtrowania pod wpisem bez komentarzy */ section.entry-page > section.entry > section.stream > div.content > section.entry.detailed:not(:has(div.comments)) .wxs_menu_action_box > button:is(.wxs_filter_on_user, .wxs_filter_off, .wxs_filter_on_replies) section.entry-page > section.entry > section.stream > div.content > section.entry.detailed:not(:has(div.comments)) > article > div.edit-wrapper > div.content > section.entry-content > div.wrapper > button.wxs_filter_on_replies { display: none!important; } section.link-block .wxs_menu_action_box > button.wxs_minimize, section.link-block .wxs_menu_action_box > button.wxs_save, section.link-block .wxs_menu_action_box > button.wxs_filter_on_replies { display: none; } section.entry article > div.edit-wrapper > div.content > section.entry-content > div.wrapper > button.wxs_filter_on_replies { display: inline-block; margin: 1px 2px 1px 3px; padding: 2px 4px 2px 4px; } section.entry article > div.edit-wrapper > div.content > section.entry-content > div.wrapper > button.wxs_filter_on_replies > span { display: none; font-size: 11px; margin: 0px 4px; } section.entry article > div.edit-wrapper > div.content > section.entry-content > div.wrapper > button.wxs_filter_on_replies:hover > span { display: inline; } section.entry article > div.edit-wrapper > div.content > section.entry-content > div.wrapper > button { border: 1px solid var(--athensGray); } section.entry article > div.edit-wrapper > div.content > section.entry-content > div.wrapper > button:hover { background-color: var(--whitish) } /* --- filtrowanie komentarzy użytkownika --- */ section .wxs_menu_action_box button:hover, body[data-wxs_filter="userComments"] .wxs_menu_action_box button.wxs_filter_on_user:hover body[data-wxs_filter="userReplies"] .wxs_menu_action_box button.wxs_filter_on_replies:hover { background-color: var(--blackOpacity005, rgb(0 0 0 / 0.05)); color: var(--blackOpacity1, rgb(125 125 125 / 1)); } body[data-wxs_filter="userComments"] .wxs_menu_action_box button.wxs_filter_on_user, body[data-wxs_filter="userReplies"] .wxs_menu_action_box button.wxs_filter_on_replies { color: var(--blackOpacity05, rgb(125 125 125 / 1)); background-color: var(--blackOpacity002, rgb(0 0 0 / 0.02)); border-bottom: 1px solid var(--blackOpacity05, rgb(125 125 125 / 1)); } /* przyciski filtrowania komentarzy użytkownika */ /* wpisy na stronie glownej */ main.main > section > div.content > section.home-page > section.home > section.stream > div.content > section.entry .wxs_menu_action_box > [class="wxs_filter_on_replies"], /* wpisy z 1 lub 2 komentarzami */ section.entry[wxs_first_load_comments_count="1"] .wxs_menu_action_box > [class^="wxs_filter"], section.entry[wxs_first_load_comments_count="2"] .wxs_menu_action_box > [class^="wxs_filter"], /* wpisy bez komentarzy */ /* main.main > section > div.content > section:not(.link-page) > section section.stream > div.content > section.entry:not(.reply):not(:has(div.comments)) .wxs_menu_action_box > .wxs_filter_on, */ /* main.main > section > div.content > section:not(.link-page) > section section.stream > div.content > section.entry:not(.reply):not(:has(div.comments)) .wxs_menu_action_box > .wxs_filter_off */ { display: none; } .wxs_menu_action_box > .wxs_filter_off { display: none; } /* ----- ZMINIMALIZOWANE WPISY I KOMENTARZE */ /* wpisy */ section.entry.wxs_minimized > article { padding: 0rem var(--entryLeftPadding, 16px;) 0rem 0rem!important; }`; if (settings.mirkoukrywaczMinimizedGrayedOut) { CSS += `section.entry.wxs_minimized > article { filter: grayscale(100%); }`; } CSS += ` /* STRONA ZNALEZISKA - ZWINIĘTE KOMENTARZE */ section.link-page section.entry.wxs_minimized { height: 35px; padding: 0px!important; } section.link-page section.entry.wxs_minimized > article { padding: 0px!important; height: 35px; padding-right: var(--entriesAndCommentsHorizontalPadding, 16px)!important; margin: 0px!important; } section.link-page section.entry.wxs_minimized > div.comments { display: none!important; } section.link-page section.entry.wxs_minimized > article > header, section.link-page section.entry.wxs_minimized > article > header > div { height: 100%!important; } /* czas dodania */ section.entry.wxs_minimized > article > header > div.right > div > span { display: none!important; } /* avatar */ section.entry.wxs_minimized > article > header > div.left { transform: translate(0px, 0px); --avatarSize: 17px; } /* div.right */ section.entry.wxs_minimized > article > header { min-height: unset!important; } section.entry.wxs_minimized > article > header > div.right { height: 35px!important; align-items: center!important; } section.entry.wxs_minimized > article > header > div.right > div { display: flex!important; align-items: center!important; } /* treść */ section.entry.wxs_minimized > article > div.edit-wrapper { display: none!important; } /* ukrycie 2 najlepszych komentarzy pod wpisem w streamie */ main.main > section > div.content > section:is(.bucket-page, .category-page, .favourites-page, .home-page, .observed-page, .profile-page, .tag-page, .microblog-page) > section section.stream > div.content > section.entry.wxs_minimized > div.comments { display: none!important; }`; if (settings.mirkoukrywaczEnable) { /* WPISY UKRYWANE PRZEZ MIRKOUKRYWACZ .wxs_hidden should be removed most of the times, but still... */ CSS += ` /* TODO LINK */ main.main > section > div.content > section:is(.category-page, .favourites-page, .home-page, .observed-page, .profile-page, .tag-page, .microblog-page) > section section.stream > div.content > section.entry.wxs_hidden main.main > section > div.content > section.search-page > section section.stream > div.content section.entry.wxs_hidden { display: none!important; }` } } else { settings.mirkoukrywaczEnable = false; } if (settings.mirkoukrywaczEnable) { // LOCALSTORAGE localStorageMirkoukrywacz = localforage.createInstance({ driver: localforage.LOCALSTORAGE, name: "wykopx", storeName: "mirkoukrywacz", }); } setSettingsValueFromCSSProperty("notatkowatorEnable", true); if (settings.notatkowatorEnable) { IntersectionObserverEnabled = true; localStorageNotatkowator = localforage.createInstance({ driver: localforage.LOCALSTORAGE, name: "wykopx", storeName: "notatkowator", }); //settings.notatkowatorUpdateInterval = parseFloat(wykopxSettings.getPropertyValue("--notatkowatorUpdateInterval")); // number 0 ... 120 setSettingsValueFromCSSProperty("notatkowatorVerticalBar"); setSettingsValueFromCSSProperty("notatkowatorWebsiteURL"); setSettingsValueFromCSSProperty("notatkowatorStyle", "obok_nicka", true); // obok_nicka, obok_nicka_druga_linia, pod_avatarem } let falszyweRozoweArray = null; let falszyweNiebieskieArray = null; let mapaTrolli = null; setSettingsValueFromCSSProperty("wxsUserLabelsEnable", true); if (settings.wxsUserLabelsEnable) { IntersectionObserverEnabled = true; localStorageUserLabels = localforage.createInstance({ driver: localforage.LOCALSTORAGE, name: "wykopx", storeName: "userlabels", }); setSettingsValueFromCSSProperty("wxsUserLabelsFakeFemales", true); setSettingsValueFromCSSProperty("wxsUserLabelsTrolls", true); if (settings.wxsUserLabelsFakeFemales) { // LISTA FAŁSZYWYCH RÓŻOWYCH PASKÓW fałszywe różowe const listafalszywychrozowych = []; listafalszywychrozowych.push('washington'); listafalszywychrozowych.push('Obrzydzenie'); listafalszywychrozowych.push('Blueweb'); listafalszywychrozowych.push('conamirko'); listafalszywychrozowych.push('i_took_a_pill_in_remiza'); listafalszywychrozowych.push('Riolet'); listafalszywychrozowych.push('ChwilowaPomaranczka'); listafalszywychrozowych.push('RobieZdrowaZupke'); listafalszywychrozowych.push('IlllIlIIIIIIIIIlllllIlIlIlIlIlIlIII'); listafalszywychrozowych.push('Banderoza'); listafalszywychrozowych.push('deiceberg'); listafalszywychrozowych.push('Chodtok'); listafalszywychrozowych.push('kierowcaautobusuofficial'); listafalszywychrozowych.push('ToJestNiepojete'); listafalszywychrozowych.push('model_wygenerowany_na_wykoppl'); listafalszywychrozowych.push('chwilowypaczelok'); listafalszywychrozowych.push('sinls'); listafalszywychrozowych.push('KRZYSZTOF_DZONG_UN'); listafalszywychrozowych.push('miszczu90'); listafalszywychrozowych.push('nenq123'); listafalszywychrozowych.push('domek_drewniany'); listafalszywychrozowych.push('konserwix'); listafalszywychrozowych.push('Diamond'); listafalszywychrozowych.push('BlackBl-kunack'); listafalszywychrozowych.push('Mantusabra'); listafalszywychrozowych.push('ElCidX'); listafalszywychrozowych.push('cword'); listafalszywychrozowych.push('ToJestNiepojete'); listafalszywychrozowych.push('powodzenia'); listafalszywychrozowych.push('washington'); listafalszywychrozowych.push('sipson204'); listafalszywychrozowych.push('36873'); listafalszywychrozowych.push('Defined'); listafalszywychrozowych.push('toniemojebuty'); listafalszywychrozowych.push('DigitalPasztet'); listafalszywychrozowych.push('wcaleniepchamsiewmultikonto'); listafalszywychrozowych.push('Wieczny_Prawiczek'); listafalszywychrozowych.push('Bpnn'); listafalszywychrozowych.push('AndrzejBabinicz'); listafalszywychrozowych.push('bruhmomentow'); listafalszywychrozowych.push('iforgotmypass_'); listafalszywychrozowych.push('kwiat_pustyni626'); listafalszywychrozowych.push('powodzenia'); listafalszywychrozowych.push('simsakPL'); listafalszywychrozowych.push('ramotka'); listafalszywychrozowych.push('2plus1'); // LISTA FAŁSZYWYCH NIEBIESKICH PASKÓW fałszywe niebieskie const listafalszywychniebieskich = []; listafalszywychniebieskich.push("Kantor_wymiany_mysli_i_wrazen"); listafalszywychniebieskich.push("DragonTattoo2404"); listafalszywychniebieskich.push("qksgh"); listafalszywychniebieskich.push("mariusz9922"); listafalszywychniebieskich.push("xoxo900"); listafalszywychniebieskich.push("jutronaobiadznowuryz"); localStorageUserLabels.setItem('falszyweRozowe', listafalszywychrozowych).then(() => { }); localStorageUserLabels.setItem('falszyweNiebieskie', listafalszywychniebieskich).then(() => { }); // get from localstorage falszyweRozoweArray = await localStorageUserLabels.getItem("falszyweRozowe"); falszyweNiebieskieArray = await localStorageUserLabels.getItem("falszyweNiebieskie"); } if (settings.wxsUserLabelsTrolls) { const trollsMap = new Map(); trollsMap.set("WykopX", { "url": "https://github.com/wykopx/WykopX/wiki/X-Notatkowator" }); trollsMap.set("wykop", { "label": "Oficjalne konto", }); trollsMap.set("bakehaus", { "label": "Wypiek", "url": "https://nimble.li/vdr4ajlm" }); trollsMap.set("m__b", { "label": "Michał B.", "url": "https://pl.linkedin.com/in/michalbialek" }); trollsMap.set("paliwoda", { "url": "https://sjp.pwn.pl/sjp/chomato;2448428.html" }); trollsMap.set("autotldr", { "label": "Bot AI", "url": "https://github.com/wykopx/Aplikacje-wykopowe/wiki/Boty-na-Wykopie#auto-tldr" }); trollsMap.set("wykop-gpt", { "label": "Bot AI", "url": "https://github.com/wykopx/Aplikacje-wykopowe/wiki/Boty-na-Wykopie#wykop-gpt" }); trollsMap.set("Przypomnienie", { "label": "Bot AI", "url": "https://github.com/wykopx/Aplikacje-wykopowe/wiki/Boty-na-Wykopie#przypomnienie" }); trollsMap.set("DwieLinieBOTv3", { "label": "Bot AI", "url": "https://github.com/wykopx/Aplikacje-wykopowe/wiki/Boty-na-Wykopie#dwie-linie-bot" }); trollsMap.set("ISSTrackerPL", { "label": "Bot", "url": "https://github.com/wykopx/Aplikacje-wykopowe/wiki/Boty-na-Wykopie#iss-tracker" }); trollsMap.set("januszowybot", { "label": "Bot", "url": "https://github.com/wykopx/Aplikacje-wykopowe/wiki/Boty-na-Wykopie#januszowy-bot" }); trollsMap.set("mirko_anonim", { "label": "Anonim", "url": "https://github.com/wykopx/Aplikacje-wykopowe/wiki/Aplikacje#mirkoanonim" }); // #wykopaka sciana wstydu trollsMap.set("Barneyeos", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("zzbkk", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("ZarejestrowanyMimoWoli", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("idainadenshigijutsusha", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("birus", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("anthonysoprano", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("ferigone", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("DerMirker", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("viciu03", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("kriss2005r", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Kalinke01", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("maestroPijanyRolnik", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Davidvia0", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Nefree", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Architekt_Chaosu", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("kogut_20", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("mkeeey", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Mirkosoft", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("WodkaGrejfrut", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("notavailable", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("spoko_spoko_na_chillku", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Repcakos", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("3dnow", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("ToChybaJakisZart", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("vrraaaz", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Skura_tak_przezU", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Lutekcjusz", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("ile-prawdy-jest-w-jednym-slowie", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("kutmen2", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("michal_misiek", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("kartofel322", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("ten_co_uciekl", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("NaczelnyHejterWykopu", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("wykopowa_ona", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("s-o-s", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Samowski", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("CynicznySkurczybyk", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("qmox", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("pawel_je", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("PrawdziwyRealista", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("beniu89", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("cranberry250", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("bimbadil", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("PanKajak", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Qontrol", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("RobaUrs", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("PAST", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Szychasekk", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Szatanski_werset", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("matess", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("SSKW", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("silver1", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("CioseK", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("wojt4ss", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Ponta", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("kspr", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("korporacion", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("ogrod87", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("Tomek3322", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("dgjkasgr8yl3q", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("dese", { "label": "🤬 #wykopaka", "url": "https://wykopaka.pl/wall-of-shame" }); trollsMap.set("ChwilowaPomaranczka", { "label": "Wykopowy Troll" }); localStorageUserLabels.setItem('mapaTrolli', Object.fromEntries(trollsMap)).then(() => { }); // get from localstorage localStorageUserLabels.getItem('mapaTrolli').then(val => { mapaTrolli = new Map(Object.entries(val)); }) } } // wykop_xs_banned.user.js - START - 1 setSettingsValueFromCSSProperty("infoboxUserBannedInfoOnProfilePage"); // wykop_xs_banned.user.js - END - 1 setSettingsValueFromCSSProperty("infoboxEnable", false); if (settings.infoboxEnable) { IntersectionObserverEnabled = true; setSettingsValueFromCSSProperty("infoboxUserBannedEmoji"); setSettingsValueFromCSSProperty("infoboxUserBannedInfo"); setSettingsValueFromCSSProperty("infoboxUserMemberSince"); setSettingsValueFromCSSProperty("infoboxUserMemberSinceYear"); setSettingsValueFromCSSProperty("infoboxUserSummaryFollowers"); setSettingsValueFromCSSProperty("infoboxUserSummaryActivity"); } setSettingsValueFromCSSProperty("tabChangeEnabled", false); if (settings.tabChangeEnabled) { setSettingsValueFromCSSProperty("tabChangeOnlyOnHiddenState", false); setSettingsValueFromCSSProperty("tabChangeFaviconEnabled", false); if (settings.tabChangeFaviconEnabled) { setSettingsValueFromCSSProperty("tabChangeFaviconSelect", "wykop", true); } setSettingsValueFromCSSProperty("tabChangeTitleEnabled", false); if (settings.tabChangeTitleEnabled) { setSettingsValueFromCSSProperty("tabChangeTitleShowNotificationsEnabled", false); setSettingsValueFromCSSProperty("tabChangeTitleShowNotificationsCountPM", false); setSettingsValueFromCSSProperty("tabChangeTitleShowNotificationsCountEntries", false); setSettingsValueFromCSSProperty("tabChangeTitleShowNotificationsCountSeparated", false); setSettingsValueFromCSSProperty("tabChangeTitleShowNotificationsCountTagsNewLink", false); setSettingsValueFromCSSProperty("tabChangeTitleShowNotificationsCountTagsNewEntry", false); setSettingsValueFromCSSProperty("tabChangeTitlePrefix", false); setSettingsValueFromCSSProperty("tabChangeTitleSelect", "domyslny", true); setSettingsValueFromCSSProperty("tabChangeTitleCustom", "Wykop X", true); setSettingsValueFromCSSProperty("tabChangeTitleSuffix", "domyslny", true); } } // DOMYŚLNIE WYŁĄCZONE BEZ WYKOP X STYLE setSettingsValueFromCSSProperty("votePlusMinusOnHover", false); setSettingsValueFromCSSProperty("observedTagsInRightSidebarSortAlphabetically", false); setSettingsValueFromCSSProperty("topNavHomeButtonClickRefreshOrRedirect", false); setSettingsValueFromCSSProperty("topNavMicroblogButtonClickRefreshOrRedirect", false); setSettingsValueFromCSSProperty("quickLinksEnable", false); // DODATKOWE PRZYCISKI NA GORNEJ BELCE setSettingsValueFromCSSProperty("topNavNightSwitchButton", true); setSettingsValueFromCSSProperty("topNavMyWykopButton", false); setSettingsValueFromCSSProperty("topNavMicroblogButton", false); setSettingsValueFromCSSProperty("topNavMessagesButton", false); setSettingsValueFromCSSProperty("topNavProfileButton", false); setSettingsValueFromCSSProperty("topNavNotificationsButton", false); // DODATKOWE PRZYCISKI NA BELCE MOBILNEJ setSettingsValueFromCSSProperty("mobileNavBarHide", false); if (settings.mobileNavBarHide == false) { setSettingsValueFromCSSProperty("mobileNavBarMyWykopButton", false); setSettingsValueFromCSSProperty("mobileNavBarMessagesButton", false); setSettingsValueFromCSSProperty("mobileNavBarProfileButton", false); setSettingsValueFromCSSProperty("mobileNavBarNotificationsButton", false); } // default numbers settings.observedTagsInRightSidebarUpdateInterval = 12; if (wykopxSettings.getPropertyValue("--observedTagsInRightSidebarUpdateInterval")) settings.observedTagsInRightSidebarUpdateInterval = parseFloat(wykopxSettings.getPropertyValue("--observedTagsInRightSidebarUpdateInterval")); // number // variables from Wykop X Style // TODO stare Wykop X Style "true" settings.wxsDownloadImageButton = (wykopxSettings.getPropertyValue("--wxsDownloadImageButton").trim() == `"true"`); // boolean, default off settings.topNavHamburgerHoverMinimize = (wykopxSettings.getPropertyValue("--topNavHamburgerHoverMinimize").trim() == `"true"`); // boolean settings.tagHeaderEditable = (wykopxSettings.getPropertyValue("--tagHeaderEditable").trim() == `"true"`); // boolean settings.linksAnalyzerEnable = (wykopxSettings.getPropertyValue("--linksAnalyzerEnable").trim() == `"true"`); // boolean settings.fixCaseSensitiveTagsRedirection = (wykopxSettings.getPropertyValue("--fixCaseSensitiveTagsRedirection").trim() == `"true"`); // boolean settings.categoryRedirectToMicroblogButtonEnable = (wykopxSettings.getPropertyValue("--categoryRedirectToMicroblogButtonEnable").trim() == `"true"`); // boolean settings.homepagePinnedEntriesHideBelowLimit = parseFloat(wykopxSettings.getPropertyValue("--homepagePinnedEntriesHideBelowLimit")); // number // boolean — domyslnie WŁĄCZONE bez Wykop X Style setSettingsValueFromCSSProperty("myWykopInTopNavJS"); setSettingsValueFromCSSProperty("favoritesInTopNavJS"); setSettingsValueFromCSSProperty("addNewEntryInTopNavJS"); setSettingsValueFromCSSProperty("disableNewLinkEditorPastedTextLimit"); // strings setSettingsValueFromCSSProperty("linksAnalyzerSortBy", "domyslnie", true); setSettingsValueFromCSSProperty("topNavLogoClick", "glowna", true); setSettingsValueFromCSSProperty("editorSendHotkey", "ctrl_enter", true); // "domyslnie", "enter", "ctrl_enter", "ctrl_s" if (settings.editorSendHotkey != "domyslnie") setSettingsValueFromCSSProperty("editorSendHotkeyShowOnSendButton"); settings.categoryRedirectToMicroblogButtonFilter = wykopxSettings.getPropertyValue("--categoryRedirectToMicroblogButtonFilter").replaceAll("_", "/").replaceAll(" ", ""); /* mouseClickOpensImageInNewTab 💻❎🐁 Otwórz obrazek w nowej karcie kliknięciem "nie_otwieraj"-domyslnie "lewy_przycisk_myszy""srodkowy_przycisk_myszy" "prawy_przycisk_myszy" */ settings.mouseClickOpensImageInNewTab = wykopxSettings.getPropertyValue("--mouseClickOpensImageInNewTab") ? wykopxSettings.getPropertyValue("--mouseClickOpensImageInNewTab").replaceAll(" ", "") : "srodkowy_przycisk_myszy"; let localStorageObserved = localforage.createInstance({ driver: localforage.LOCALSTORAGE, name: "wykopx", storeName: "observed", }); const topNavHeaderRightElement = document.querySelector('header.header > .right > nav > ul'); if (dev) consoleX("Settings: ", 1); if (dev) console.log(settings); // przenoszenie na tagi: wykop.pl/#heheszki // i na profile użytkownikow: wykop.pl/@m__b // wyszukiwanie wpisów danej osoby w konkretnym tagu wykop.pl/@m__b/#internet albo wykop.pl/#internet/@m__b/ let currentPageURL = undefined; let pageType = ""; let pageSubtype = ""; let pageObjects = []; // ["znaleziska", "wpisy", "komentarze"] let currentPageTotalVotesUpCount = 0; let hash = new URL(document.URL).hash; let pathname = new URL(document.URL).pathname; let pathnameArray = pathname.split("/"); // ['', 'wpis', '74111643', 'dobranoc-panstwu'] ['', 'wykopalisko'] ['', 'link', '7303053', 'braun-gasi-chanuke-gasnica-mem'] isURLChanged(); newPageURL(); // setInterval(() => // { // if (isURLChanged()) newPageURL() // }, 5000); function isURLChanged() { const newURL = window.location.href; consoleX(`isURLChanged() -> ${newURL}`, 1); //const newURL2 = document.URL; if (newURL != currentPageURL) { consoleX(`isURLChanged() -> URL Changed from ${currentPageURL} to ${newURL}`) currentPageURL = newURL; return true; } else return false; } function newPageURL() { consoleX("newPageURL()", 1); hash = new URL(document.URL).hash; pathname = new URL(document.URL).pathname; pathnameArray = pathname.split("/"); consoleX(`newPageURL() -> document.URL: ${document.URL} hash: ${hash}, pathname: ${pathname}, pathnameArray: `, 1) if (dev) console.log(pathnameArray) currentPageTotalVotesUpCount = 0; if (pathnameArray[1] == "" || pathnameArray[1] == "aktywne" || pathnameArray[1] == "najnowsze" || pathnameArray[1] == "strona") { pageType = "glowna"; pageSubtype = "glowna"; pageObjects = ["wpisy", "znaleziska"]; if (pathnameArray[2] && pathnameArray[2] != "strona") { pageSubtype = pathnameArray[2]; // "aktywne", "najnowsze" } } else if (pathnameArray[1] == "wykopalisko") { pageType = "wykopalisko"; pageSubtype = "wykopalisko"; pageObjects = ["znaleziska"]; if (pathnameArray[2] && pathnameArray[2] != "strona") { pageSubtype = pathnameArray[2]; // "najnowszego", "aktywne", "wykopywane", "komentowane" } } else if (pathnameArray[1] == "ludzie") // profil jakiegoś użytkownika wykop.pl/ludzie/NadiaFrance { pageType = "profil"; pageSubtype = "profil"; pageObjects = ["znaleziska", "wpisy", "komentarze"]; } else if (pathnameArray[1] == "link") { pageType = "znalezisko"; pageSubtype = "znalezisko"; pageObjects = ["komentarze"]; } else if (pathnameArray[1] == "wpis") { pageType = "wpis"; pageSubtype = "wpis"; pageObjects = ["komentarze"]; } else if (pathnameArray[1] == "mikroblog") { pageType = "mikroblog"; pageSubtype = "mikroblog"; pageObjects = ["wpisy", "komentarze"]; } else if (pathnameArray[1] == "tag") { pageType = "tag"; pageSubtype = pathnameArray[2]; // nazwatagu pageObjects = ["znaleziska", "wpisy", "komentarze"]; } consoleX(`Typ strony: ${pageType} ${pageType != pageSubtype ? pageSubtype : ""}`, 1) // if(dev) console.log(`pageObjects:`, pageObjects) } function removeAllDataWXSAttributes() { consoleX(`removeAllDataWXSAttributes()`, 1); document.querySelectorAll(`section[data-wxs_username]`).forEach((el) => { removeWXSAttributes(el) }); } function removeWXSAttributes(sectionObjectElement) { if (dev) console.log(`removeWXSAttributes() from id: ${sectionObjectElement.__vue__.item.id}`, + sectionObjectElement); sectionObjectElement.removeAttribute('style'); // custom css properties removed Object.keys(sectionObjectElement.dataset).forEach(dataKey => { if (dataKey.startsWith('wxs_')) { delete sectionObjectElement.dataset[dataKey]; } }); } (async () => { let at, tag; if (settings.fixCaseSensitiveTagsRedirection) { /* fixing case sensitive tags https://github.com/wykopx/WykopX/issues/21 */ if (pathnameArray[1] == "tag" && /[A-Z]/.test(pathnameArray[2])) { consoleX(`Błędny tag "${pathnameArray[2]}"`); pathnameArray[2] = pathnameArray[2].toLowerCase(); let newPathname = "https://wykop.pl" + pathnameArray.join("/"); consoleX(`Otwieram poprawny adres: ${newPathname}`); window.location.replace(newPathname); } } let excludedPaths = ["szukaj", "wpis", "link", "artykul", "k", "wykopalisko", "mikroblog", "osberwowane", "hity", "powiadomienia", "ustawienia"]; // # przekierowanie URL http://wykop.pl/#heheszki albo http://wykop.pl/#wykop/@m__b ale nie https://wykop.pl/wpis/213123/tresc#123456 if (!excludedPaths.includes(pathnameArray[1]) && hash.length > 0) { let tagWithHash = hash.split("/")[0]; let tagWithoutHash = tagWithHash.slice(1); let tagNumber = Number.parseInt(tagWithoutHash); if (tagWithoutHash.length > 1 && (tagNumber == "NaN" || tagWithoutHash.length < 9) && tagWithoutHash != "dodaj") { if ((tag = getTagFromUrl(tagWithHash))) { } if ((at = getUserFromUrl(hash))) { } } } // @ przekierowanie URL http://wykop.pl/@NadiaFrance albo http://wykop.pl/#wykop/@m__b if (!excludedPaths.includes(pathnameArray[1]) && pathname.length > 2) { if (at || (at = getUserFromUrl(pathname))) { } } if (at || tag) smartRedirectBasedOnUserAndTag(at, tag); })(); function redirectToSearchUserEntriesInTag(user, tag) { window.location.replace(`https://wykop.pl/szukaj/wszystkie/@${user}?tags=${tag}`); } function redirectToTag(tag) { window.location.replace(`https://go.wykopx.pl/#${tag}`); } function redirectToUser(user) { window.location.replace(`https://wykopx.pl/@${user}`); } function smartRedirectBasedOnUserAndTag(user, tag) { consoleX(`smartRedirectBasedOnUserAndTag(user @${user}, tag #${tag})`, 1); if (tag && user) redirectToSearchUserEntriesInTag(user, tag) else if (tag) redirectToTag(tag) else if (user) redirectToUser(user) } // returns 'tag' from /#tag in string function getTagFromUrl(url, splitSeparator = "/", tagSymbol = "#") { consoleX(`getTagFromUrl(url: ${url}, splitSeparator: #${splitSeparator}), tagSymbol: ${tagSymbol}`, 1); let tagArray = url.split(splitSeparator); for (let element of tagArray) { if (element.charAt(0) == "#" || element.charAt(0) == tagSymbol) { element = element.slice(1); return element; } else if (tagSymbol == "" && (/^[0-9a-zA-Z]/i.test(element.charAt(0)))) { return element; } else { continue; } } return false; } function getUserFromUrl(url, splitSeparator = "/", userSymbol = "@") { consoleX(`getUserFromUrl(url: ${url}, splitSeparator: #${splitSeparator}), userSymbol: ${userSymbol}`, 1); let atArray = url.split(splitSeparator); for (let element of atArray) { if (element.charAt(0) == userSymbol) { return element.slice(1); } } return false; } let consoleData = { mirkoukrywacz_hidden: { count: 0, text: "Ukrytych", title: "Mirkoukrywacz ukryte", }, mirkoukrywacz_minimized: { count: 0, text: "Zwiniętych", title: "Mirkoukrywacz zwinął", }, annoyances: { count: 0, text: "Uciążliwych obiektów", title: "Annoyances title", ads: { count: 0, text: "Usuniętych reklam", }, iframe: { count: 0, text: "ads iframes", title: "Annoyances iframes with ads", }, script: { count: 0, text: "ads scripts", title: "Annoyances scripts", }, other: { count: 0, text: "inne", title: "Annoyances other", }, div: { count: 0, text: "inne", title: "Annoyances div", }, }, notatkowator: { count: 0, text: "Dodanych Notatek", title: "Notatki do użytkowników", }, } function buildConsole(jNodeHeaderStreamTop = null) { if (!dev) return; consoleX("buildConsole()", 1) let headerStreamTopElement; if (!jNodeHeaderStreamTop) { headerStreamTopElement = document.getElementById("main.main > section > div.content section.stream > header.stream-top"); } else { headerStreamTopElement = jNodeHeaderStreamTop; } if (headerStreamTopElement) { //return; const wxs_console = document.getElementById("wxs_console"); if (!wxs_console) { const wxs_console_container = document.createElement("aside"); //