您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add a button that fix the redirect to some camsite next to the model name.
当前为
// ==UserScript== // @name CamGirlFinder Fix Redirect // @namespace https://greasyfork.org/fr/users/1468290-payamarre // @version 1.0 // @license MIT // @description Add a button that fix the redirect to some camsite next to the model name. // @author NoOne // @match http://camgirlfinder.net/models/* // @match https://camgirlfinder.net/models/* // @grant none // ==/UserScript== /*If the page don't open make sure to add an execption to your adblocker for the site. Example, @@||stripchat.com^$popup @@||stripchat.com^$document*/ (function () { 'use strict'; // SVG icon for the button const svgIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" style="width: 25px; height: 25px;"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25" /> </svg>`; // Function to add the redirect button outside the link function addRedirectButton() { const currentUrl = window.location.href; const modelName = currentUrl.split('/').pop(); // Find the <a rel="nofollow"> tag const modelLink = document.querySelector('a[rel="nofollow"]'); if (modelLink) { // Create the button const button = document.createElement('button'); button.innerHTML = svgIcon; button.style.cursor = 'pointer'; button.style.background = 'none'; button.style.padding = '0'; button.style.marginLeft = '15px'; // Space between the model name and the button button.style.height = '40px'; // Increased size button.style.width = '40px'; // Increased size button.style.transition = 'all 1s ease'; // Increased transition time button.style.display = 'inline-flex'; // Keeps the button inline with text button.style.alignItems = 'center'; // Vertically center the SVG inside button button.style.justifyContent = 'center'; // Horizontally center the SVG inside button button.style.verticalAlign = 'middle'; // Ensures the button stays aligned with the text button.style.color = '#f5f5f5'; // Default icon color button.style.borderRadius = '20%'; // Slightly rounded corners with 20% radius button.style.border = '1px solid #f5f5f5'; // Light border on hover // Add hover effect using CSS classes button.addEventListener('mouseover', function () { button.style.color = '#272727'; // Change icon color on hover button.style.background = '#f5f5f5'; // Background color on hover }); button.addEventListener('mouseout', function () { button.style.color = '#f5f5f5'; // Reset icon color when mouse leaves button.style.background = 'none'; // Remove background on mouse out }); // Add click effect to simulate button press (reduce size) button.addEventListener('click', function () { // Temporarily shrink the button to 20% of its original size button.style.transform = 'scale(0.2)'; // Shrink the button on click setTimeout(() => { // After the animation, return to the normal size button.style.transform = 'scale(1)'; }, 100); // After 100ms, restore the button size if (currentUrl.includes('/models/cb/')) { const url = `https://chaturbate.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/sc/')) { const url = `https://stripchat.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/c4/')) { const url = `https://cam4.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/cs/')) { const url = `https://camsoda.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/f4f/')) { const url = `https://flirt4free.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/bc/')) { const url = `https://bongacams.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/ctv/')) { const url = `https://cherry.tv/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/im/')) { const url = `https://imlive.com/live-sex-chat/cam-girls/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/lj/')) { const url = `https://livejasmin.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab /* } else if (currentUrl.includes('/models/mfc/')) { const url = `https://MFC.im/${modelName}`; window.open(url, '_blank'); // Opens in a new tab //MFC not working well.*/ } else if (currentUrl.includes('/models/stv/')) { const url = `https://showup.tv/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/sm/')) { const url = `https://streamate.com/cam/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/sr/')) { const url = `https://streamray.com/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/xl/')) { const url = `https://xlovecam.com/chat/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else if (currentUrl.includes('/models/atv/')) { const url = `https://amateur.tv/${modelName}`; window.open(url, '_blank'); // Opens in a new tab } else { alert('No model found.'); } }); // Append the button just after the model name modelLink.parentNode.insertBefore(button, modelLink.nextSibling); } } // Run the function to add the button addRedirectButton(); })();