F95Zone Developer and Game Search on Steam

Adds buttons to search for the developer on f95zone and the game title on Steam

Verzia zo dňa 31.05.2024. Pozri najnovšiu verziu.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         F95Zone Developer and Game Search on Steam
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  Adds buttons to search for the developer on f95zone and the game title on Steam
// @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, searchUrl) {
        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() {
            window.open(searchUrl, '_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 developerSteamSearchUrl = `https://store.steampowered.com/search/?term=${developerName}`;
            const developerSearchButton = createSearchButton('Search Developer on F95Zone', developerSearchUrl);
            const developerSteamSearchButton = createSearchButton('Search Developer on Steam', developerSteamSearchUrl);

            // Append the developer search buttons to the container
            buttonContainer.appendChild(developerSearchButton);
            buttonContainer.appendChild(developerSteamSearchButton);
        }

        // Remove labels (VN, Others, Completed, etc.)
        const cleanedTitleText = titleText.replace(/\[.*?\]/g, '').trim();

        // Extract the game title
        const gameTitleMatch = cleanedTitleText.match(/^(.*?)\s*$/);
        if (gameTitleMatch) {
            const gameTitle = gameTitleMatch[1].trim().replace(/\s+/g, '+');
            const gameSearchUrl = `https://store.steampowered.com/search/?term=${gameTitle}`;
            const gameSearchButton = createSearchButton('Search Game on Steam', gameSearchUrl);

            // Append the game search button to the container
            buttonContainer.appendChild(gameSearchButton);
        }

        // Append the button container to the title element
        titleElement.appendChild(buttonContainer);
    }
})();