שיתוף | סקריפט להוספת כפתור למתמחים טופ, למיון לפי נושאים אחרונים
-
כתבתי סקריפט לטמפרמונקי, שמוסיף בסרגל הכלים כפתור למיון נושאים לפי תאריך יצירתם,
כשלוחצים עליו עוברים לדף עם כל הנושאים האחרונים ממוינים לפי הסדר שהעלו אותם.
(דבר שהיה מאוד חסר [לי בכל אופן] בפורום).תשמרו את הקוד הזה בתוסף Tampermonkey
// ==UserScript== // @name כפתור "נושאים אחרונים" במתמחים טופ // @namespace http://tampermonkey.net/ // @version 24193.644 // @description מוסיף כפתור "נושאים אחרונים" לסינון נושאים לפי תאריך יצירה במתמחים טופ // @author עדלאידע@ // @icon https://mitmachim.top/assets/uploads/files/1736623243134-220_f_113125302_tteb9ox2w2h554esgjduh9a7mvsy5zfo-removebg-preview.png // @match https://mitmachim.top/* // @grant GM_addStyle // ==/UserScript== (function () { 'use strict'; let titleObserver; function waitForNavBar() { const navBar = document.querySelector('#main-nav'); if (navBar) { addRecentTopicsButton(navBar); } else { setTimeout(waitForNavBar, 500); } } function addRecentTopicsButton(navBar) { const button = document.createElement('li'); button.className = 'nav-item mx-2'; button.dataset.bsOriginalTitle = 'נושאים אחרונים'; button.innerHTML = ` <a class="nav-link navigation-link d-flex gap-2 justify-content-between align-items-center" href="https://mitmachim.top/search?in=titles&term=&matchWords=all&by=&categories=&searchChildren=false&hasTags=&replies=&repliesFilter=atleast&timeFilter=newer&timeRange=&sortBy=topic.timestamp&sortDirection=desc&showAs=topics" aria-label="נושאים אחרונים"> <span class="d-flex gap-2 align-items-center text-nowrap truncate-open"> <img src="https://mitmachim.top/assets/uploads/files/1736619302714-220_f_113125302_tteb9ox2w2h554esgjduh9a7mvsy5zfo-removebg-preview.png" alt="נושאים אחרונים" style="width: 24px; height: 24px; object-fit: contain;"/> <span class="nav-text small visible-open fw-semibold text-truncate">נושאים אחרונים</span> </span> </a> `; navBar.appendChild(button); button.addEventListener('click', (e) => { e.preventDefault(); sessionStorage.setItem('clickedRecentTopics', 'true'); handleRecentTopicsClick(e.target.closest('a').href); }); } function handleRecentTopicsClick(targetUrl) { history.pushState(null, '', targetUrl); updatePageTitleAndContent(); observeTitleChanges(); } function isTargetUrl(url) { const regex = /^https:\/\/mitmachim\.top\/search\?in=titles&term=&matchWords=all&by=&categories=&searchChildren=false&hasTags=&replies=&repliesFilter=atleast&timeFilter=newer&timeRange=&sortBy=topic\.timestamp&sortDirection=desc&showAs=topics(?:&page=\d+)?$/; return regex.test(url); } function updatePageTitleAndContent() { const clicked = sessionStorage.getItem('clickedRecentTopics') === 'true'; if (clicked && isTargetUrl(window.location.href)) { document.title = 'נושאים אחרונים'; removeUnwantedElements(); } } function observeTitleChanges() { if (titleObserver) { titleObserver.disconnect(); } titleObserver = new MutationObserver(() => { const clicked = sessionStorage.getItem('clickedRecentTopics') === 'true'; if (clicked && isTargetUrl(window.location.href) && document.title !== 'נושאים אחרונים') { document.title = 'נושאים אחרונים'; } }); const titleElement = document.querySelector('title'); if (titleElement) { titleObserver.observe(titleElement, { childList: true }); } } function removeUnwantedElements() { const elementsToRemove = [ '.flex-shrink-0.pe-2.border-end-md.text-sm.mb-3', '.d-flex.flex-wrap.gap-2.align-items-center[component="search/filters"]', '.card.card-header.text-xs.px-2.py-1.fw-semibold.border-0.align-self-start' ]; elementsToRemove.forEach(selector => { const element = document.querySelector(selector); if (element) element.remove(); }); } function observeDOMChanges() { const observer = new MutationObserver(() => { updatePageTitleAndContent(); }); observer.observe(document.body, { childList: true, subtree: true, }); window.addEventListener('popstate', () => { const clicked = sessionStorage.getItem('clickedRecentTopics') === 'true'; if (!clicked) { sessionStorage.removeItem('clickedRecentTopics'); } updatePageTitleAndContent(); }); } waitForNavBar(); updatePageTitleAndContent(); observeDOMChanges(); })();
מי שעדיין לא יודע איך משתמשים ב Tampermonkey,
כתבתי כאן מדריך מקיף לשימוש וכתיבת סקריפטים לתוסף הפופולארי - Tampermonkey.
בעצם כשלוחצים על הכפתור, מגיעים לדף הזה של חיפוש בפורום, אבל הסקריפט מוחק את כל האלמנטים של החיפוש.
תודה ל @צדיק-תמים שהביא לי כאן את הקישור לדף הנ"ל.
כמובן שהייתי צריך להסיר את האלמנטים של החיפוש כשלוחצים על השעון חול,
אבל בלעדיו לא היה לי רעיון איך לייבא את רשימת הנושאים האחרונים, אז תודה.
בהצלחה.
-
@cannon כתב בשיתוף | סקריפט להוספת כפתור למתמחים טופ, למיון לפי נושאים אחרונים:
אשמח אם תוסיף אפשרות למיון לפי קטגוריה כגון "מדריכים" וכדו'
זה לא כ"כ קשור ל"נושאים אחרונים".
אולי אני יעשה סקריפט כזה לאפשרות מיון ב"פוסטים אחרונים", נראה.(כרגע יש משהו כזה
איפה?