您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically sort video results in a page on /videos, /images, /subscriptions, and sidebars using customizable sort function.
当前为
// ==UserScript== // @name Iwara Custom Sort // @version 0.113 // @grant GM.setValue // @grant GM.getValue // @grant GM.deleteValue // @match https://ecchi.iwara.tv/* // @match https://www.iwara.tv/* // @match http://ecchi.iwara.tv/* // @match http://www.iwara.tv/* // @description Automatically sort video results in a page on /videos, /images, /subscriptions, and sidebars using customizable sort function. // @namespace https://gf.qytechs.cn/users/245195 // ==/UserScript== /* jshint esversion: 6 */ const logDebug = (...args) => { const debugging = true; if (debugging) { console.log(...args); } } logDebug('Parsed.'); const sortValueInput = document.createElement('input'); const parsePrefixed = (str) => { return Number.parseFloat(str) * (str.includes('k') ? 1000 : 1); } const sortVideos = (videosContainer) => { const videoDivs = Array.from(videosContainer.querySelectorAll('.clearfix')); const views = videoDivs.map(div => div.querySelector('.glyphicon-eye-open')) .map(div => div ? parsePrefixed(div.parentElement.textContent) : 0); const likes = videoDivs.map(div => div.querySelector('.glyphicon-heart')) .map(div => div ? parsePrefixed(div.parentElement.textContent) : 0); const videoEntries = Object.entries(videoDivs); GM.setValue('sortValue', sortValueInput.value); const evalSortValue = (views, likes) => { const ratio = Math.min(likes / Math.max(1, views), 1); return eval(sortValueInput.value); } videoEntries.sort((entryA, entryB) => { return evalSortValue(views[entryB[0]], likes[entryB[0]]) - evalSortValue(views[entryA[0]], likes[entryA[0]]); }); videoDivs.map(div => div.parentElement) .forEach((div, index) => { div.append(videoEntries[index][1]); }); }; const sortAllVideos = () => { let gridCount = 0; document.querySelectorAll('.views-responsive-grid').forEach((grid) => { sortVideos(grid); gridCount++; }); logDebug(`${gridCount}grids sorted.`); }; const requestMorePages = (URL, pageCount) => { const params = URL.searchParams; const page = params.has('page') ? params.get('page') : 0; logDebug(page, pageCount); } (async () => { const currentURL = new URL(location); if (/\/(videos|images|subscriptions)/.test(currentURL.pathname)) { const additionalPageCount = 2; requestMorePages(currentURL, additionalPageCount); } sortValueInput.type = 'text'; sortValueInput.value = await GM.getValue('sortValue', '100 * ratio + Math.sqrt(likes) / 25'); const uiContainer = (() => { const temp = document.querySelector('.list-inline'); if (temp) { return temp; } else { return document.querySelector('#user-links'); } })(); uiContainer.insertAdjacentElement('afterbegin', sortValueInput); const sortButton = document.createElement('button'); sortButton.innerHTML = 'Sort'; uiContainer.insertAdjacentElement('afterbegin', sortButton); sortButton.addEventListener('click', sortAllVideos); sortAllVideos(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址