您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds buttons to search for the developer on f95zone and the game title on Steam and RyuuGames
// ==UserScript== // @name F95Zone Developer and Game Search on Steam and RyuuGames // @namespace http://tampermonkey.net/ // @version 1.8 // @description Adds buttons to search for the developer on f95zone and the game title on Steam and RyuuGames // @author FunkyJustin // @license MIT // @match https://f95zone.to/threads/* // @icon https://www.google.com/s2/favicons?sz=64&domain=f95zone.to // @grant none // ==/UserScript== (function() { 'use strict'; // Function to create a search button function createSearchButton(buttonText, searchUrls) { const button = document.createElement('button'); button.innerText = buttonText; button.style.marginLeft = '10px'; button.style.cursor = 'pointer'; // Styling to match the website's button style button.style.padding = '5px 10px'; button.style.fontSize = '14px'; button.style.color = '#FFFFFF'; button.style.backgroundColor = '#0073e6'; button.style.border = 'none'; button.style.borderRadius = '3px'; button.style.display = 'inline-block'; button.style.textAlign = 'center'; // Hover effect button.onmouseover = function() { button.style.backgroundColor = '#005bb5'; }; button.onmouseout = function() { button.style.backgroundColor = '#0073e6'; }; button.onclick = function() { searchUrls.forEach(url => window.open(url, '_blank')); }; return button; } // Find the title element const titleElement = document.querySelector('.p-title h1.p-title-value'); if (titleElement) { // Create a container for the buttons const buttonContainer = document.createElement('div'); buttonContainer.style.marginTop = '10px'; // Extract the full title text const titleText = titleElement.innerText; // Extract the developer's name const developerMatch = titleText.match(/\[([^\]]+)\]$/); if (developerMatch) { const developerName = developerMatch[1]; const developerSearchUrl = `https://f95zone.to/sam/latest_alpha/#/cat=games/page=1/creator=${developerName}`; const developerSteamSearchUrls = [ `https://store.steampowered.com/search/?developer=${developerName}`, `https://store.steampowered.com/search/?term=${developerName}` ]; const developerSearchButton = createSearchButton('Search Developer on F95Zone', [developerSearchUrl]); const developerSteamSearchButton = createSearchButton('Search Developer on Steam', developerSteamSearchUrls); // Append the developer search buttons to the container buttonContainer.appendChild(developerSearchButton); buttonContainer.appendChild(developerSteamSearchButton); } // Function to extract game title without modifying the DOM function extractGameTitle(element) { let gameTitle = ''; element.childNodes.forEach(node => { if (node.nodeType === Node.TEXT_NODE) { gameTitle += node.textContent; } }); return gameTitle.replace(/\[.*?\]/g, '').trim(); } // Extract and clean the game title const gameTitle = extractGameTitle(titleElement); // Encode the game title to handle special characters const encodedGameTitle = encodeURIComponent(gameTitle.trim()); // Construct the search URL with additional parameters const gameSearchUrl = `https://store.steampowered.com/search/?term=${encodedGameTitle}&supportedlang=english&ndl=1`; const gameSearchButton = createSearchButton('Search Game on Steam', [gameSearchUrl]); // Construct the search URL for RyuuGames const gameRyuuGamesSearchUrl = `https://www.ryuugames.com/?s=${encodedGameTitle}`; const gameRyuuGamesSearchButton = createSearchButton('Search Game on RyuuGames', [gameRyuuGamesSearchUrl]); // Append the game search buttons to the container buttonContainer.appendChild(gameSearchButton); buttonContainer.appendChild(gameRyuuGamesSearchButton); // Append the button container to the title element titleElement.appendChild(buttonContainer); } })();