// ==UserScript== // @name r18.dev duplicate movie remover // @namespace Violentmonkey Scripts // @match https://r18.dev/videos/vod/movies/list/* // @grant none // @version 1.11 // @author Lukáš Kucharczyk // @description Removes duplicate entries in the list of movies on r18.dev. // @downloadURL https://git.kucharczyk.xyz/lukas/userscripts/raw/branch/main/r18dev_remove_duplicates.user.js // @supportURL https://git.kucharczyk.xyz/lukas/userscripts // ==/UserScript== function filterVideos() { // Select all .video containers const videos = document.querySelectorAll('.video'); console.log(`Found videos: ${videos.length}`) // Regex to match "Letters-Numbers" (e.g., AAA-111) const regex = /[a-zA-Z]+-[0-9]+/; const removedCount = 0; videos.forEach(video => { const label = video.querySelector('.video-label'); // Safety check if label exists if (label) { const text = label.textContent.trim(); const linkCount = label.querySelectorAll('a').length; // Remove if text doesn't match pattern OR label has more than 1 link if (!regex.test(text) || linkCount > 1) { video.remove(); removedCount++ } } }); console.log(`Removed videos: ${removedCount}`) } // Execute the function filterVideos();