AO3: [Wrangling] Edit Tag buttons on inbox comments

add a button to the tag edit page next to the Reply button

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        AO3: [Wrangling] Edit Tag buttons on inbox comments
// @description add a button to the tag edit page next to the Reply button
//              and make sure other links to tags inside the comment also lead to edit pages
// @version     0.2
// @author      Rhine
// @namespace   https://github.com/RhineCloud
// @match       http*://*archiveofourown.org
// @match       http*://*archiveofourown.org/
// @match       http*://*archiveofourown.org/users/*/inbox*
// @require     https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js
// @grant       none
// ==/UserScript==

(function($) {
    // go through each tag comment
    $('li.comment:has(a:nth-of-type(2)[href^="/tags/"])').each(function() {
        // add a button to the tag's edit page
        let tag = $(this).find('a:nth-of-type(2)').attr('href').split('/')[2];
        let buttonHTML = '<li><a href="/tags/' + tag + '/edit">Edit Tag</a></li>';
        $(this).find('ul.actions li:has(a[href*="/inbox/reply"])').after(buttonHTML);
        
        // go through each link to a tags page inside the comment text
        $(this).find('blockquote.userstuff a[href*="/tags/"]').each(function() {
            // make sure it leads to the edit page
            if (!$(this).attr('href').endsWith('/edit')) {
                let linkParts = $(this).attr('href').split('/');
                let linkTag = linkParts[linkParts.indexOf('tags') + 1];
                $(this).attr('href', '/tags/' + linkTag + '/edit');
            }
        });
    });
})(jQuery);