您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Checks some sites for OF "leaks"
当前为
// ==UserScript== // @name Coomer.su // @namespace http://tampermonkey.net/ // @version 0.2 // @description Checks some sites for OF "leaks" // @author You // @match https://onlyfans.com/* // @match *coomer.su/* // @match *fapello.com/* // @grant GM.xmlHttpRequest // @license Unlicense // ==/UserScript== (function() { 'use strict'; function getUsernameFromUrl() { const urlParts = window.location.pathname.split('/'); const username = urlParts[1]; return username; } function fetchUserProfileCoomer(username, retryCount = 0) { const apiUrl = `https://coomer.su/api/v1/onlyfans/user/${username}/profile`; GM.xmlHttpRequest({ method: 'GET', url: apiUrl, onload: function(response) { if (response.status === 200) { const data = JSON.parse(response.responseText); const profileUrl = `https://coomer.su/onlyfans/user/${username}`; addLinkToMenu(profileUrl, 'Coomer.su'); } else if (response.status === 404) { console.log(`User ${username} not found`); } else { console.error('Network response was not ok:', response.status); if (retryCount < 5) { console.log(`Retrying... Attempt ${retryCount + 1}`); setTimeout(() => fetchUserProfileCoomer(username, retryCount + 1), 1000); } else { console.error('Max retry attempts reached'); } } }, onerror: function(error) { console.error('Error fetching data:', error); } }); } function fetchUserProfileFapello(username, retryCount = 0) { const apiUrl = `https://fapello.com/${username}/`; GM.xmlHttpRequest({ method: 'GET', url: apiUrl, onload: function(response) { if (response.finalUrl === apiUrl) { const profileUrl = `https://fapello.com/${username}/`; addLinkToMenu(profileUrl, 'Fapello'); } else { console.log(`Request was redirected`); } }, onerror: function(error) { console.error('Error fetching data:', error); if (retryCount < 5) { console.log(`Retrying... Attempt ${retryCount + 1}`); setTimeout(() => fetchUserProfileFapello(username, retryCount + 1), 1000); } else { console.error('Max retry attempts reached'); } } }); } function addLinkToMenu(link, displayText) { const menuElement = document.querySelector('.l-header__menu.m-native-custom-scrollbar.m-scrollbar-y.m-invisible-scrollbar'); const aElement = document.createElement('a'); aElement.setAttribute('href', link); aElement.textContent = displayText; aElement.style.marginRight = "10px"; // Check if there are already links in the menu const existingLinks = menuElement.querySelectorAll('a'); if (existingLinks.length > 0) { const lineBreak = document.createElement('br'); menuElement.appendChild(lineBreak); } menuElement.appendChild(aElement); } const username = getUsernameFromUrl(); setTimeout(() => {fetchUserProfileCoomer(username);fetchUserProfileFapello(username)}, 4000); })();