Sukebei MissAV Button

Adds a blue MissAV button with favicon and a single 'or' separator.

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

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

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==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);

})();