Adds a blue MissAV button with favicon and a single 'or' separator.
// ==UserScript==
// @name Sukebei MissAV Button
// @namespace http://tampermonkey.net/
// @version 2.1
// @description Adds a blue MissAV button with favicon and a single 'or' separator.
// @author phnthnhnm
// @match https://sukebei.nyaa.si/view/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// 1. Find the torrent title element
const titleElement = document.querySelector('h3.panel-title');
if (!titleElement) return;
const titleText = titleElement.textContent.trim();
// 2. Extract the code using Regex
// Pattern: alphanumeric chars, a dash, then numbers (e.g., abcd123-01234)
const regex = /[a-zA-Z0-9]+-\d+/;
const match = titleText.match(regex);
// If no code is found, stop execution
if (!match) {
console.log('MissAV Button: No code found in title.');
return;
}
const code = match[0];
// 3. Find the Magnet button
const magnetBtn = document.querySelector('a[href^="magnet:"]');
if (!magnetBtn) return;
// 4. Create the "or" text separator
const orText = document.createTextNode(' or ');
// 5. Create the "MissAV" button
const missBtn = document.createElement('a');
missBtn.href = `https://missav.ws/en/${code}`;
missBtn.target = '_blank';
missBtn.textContent = 'MissAV';
// 6. Add the Favicon
const favicon = document.createElement('img');
favicon.src = 'https://www.google.com/s2/favicons?domain=missav.ws&sz=16';
favicon.style.height = '14px';
favicon.style.width = '14px';
favicon.style.marginRight = '5px';
favicon.style.verticalAlign = 'text-bottom';
favicon.style.border = 'none';
// Place icon before the text inside the button
missBtn.prepend(favicon);
// 7. Insert elements into the DOM
// Order: [Magnet Button] -> [ or ] -> [MissAV Button]
magnetBtn.parentNode.insertBefore(orText, magnetBtn.nextSibling);
magnetBtn.parentNode.insertBefore(missBtn, orText.nextSibling);
})();