NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Minds Limitlezz // @version 1.12.1 // @namespace https://github.com/barefootstache/minds-limitlezz // @icon https://raw.githubusercontent.com/barefootstache/minds-limitlezz/main/assets/svg/lightning-bolt.svg // @description Upgrade your Minds experience // @include https://www.minds.com/* // @copyright 2022-2024, barefootstache (https://openuserjs.org/users/barefootstache) // @license MIT // @updateURL https://openuserjs.org/meta/barefootstache/Minds_Limitlezz.meta.js // @downloadURL https://openuserjs.org/install/barefootstache/Minds_Limitlezz.user.js // ==/UserScript== (function () { "use strict"; const mindsBlue = "#1b85d6"; function addCSS(appendCss = "") { const ID = "MINDS_LIMITLEZZ"; // get or create style element const style = document.getElementById(ID) ? document.getElementById(ID) : document.createElement("style"); // add CSS styles const mainCss = ` /* Removes max width */ .m-pageLayout__container { max-width: revert; padding: 0 20px; } /* Removes super mind button */ m-supermind__button, m-activity__toolbar .m-activityToolbar__largeActions, m-activity__boostbutton { display: none !important; } /* Newsfeed page */ m-feednotice--plusupgrade, m-feednotice--invitefriends, m-feednotice--boostlatestpost, m-feednotice--enablepushnotifications, m-newsfeed--boost-rotator, m-featured-content, .m-newsfeed--boost-sidebar, .minds-limitlezz-widget-hide, .m-groupGrid__right.m-pageLayout__pane--right, .m-groupsMemberships__sidebar { display: none; } .m-topbar__middleColumn { width: calc(100% - 50px); } m-channelrecommendation, m-feednotice__switch { display: none !important; } .m-newsfeed--feed.m-pageLayout__pane--main, .m-pageLayout__pane--main.m-pageLayout__pane--main { width: 100%; max-width: 100%; } m-newsfeed m-activity__content .m-activityContent__media--image.m-activityContent__media, m-newsfeed m-activity__content .m-activityContent__media--video.m-activityContent__media { display: flex; } m-newsfeed m-activity__content .m-activityContent__media--image.m-activityContent__media a, m-newsfeed m-activity__content .m-activityContent__media--video.m-activityContent__media m-videoplayer--scrollaware { margin: auto; } /* Keeps media only */ /* <user_name>?layout=grid */ m-feedgrid m-activity__minimalmetrics, m-feedgrid m-activity__ownerblock, m-feedgrid .m-activityContent__mediaDescription, m-feedgrid .m-activityContent__message, m-feedgrid .m-activity__remindDeletedNotice, m-feedgrid .meta.m-rich-embed-has-thumbnail { display: none; } /* Fix margin-bottom for adding Minds Limitlezz Widget */ m-sidebarmore__trigger { margin-bottom:0 !important; } /* Minds Limitlezz Widget */ #minds-limitlezz-widget { height: 500px; } #minds-limitlezz-widget-panel { padding: 0 18px; display: block; background-color: black; overflow: hidden; margin-top: 10px; } #minds-limitlezz-widget-panel span { color: #b9bbc0; } #minds-limitlezz-widget-button { text-decoration: none; cursor: pointer; } .minds-limitlezz-widget-section .marr4 { margin-right: 4px; } .minds-limitlezz-widget-section .cursor-pointer:hover { cursor: pointer; color: #fee43b; } .minds-limitlezz-widget-section .button { background-color: #333; padding: 4px; cursor: pointer; border: 1px solid #555; width: 120px; text-align: center; margin: 4px; } .minds-limitlezz-widget-section .button.green, .minds-limitlezz-widget-section .button.red-view { display: block; } .minds-limitlezz-widget-section .button.green:hover { color: green; border-color: green; } .minds-limitlezz-widget-section .button.red { display: none; } .minds-limitlezz-widget-section .button.red:hover, .minds-limitlezz-widget-section .button.red-view:hover { color: red; border-color: red; } /* --- Modal --- */ .plyr video { max-height: 750px; } /* --- Channel Page --- */ m-channel__feed .m-pageLayout__pane--main { max-width: revert !important; } m-channel__feed .m-channelFeed__sidebar.m-pageLayout__pane--right { display: none; } /* --- Groups Page --- */ m-group__feed .m-group__info, .m-group__feed { max-width: revert; } /* Groups Page Info Section */ m-group__feed .m-groupInfo__name.m-group-info-name > div { display: flex; justify-content: space-between; } m-group__feed .m-groupInfo__name.m-group-info-name h1 { font-size: 26px; } /* Groups Page Content Section */ m-group__feed m-activity__content { width: revert !important; margin: auto; } m-group__feed m-activity__content .m-activityContent__media--image.m-activityContent__media, m-group__feed m-activity__content .m-activityContent__media--video.m-activityContent__media { display: flex; } m-group__feed m-activity__content .m-activityContent__media--image.m-activityContent__media a, m-group__feed m-activity__content .m-activityContent__media--video.m-activityContent__media m-videoplayer--scrollaware { margin: auto; } m-group__feed m-activity__content .m-activityContent__media--image.m-activityContent__media img { height: unset !important; width: unset !important; } m-group__feed .m-activityContent__media--video .m-videoPlayer__placeholder { padding-top: 500px !important; } m-group__feed m-activity__content m-videoplayer--scrollaware { height: revert !important; width: revert !important; min-height: 500px; max-height: 750px; min-width: 300px; } m-group__feed m-activity__content .plyr video { max-height: 650px; } /* --- Explore Page --- */ .m-discovery__sidebar { display: none; } /* --- Screen Size: 480px - 1040px --- */ @media screen and (min-width: 480px) and (max-width: 1040px) { .m-pageLayout__container { margin: 0; width: revert; } } /* --- Screen Size: < 1220px --- */ @media screen and (max-width: 1220px) { .m-pageLayout__pane--left { min-width: 170px; width: 170px; } .m-sidebarNavigation { width: 170px !important; } .less-than-1220 { display: none; } #minds-limitlezz-widget-panel { padding: 0 12px; } } `; style.innerHTML = mainCss + appendCss; style.id = ID; // append the style to the DOM in <head> section document.head.appendChild(style); console.debug("MindsLimitlezz: add CSS"); } function addWidget() { const li = document.createElement("li"); // creates minds-limitlezz-widget li.id = "minds-limitlezz-widget"; li.className = "m-sidebarNavigation__item m-sidebarNavigation__item--user ng-star-inserted"; li.innerHTML = ` <a id="minds-limitlezz-widget-button" data-ref="sidenav-channel" onmouseover="this.style.color='#fee43b'" onmouseout="this.style.color='#b8c1ca'" > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="24" height="24" viewBox="0 0 24 24"><path d="M11 15H6L13 1V9H18L11 23V15Z" fill="#fee43b"/></svg> <span class="m-sidebarNavigationItem__text m-legible" style="font-weight: 700;font-size: 19px;line-height: 24px;" > Limitlezz </span> </a> <div id="minds-limitlezz-widget-panel" style="display:block"> <div class="minds-limitlezz-widget-section"> <span class="marr4">Auto Scroller</span> </br> <input id="auto-distance" class="marr4" type="number" style="width: 40px" value="25"> <span class="marr4">px</span> <input id="auto-time" class="marr4" type="number" style="width: 40px" value="100"> <span>ms</span> </br> <a id="auto-start" class="marr4 button green" title="Starts the Auto Scroller.">START</a> <a id="auto-stop" class="marr4 button red" title="stops the Auto Scroller.">STOP</a> <a id="activate-hotkeys" class="cursor-pointer"><input id="activate-hotkeys-checkbox" type="checkbox"> <span class="less-than-1220">Activate </span><span>Hotkeys</span></a> </div> <div class="minds-limitlezz-widget-section" style="border-top: 1px #fee43b solid"> <span class="marr4">Hide Content</span> </br> <a id="hide-reminded" class="marr4 button red-view" title="Hides posts that were reminded.">HIDE REMINDED</a> <a id="hide-embedded" class="marr4 button red-view" title="Hides posts that have an embed website.">HIDE EMBEDDED</a> <a id="hide-media-free" class="marr4 button red-view" title="Hides posts that do not contain either an image or video.">HIDE MEDIA FREE</a> <!-- <a id="hide-outdated" class="marr4 button red-view">HIDE OUTDATED</a> --> <a id="hide-boosted" class="marr4 button red-view" title="Hides posts that were boosted.">HIDE BOOSTED</a> <a id="hide-fediverse" class="marr4 button red-view" title="Hides posts from the fediverse.">HIDE FEDIVERSE</a> <a id="activate-gridview" class="cursor-pointer"><input id="activate-gridview-checkbox" type="checkbox"> <span class="less-than-1220">Activate </span><span>Feed Grid View</span></a> </div> </div> `; document .getElementsByClassName("m-sidebarNavigation__list")[0] .appendChild(li); const widget = document.getElementById("minds-limitlezz-widget-button"); widget.addEventListener("click", () => { const panel = widget.nextElementSibling; if (panel.style.display === "block") { panel.style.display = "none"; } else { panel.style.display = "block"; } }); addAutoScroller(); addContentHider(); console.debug("MindsLimitlezz: add widget"); } function switchGridView(isActive) { let timeInMs, distanceInPx; if (isActive) { addGridViewCSS(); timeInMs = 2000; distanceInPx = 750; } else { removeGridView(); timeInMs = 100; distanceInPx = 25; } return { timeInMs, distanceInPx }; } function addAutoScroller() { const autoDistance = document.getElementById("auto-distance"); const autoTime = document.getElementById("auto-time"); const autoStart = document.getElementById("auto-start"); const autoStop = document.getElementById("auto-stop"); const activateHotkeys = document.getElementById("activate-hotkeys"); const activateHotkeysCheckbox = document.getElementById("activate-hotkeys-checkbox"); const activateGridView = document.getElementById("activate-gridview"); const activateGridViewCheckbox = document.getElementById("activate-gridview-checkbox"); let stopAuto, timeInMs = 100, distanceInPx = 25, state = 0; let checkedActivateHotkeys = false, checkedActivateGridView = false; const start = () => { //document.body.scrollHeight scrollTo stopAuto = setInterval(() => window.scrollBy(0, distanceInPx), timeInMs); autoStart.style.display = "none"; autoStop.style.display = "block"; state = 1; }; const stop = () => { clearInterval(stopAuto); autoStop.style.display = "none"; autoStart.style.display = "block"; state = 0; }; autoDistance.addEventListener("change", (el) => { distanceInPx = el.target.value; }); autoTime.addEventListener("change", (el) => { timeInMs = el.target.value; }); activateHotkeysCheckbox.addEventListener("change", (el) => { checkedActivateHotkeys = el.target.checked; }); activateHotkeys.addEventListener("click", () => { checkedActivateHotkeys = !checkedActivateHotkeys; activateHotkeysCheckbox.checked = checkedActivateHotkeys; }); activateGridViewCheckbox.addEventListener("change", (el) => { checkedActivateGridView = el.target.checked; const scrollerObj = switchGridView(checkedActivateGridView); timeInMs = scrollerObj.timeInMs; autoTime.value = timeInMs; distanceInPx = scrollerObj.distanceInPx; autoDistance.value = distanceInPx; }); activateGridView.addEventListener("click", () => { checkedActivateGridView = !checkedActivateGridView; activateGridViewCheckbox.checked = checkedActivateGridView; const scrollerObj = switchGridView(checkedActivateGridView); timeInMs = scrollerObj.timeInMs; autoTime.value = timeInMs; distanceInPx = scrollerObj.distanceInPx; autoDistance.value = distanceInPx; }); autoStart.addEventListener("click", () => { start(); }); autoStop.addEventListener("click", () => { stop(); }); window.onkeydown = (e) => { if (checkedActivateHotkeys) { if (e.keyCode == 32) { if (state === 1) { stop(); } else if (state === 0) { start(); } } return !(e.keyCode == 32); } }; } function addContentHider() { const hideReminded = document.getElementById("hide-reminded"); const hideEmbedded = document.getElementById("hide-embedded"); const hideMediaFree = document.getElementById("hide-media-free"); // const hideOutdated = document.getElementById("hide-outdated"); const hideBoosted = document.getElementById("hide-boosted"); const hideFediverse = document.getElementById("hide-fediverse"); hideReminded.addEventListener("click", () => { const items = document.getElementsByTagName("m-newsfeed__entity"); for (let i = 0; i < items.length; i++) { if ( (items[i].innerHTML.includes("Reminded") || items[i].innerHTML.includes("remindIcon")) && items[i].style.display != "none" ) { items[i].style.display = "none"; } } }); hideEmbedded.addEventListener("click", () => { const items = document.getElementsByTagName("m-newsfeed__entity"); for (let i = 0; i < items.length; i++) { if ( items[i].innerHTML.includes("minds-rich-embed") && items[i].style.display != "none" ) { items[i].style.display = "none"; } } }); hideMediaFree.addEventListener("click", () => { const items = document.getElementsByTagName("m-newsfeed__entity"); for (let i = 0; i < items.length; i++) { if ( !items[i].innerHTML.includes("m-activityContent__media--image") && !items[i].innerHTML.includes("m-activityContent__media--video") && items[i].style.display != "none" ) { items[i].style.display = "none"; } } }); // hideOutdated.addEventListener("click", () => { // const items = document.getElementsByTagName("m-publishercard"); // for (let i = 0; i < items.length; i++) { // if ( // !items[i].innerHTML.includes("m-publisherCardAvatar--hasMarker") && // items[i].style.display != "none" // ) { // items[i].style.display = "none"; // } // } // }); hideBoosted.addEventListener("click", () => { const items = document.getElementsByTagName("m-newsfeed__entity"); for (let i = 0; i < items.length; i++) { if ( (items[i].innerHTML.includes("m-boostedflag") || items[i].innerHTML.includes("m-activityFlag--boost")) && items[i].style.display != "none" ) { items[i].style.display = "none"; } } }); hideFediverse.addEventListener("click", () => { const regex = /@[^@]+@[^@]+/; const items = document.getElementsByTagName("m-newsfeed__entity"); for (let i = 0; i < items.length; i++) { const author = items[i].querySelectorAll('.m-activityOwnerBlock__nameAndBadge a.m-activityOwnerBlock__secondaryName span')[0].innerText; if (regex.test(author) && items[i].style.display != "none") { items[i].style.display = "none"; } } }); } function addGridViewCSS() { const gridviewCSS = ` m-tophighlights, m-feednotice__outlet { display: none; } m-group__feed .m-groupFeedList__entities, m-newsfeed .minds-list, m-channel__feed .m-channelFeedList__entities, m-newsfeed__gql .m-newsfeed__list, m-discovery .m-discoveryFeeds__feed, m-groupsmemberships div.ng-star-inserted { display: grid; grid-template-columns: 33% 33% 33%; } m-groupsmemberships div.ng-star-inserted { column-gap: 15px; } m-group__feed m-activity.m-border:nth-child(1) > m-activity:nth-child(1) > div:nth-child(1) > div:nth-child(1) > m-hovercard:nth-child(1) > div:nth-child(1), m-newsfeed m-activity.m-border:nth-child(1) > m-activity:nth-child(1) > div:nth-child(1) > div:nth-child(1) > m-hovercard:nth-child(1) > div:nth-child(1), m-channel__feed m-activity.m-border:nth-child(1) > m-activity:nth-child(1) > div:nth-child(1) > div:nth-child(1) > m-hovercard:nth-child(1) > div:nth-child(1) { display: none; } m-group__feed m-group-profile__feed.ng-star-inserted, m-newsfeed m-group-profile__feed.ng-star-inserted, m-channel__feed m-group-profile__feed.ng-star-inserted { width: 100%; } m-group__feed .m-group__feed, m-newsfeed .m-group__feed, m-channel__feed .m-group__feed { max-width: revert; } m-group__feed .m-group__sidebar, m-newsfeed .m-mindsList__tools, m-channel__feed .m-mindsList__tools { display: none; } /* --- Group Memberships --- */ m-publishercard { max-height: 200px; max-width: 420px; } m-publishercard .m-publisherCard { padding: 16px !important; } m-publishercard .m-publisherCard .m-publisherCard__inner { width: calc(420px - 32px); } m-publishercard .m-publisherCardOwnerRow__owner { width: revert !important; } m-publishercard .m-publisherCard__desc { display: none !important; } /* Content Remind */ m-newsfeed m-activity__flag, m-channel__feed m-activity__flag { padding-bottom: revert !important; height: 2px; background-color: purple; } m-newsfeed m-activity__flag .m-activityFlag--remind, m-channel__feed m-activity__flag .m-activityFlag--remind { display: none; } /* Content Element */ m-group__feed m-activity .m-activityOwnerBlock__groupName.m-activityOwnerBlock__truncate.ng-star-inserted, m-newsfeed m-activity .m-activityOwnerBlock__groupName.m-activityOwnerBlock__truncate.ng-star-inserted, m-channel__feed m-activity .m-activityOwnerBlock__groupName.m-activityOwnerBlock__truncate.ng-star-inserted { display: none; } m-group__feed m-activity .m-activityContentText__innerWrapper, m-newsfeed m-activity .m-activityContentText__innerWrapper, m-channel__feed m-activity .m-activityContentText__innerWrapper { height: 2px; background-color: aqua; padding: 0 !important; } m-group__feed m-activity .m-activityContentText__body, m-group__feed m-activity .m-activityContentText__title, m-newsfeed m-activity .m-activityContentText__body, m-newsfeed m-activity .m-activityContentText__title, m-channel__feed m-activity .m-activityContentText__body, m-channel__feed m-activity .m-activityContentText__title { display: none; } m-group__feed m-activity .m-activityContent__media--image img, m-newsfeed m-activity .m-activityContent__media--image img, m-channel__feed m-activity .m-activityContent__media--image img { width: 100% !important; max-height: 650px !important; height: unset !important; } m-group__feed m-activity .m-activityContent__media, m-group__feed m-activity .m-activityContent__media--richEmbed, m-group__feed m-activity .m-activityContent__quote, m-group__feed m-activity .m-activityContent__quote m-activity__quote, m-newsfeed m-activity .m-activityContent__media, m-newsfeed m-activity .m-activityContent__media--richEmbed, m-newsfeed m-activity .m-activityContent__quote, m-newsfeed m-activity .m-activityContent__quote m-activity__quote, m-channel__feed m-activity .m-activityContent__media, m-channel__feed m-activity .m-activityContent__media--richEmbed, m-channel__feed m-activity .m-activityContent__quote, m-channel__feed m-activity .m-activityContent__quote m-activity__quote { max-height: 650px !important; height: 650px; align-content: center; } m-activity__quote m-activity__content .m-activityContent__media { max-height: calc(650px - 58px - 1.25rem) !important; } m-group__feed m-activity m-videoPlayer, m-videoPlayer--scrollaware, m-newsfeed m-activity m-videoPlayer, m-videoPlayer--scrollaware, m-channel__feed m-activity m-videoPlayer, m-videoPlayer--scrollaware { width: 100% !important; max-height: 650px !important; min-width: 300px; } m-group__feed m-activity minds-button-thumbs-down a, m-group__feed m-activity minds-button-comment a, m-group__feed m-activity m-supermind__button m-button, m-newsfeed m-activity minds-button-thumbs-down a, m-newsfeed m-activity minds-button-comment a, m-newsfeed m-activity m-supermind__button m-button, m-channel__feed m-activity minds-button-thumbs-down a, m-channel__feed m-activity minds-button-comment a, m-channel__feed m-activity m-supermind__button m-button { display: none; } m-group__feed m-activity minds-button-thumbs-down, m-group__feed m-activity minds-button-comment, m-group__feed m-activity m-supermind__button, m-newsfeed m-activity minds-button-thumbs-down, m-newsfeed m-activity minds-button-comment, m-newsfeed m-activity m-supermind__button, m-channel__feed m-activity minds-button-thumbs-down, m-channel__feed m-activity minds-button-comment, m-channel__feed m-activity m-supermind__button { max-width: 0px; } m-group__feed m-activity .m-activityTop__avatarColumn.m-activity__avatar.ng-star-inserted, m-newsfeed m-activity .m-activityTop__avatarColumn.m-activity__avatar.ng-star-inserted, m-channel__feed m-activity .m-activityTop__avatarColumn.m-activity__avatar.ng-star-inserted { display: none; } m-group__feed m-activity m-comments__entityoutletv2, m-newsfeed m-activity m-comments__entityoutletv2, m-channel__feed m-activity m-comments__entityoutletv2 { display: none !important; } m-group__feed m-activity m-activitycontent__multiimage, m-newsfeed m-activity m-activitycontent__multiimage, m-channel__feed m-activity m-activitycontent__multiimage { width: 367px; } m-group__feed m-activity m-activitycontent__multiimage > div, m-newsfeed m-activity m-activitycontent__multiimage > div, m-channel__feed m-activity m-activitycontent__multiimage > div { padding-bottom: 650px !important; } m-group__feed m-activity m-activitycontent__multiimage > div:nth-child(1), m-newsfeed m-activity m-activitycontent__multiimage > div:nth-child(1), m-channel__feed m-activity m-activitycontent__multiimage > div:nth-child(1) { padding-bottom: 650px; } /* Embeds */ m-group__feed m-activity minds-rich-embed a.thumbnail, m-newsfeed m-activity minds-rich-embed a.thumbnail, m-channel__feed m-activity minds-rich-embed a.thumbnail { height: 650px; } m-group__feed m-activity minds-rich-embed a.thumbnail img, m-newsfeed m-activity minds-rich-embed a.thumbnail img, m-channel__feed m-activity minds-rich-embed a.thumbnail img { width: 100% !important; height: 100% !important; max-height: revert !important; } } m-group__feed m-activity minds-rich-embed .m-activityContent__media--richEmbed .meta, m-group__feed m-activity minds-rich-embed .m-rich-embed-src a.meta, m-group__feed m-activity minds-rich-embed.m-richEmbed--activity--row .m-activityContent__media--richEmbed .meta, m-group__feed m-activity minds-rich-embed.m-richEmbed--activity--row .m-rich-embed-src a.meta, m-newsfeed m-activity minds-rich-embed .m-activityContent__media--richEmbed .meta, m-newsfeed m-activity minds-rich-embed .m-rich-embed-src a.meta, m-newsfeed m-activity minds-rich-embed.m-richEmbed--activity--row .m-activityContent__media--richEmbed .meta, m-newsfeed m-activity minds-rich-embed.m-richEmbed--activity--row .m-rich-embed-src a.meta, m-channel__feed m-activity minds-rich-embed .m-activityContent__media--richEmbed .meta, m-channel__feed m-activity minds-rich-embed .m-rich-embed-src a.meta, m-channel__feed m-activity minds-rich-embed.m-richEmbed--activity--row .m-activityContent__media--richEmbed .meta, m-channel__feed m-activity minds-rich-embed.m-richEmbed--activity--row .m-rich-embed-src a.meta { display: none !important; } `; addCSS(gridviewCSS); if (document.URL === "https://www.minds.com/groups/memberships") { // document.getElementsByTagName("infinite-scroll")[0].addEventListener("scroll", () => { window.addEventListener("scroll", highlightNew); } } function removeGridView() { const gridviewCSS = ` m-group__feed m-activity__content m-activitycontent__multiimage, m-newsfeed m-activity__content m-activitycontent__multiimage, m-channel__feed m-activity__content m-activitycontent__multiimage { min-height: 750px; min-width: 750px; } `; addCSS(gridviewCSS); window.removeEventListener("scroll", highlightNew); } function highlightNew() { const items = document.getElementsByTagName("m-publishercard"); for (let i = 0; i < items.length; i++) { if ( items[i].innerHTML.includes("m-publisherCardAvatar--hasMarker") && items[i].children[0].style["background-color"] != mindsBlue ) { items[i].children[0].style["background-color"] = mindsBlue; } } } function reorganizeMenu() { const moveItems = []; // icon text + span text const hideArray = ["trending_upBoost", "add_to_queueMinds+", "tips_and_updatesSupermind", "account_balanceWallet", "volunteer_activismAffiliate", "verifiedUpgrade", "dashboardNetworks"]; const children = document.getElementsByClassName("m-sidebarNavigation__list")[0].children; let cNumber = children[0].attributes[0].nodeName.match(/\d+/); for (const child of children) { // creates list of items to prepend under "More" const moveItem = { icon: child.getElementsByTagName('i')[0] ? child.getElementsByTagName('i')[0].textContent : '', link: child.getElementsByTagName('a')[0] ? child.getElementsByTagName('a')[0].pathname : '', name: child.getElementsByTagName('span')[0] ? child.getElementsByTagName('span')[0].textContent : '' } moveItems.push(moveItem); if (child.textContent === "trending_upBoost") { // replace boost item with notifications child.innerHTML = ` <a _ngcontent-m-app-c${cNumber}="" routerlink="/discovery/plus/overview" data-ref="sidenav-plus" href="/notifications/v3"> <div _ngcontent-m-app-c${cNumber}="" class="m-sidebarNavigationItem__hoverArea"> <i _ngcontent-m-app-c${cNumber}="" class="material-icons">notifications</i> <span _ngcontent-m-app-c${cNumber}="" class="m-sidebarNavigationItem__text m-legible">Notifications</span> </div> </a> `; } else if (hideArray.includes(child.textContent)) { child.className += ' minds-limitlezz-widget-hide'; } } // only creates on first load, need to refresh to see again waitForElm(".m-sidebarMore__dropdown").then(() => { cNumber = document.getElementsByClassName("m-sidebarMore__dropdown")[0].children[0].attributes[0].nodeName.match(/\d+/) for (const item of moveItems) { const li = document.createElement("li"); li.className = "m-sidebarMoreDropdown__item ng-star-inserted"; li.innerHTML = ` <a _ngcontent-m-app-c${cNumber}="" data-ref="sidebarmore-analytics" href="${item.link}"> <i _ngcontent-m-app-c${cNumber}="" class="material-icons">${item.icon}</i> <span _ngcontent-m-app-c${cNumber}="" class="m-sidebarNavigationItem__text">${item.name}</span> </a> ` document.getElementsByClassName("m-sidebarMore__dropdown")[0].prepend(li); } }); } // Source: https://stackoverflow.com/a/61511955 // Wait for element to load function waitForElm(selector) { return new Promise((resolve) => { if (document.querySelector(selector)) { return resolve(document.querySelector(selector)); } const observer = new MutationObserver(() => { if (document.querySelector(selector)) { resolve(document.querySelector(selector)); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true, }); }); } // --- MAIN --- // let currentLoadUrl = document.URL; let activityItemsLength = 0; removeGridView(); waitForElm(".m-sidebarNavigation__list").then(() => { addWidget(); reorganizeMenu(); }); // Hides boosted content onscroll document.addEventListener("scroll", () => { const items = document.getElementsByTagName("m-activity"); if (items.length !== activityItemsLength) { for (let i = activityItemsLength; i < items.length; i++) { if ( (items[i].innerHTML.includes("m-boostedflag") || items[i].innerHTML.includes("m-activityFlag--boost")) && items[i].style.display != "none" ) { items[i].style.display = "none"; } } activityItemsLength = items.length; } }); // Resets the boosted onscroll counter document.addEventListener("click", () => { if (currentLoadUrl !== document.URL) { activityItemsLength = 0; currentLoadUrl = document.URL; } }); })();