Rule34 Favorite Button

Adds a more convenient favorite button in the form of a heart under media on post detail pages

スクリプトをインストールするには、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         Rule34 Favorite Button
// @version      1.1
// @description  Adds a more convenient favorite button in the form of a heart under media on post detail pages
// @author       littlesmella
// @namespace    littlesmella
// @match        https://rule34.xxx/index.php?page=post&s=view&id=*
// @license      MIT
// @grant        none
// ==/UserScript==

// Derivative of 'Rule34 Favorite Button', updated with Claude Opus 5 Low
// Original: https://sleazyfork.org/en/scripts/560582-rule34-favorite-button/code

(() => {
    'use strict';

    function getIdFromUrl() {
        const searchParams = new URLSearchParams(window.location.search);
        const paramValue = searchParams.get('id');
        return paramValue;
    }

    const sublinks = document.querySelector('#right-col .image-sublinks');
    if (sublinks) {
        const id = getIdFromUrl();
        const favButton = document.createElement('a');

        favButton.href = '#';
        favButton.textContent = "♥";
        favButton.setAttribute('onclick', `post_vote('${id}', 'up'); addFav('${id}'); return false;`);
        favButton.setAttribute('style', `font-size: 2em; text-align: center; display: block;`);

        sublinks.parentNode.insertBefore(favButton, sublinks);
    } else {
        console.log('Sublinks row not found');
    }
})();