您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Sort by views. Infinite scroll. Only videos mode. Hide photos. Tags below title
// ==UserScript== // @name Erome Sort by views + Infinite Scroll // @namespace http://tampermonkey.net/ // @version 1.0 // @license MIT // @description Sort by views. Infinite scroll. Only videos mode. Hide photos. Tags below title // @author ricaroal // @match *://*.erome.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=erome.com // @run-at document-idle // @grant none // ==/UserScript== /* globals $ LazyLoad */ $(document).ready(function() { // CSS que deseas añadir var css = ` .album .album-bottom-right, .album .album-bottom-views { text-shadow: 3px 0 #000, -3px 0 #000, 0 3px #000, 0 -3px #000, 1px 1px #000, -1px -1px #000, 1px -1px #000, -1px 1px #000; font-size: 20px; font-weight: bold; } #tabs { display:none; } .page-content h1 { margin-bottom:30px; } `; // Añadir el CSS al documento var style = $('<style></style>').text(css); $('head').append(style); }); $("#tabs").first().css("display", "flex"); $(".page-content h1").first().css("margin-bottom", "10px"); const etiquetasBottom = $(".mt-10"); const userprofileTop = $(".user-profile"); if (etiquetasBottom.length && userprofileTop.length) { etiquetasBottom.insertAfter(userprofileTop); } const spanElement = $('<span>Tags: </span>'); $('p.mt-10').prepend(spanElement); $('p.mt-10').css('font-size', '20px'); if ($('.user-profile').length === 0) { const orderByViews = $('<button id="order-by-views">Order by views</button>').css({ 'float': 'right', 'color': '#eb6395', 'background-color': 'black', 'padding': '7px', 'font-size': '17px' }); $('h1').append(orderByViews); } setInterval(function() { $('div#page .page-content.row').addClass('albumes'); }, 1000); $(document).ready(function() { // Function to convert formatted views to complete numbers function convertViews(views) { if (views.includes('K')) { return parseFloat(views.replace('K', '').replace(',', '.')) * 1000; } return parseInt(views.replace(',', '')); } // Event listener for the button $('#order-by-views').click(function() { // MODIFICACION SCRIPT // Select all albumes divs const albumesDivs = $('.albumes'); // If there are no albumes divs or only one, no need to merge if (albumesDivs.length <= 1) { return; } // Get the first albumes div const mainAlbumesDiv = albumesDivs.first(); // Loop through all albumes divs except the first one albumesDivs.slice(1).each(function() { // Get all album divs inside the current albumes div const albumDivs = $(this).find('.album'); // Append each album div to the first albumes div albumDivs.appendTo(mainAlbumesDiv); // Remove the current albumes div $(this).remove(); }); // MODIFICACION SCRIPT // Iterate over each span element with the class 'album-bottom-views' and convert views $('.album-bottom-views').each(function() { const $this = $(this); const viewsText = $this.text().trim().replace(/[^\d,K]/g, ''); // Extract the views text const completeViews = convertViews(viewsText); // Convert views to complete number $this.html('<i class="fa fa-eye"></i>' + completeViews.toLocaleString()); // Update the span content }); // Get all child divs with the class 'album' and sort them based on the number of views const $albums = $('.albumes').children('.album').sort(function(a, b) { const viewsA = convertViews($(a).find('.album-bottom-views').text().trim().replace(/[^\d,k]/g, '')); const viewsB = convertViews($(b).find('.album-bottom-views').text().trim().replace(/[^\d,k]/g, '')); return viewsB - viewsA; // Sort in descending order }); // Append the sorted albums back to the parent container $('.albumes').append($albums); }); }); (function disableDisclaimer() { if (!$('#disclaimer').length) return; $.ajax({ type: 'POST', url: '/user/disclaimer', async: true }); $('#disclaimer').remove(); $('body').css('overflow', 'visible'); })(); const PINK = '#eb6395'; const GREY = '#a09f9d'; function isActiveColor(condition) { return condition ? PINK : GREY; }; function togglePhotoElements() { document.querySelectorAll('.media-group > div:last-child:not(.video)').forEach(a => { $(a.parentElement).toggle(config.showPhotos); }); $('#togglePhotos').css('backgroundColor', isActiveColor(config.showPhotos)); $('#togglePhotos').text(!config.showPhotos ? 'show photos' : 'hide photos'); } function hidePhotoOnlyAlbums() { $('div[id^=album]').filter((_, e) => !$(e).find('.album-videos').length).toggle(config.showPhotoAlbums); $('#togglePhotoAlbums').css('color', isActiveColor(!config.showPhotoAlbums)); window.dispatchEvent(new Event('scroll')); } function infiniteScrollAndLazyLoading() { if (!document.querySelector('.pagination')) return; const url = new URL(window.location.href); const nextPageUrl = () => { url.searchParams.set('page', nextPage); return url.href; } let nextPage = parseInt(url.searchParams.get('page')) || 2; const limit = parseInt($('.pagination li:last-child()').prev().text()) || 50; const infinite = $('#page').infiniteScroll({ path: nextPageUrl, append: '.page-content', scrollThreshold: 800 }); $('#page').on('append.infiniteScroll', () => { hidePhotoOnlyAlbums(); new LazyLoad(); nextPage++; if (nextPage > limit) infinite.destroy(); }); } /******************************************* STATE ***********************************************/ const config = { showPhotos: true, showPhotoAlbums: false } function sync() { Object.assign(config, JSON.parse(localStorage.getItem("config"))); } function save() { localStorage.setItem("config", JSON.stringify(config)); } //================================================================================================= const IS_ALBUM_PAGE = /^\/a\//.test(window.location.pathname); function pageAction() { sync(); if (IS_ALBUM_PAGE) { togglePhotoElements(); } else { hidePhotoOnlyAlbums(); } } if (IS_ALBUM_PAGE) { $('#user_name').parent().append('<button id="togglePhotos" class="btn btn-pink">show/hide photos</button>'); $('#togglePhotos').on('click', () => { config.showPhotos = !config.showPhotos; togglePhotoElements(); save(); }); } else { infiniteScrollAndLazyLoading(); $('.navbar-nav').append('<li><a href="#" id="togglePhotoAlbums">video only</span></a></li>'); $('#togglePhotoAlbums').on('click', () => { config.showPhotoAlbums = !config.showPhotoAlbums; hidePhotoOnlyAlbums(); save(); }); } window.addEventListener('focus', pageAction); pageAction();