Wowhead Tooltips on Reddit

Show Wowhead tooltips on valid Reddit Wowhead links

נכון ליום 23-06-2024. ראה הגרסה האחרונה.

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Wowhead Tooltips on Reddit
// @namespace    http://tampermonkey.net/
// @version      1.1
// @license      MIT
// @description  Show Wowhead tooltips on valid Reddit Wowhead links
// @author       Nighthawk42
// @match        https://*.reddit.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Function to add Wowhead script
    function addWowheadScript() {
        let script = document.createElement('script');
        script.src = 'https://wow.zamimg.com/widgets/power.js';
        script.async = true;
        document.head.appendChild(script);
    }

    // Add Wowhead script to the page
    addWowheadScript();

    // Function to process links and add wowhead-tooltip class
    function processWowheadLinks() {
        let links = document.querySelectorAll('a[href*="wowhead.com"]');
        links.forEach(link => {
            let href = link.href;
            link.setAttribute('data-wowhead', href);
            link.setAttribute('rel', 'external');

            // Determine the version from the URL and add corresponding attributes or classes
            if (href.includes('/beta/')) {
                link.classList.add('wowhead-beta');
            } else if (href.includes('/ptr-2/')) {
                link.classList.add('wowhead-ptr-2');
            } else if (href.includes('/ptr/')) {
                link.classList.add('wowhead-ptr');
            } else if (href.includes('/classic/')) {
                link.classList.add('wowhead-classic');
            } else if (href.includes('/cata/')) {
                link.classList.add('wowhead-cata');
            } else {
                link.classList.add('wowhead-live');
            }
        });
    }

    // Process links on page load
    processWowheadLinks();

    // Listen for new links being added to the page (e.g., infinite scrolling)
    new MutationObserver(processWowheadLinks).observe(document.body, {
        childList: true,
        subtree: true
    });
})();