kone
소미소프트

소미소프트

댓글 최신순/등록순 버튼 분리(댓글 새로고침) 스크립트

05/31/2025, 07:46:47
유틸
1787 views · 2 likes

챗지피티로 만든 스크립트입니다 문제시 글삭함

오류생기면 삭제 추천


최신순/등록순 버튼을 분리하는 이유

-버튼을 누르면 댓글이 새로고침 되면서 최신순/등록순으로 바뀌는데 나는 새로고침만 하고싶기 때문!

(사실 버튼 연속으로 두번 누르면 되니깐 없어도 되는 스크립트..)


그래서 작동 원리도

최신순 > 최신순 버튼 클릭: 등록순으로 일시 전환 > 다시 최신순으로 복귀함

최신순 > 등록순 버튼 클릭: 그냥 등록순으로 전환됨

등록순 > 등록순 버튼 클릭: 최신순으로 일시 전환 > 다시 등록순으로 복귀함

등록순 > 최신순 버튼 클릭: 그냥 최신순으로 전환됨


이런 원리임..

1

ㄴ원래 최신순/등록순 버튼


1

ㄴ스크립트로 분리된 최신순 버튼과 등록순 버튼





1
1

템퍼몽키 확장프로그램 받으시고 새 스크립트 만들기 > 안에 내용 지우고 스크립트 복붙 > 파일 저장


아래는 스크립트 입니다.

// ==UserScript==
// @name         kone.gg 댓글 정렬 버튼 분리
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  kone.gg의 원래 정렬 버튼 UI로 최신순/등록순 버튼을 분리해서 추가
// @match        https://kone.gg/*
// @grant        none
// ==/UserScript==

(function () {
    'use strict';

    function getOriginalSortButton() {
        const buttons = document.querySelectorAll('button[data-slot="button"]');
        return Array.from(buttons).find(btn =>
            btn.textContent.includes('최신순') || btn.textContent.includes('등록순')
        );
    }

    function clickToForceSort(targetSort) {
        const sortBtn = getOriginalSortButton();
        if (!sortBtn) return;

        const isAlreadyTarget = sortBtn.textContent.includes(targetSort);
        const oppositeSort = targetSort === '최신순' ? '등록순' : '최신순';

        if (isAlreadyTarget) {
            sortBtn.click();
            setTimeout(() => {
                const newSortBtn = getOriginalSortButton();
                if (newSortBtn) newSortBtn.click();
            }, 150);
        } else {
            sortBtn.click();
        }
    }

    function createSortBtn(id, label, iconPathD, targetSort) {
        const btn = document.createElement('button');
        btn.id = id;
        btn.setAttribute('data-slot', 'button');
        btn.className = `
            border-0 justify-center whitespace-nowrap text-sm font-medium transition-all
            disabled:pointer-events-none disabled:opacity-50
            [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4
            shrink-0 [&_svg]:shrink-0 outline-none
            aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40
            aria-invalid:border-destructive hover:bg-accent dark:hover:bg-accent/50
            h-8 px-3 rounded-full -[>svg]:px-2.5 flex items-center gap-1.5
            text-zinc-600 hover:text-zinc-900 dark:text-zinc-400 dark:hover:text-zinc-200 cursor-pointer
        `.trim();

        const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
        svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
        svg.setAttribute('width', '24');
        svg.setAttribute('height', '24');
        svg.setAttribute('viewBox', '0 0 24 24');
        svg.setAttribute('fill', 'none');
        svg.setAttribute('stroke', 'currentColor');
        svg.setAttribute('stroke-width', '2');
        svg.setAttribute('stroke-linecap', 'round');
        svg.setAttribute('stroke-linejoin', 'round');
        svg.classList.add('lucide', 'size-4');
        const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
        path.setAttribute('d', iconPathD);
        svg.appendChild(path);

        btn.appendChild(svg);
        btn.appendChild(document.createTextNode(` ${label}`));
        btn.style.marginLeft = '8px';

        btn.addEventListener('click', () => {
            clickToForceSort(targetSort);
        });

        return btn;
    }

    function addSortButtons() {
        const commentHeader = document.querySelector('.p-4.md\\:px-6.flex.justify-between.items-center');
        if (!commentHeader) return;

        const leftSection = commentHeader.querySelector('.flex.gap-4.items-center');
        if (!leftSection) return;

        if (document.querySelector('#sort-newest-btn')) return;

        // 최신순 (화살표 아래로)
        const newestPath = "m3 16 4 4 4-4 M7 20V4 M11 4h10 M11 8h7 M11 12h4";
        const newestBtn = createSortBtn('sort-newest-btn', '최신순', newestPath, '최신순');

        // 등록순 (화살표 위로)
        const oldestPath = "m3 8 4-4 4 4 M7 4v16 M11 12h4 M11 16h7 M11 20h10";
        const oldestBtn = createSortBtn('sort-oldest-btn', '등록순', oldestPath, '등록순');

        leftSection.appendChild(newestBtn);
        leftSection.appendChild(oldestBtn);

        const original = getOriginalSortButton();
        if (original) original.style.display = 'none';
    }

    const observer = new MutationObserver(addSortButtons);
    observer.observe(document.body, { childList: true, subtree: true });

    addSortButtons();
})();
2
4 comments
유틸은 언제나 개추야
진짜 쓸데없는 스크립튼데 ㄳㄳ..
05/31/25
어.. 그럼 기존 order 버튼은 그냥 냅두고 새로고침 버튼만 추가하면 대는거 아닌가
05/31/25 Edited 05/31/25
이것저것 만져봤는데 제 능력부족으로 댓글창만 새로고침만 하는건 안되더라구요 ㅠㅠ 최신순/등록순 버튼으로 댓글창 새로고침해야됨..
[구매보급/미번/shuten douji] 人妻ゴロしの魔眼2
동인
silver157
05/01 11822 54
JK신부 사쿠라 1~3편
동인
나나세마루
05/01 18052 36
【야한 보지 밀착 애교 신음】유부녀 바니걸이 해주는 달콤한 자지 마사지, 말랑한 아라사 보지 안에 잔뜩 싸줘♪【KU100 고해상도 음질】
소리
키도
05/01 10170 50
가지고 놀아지고 있어!?
동인
hatlatal
05/01 17432 82
【간사이벤】야쿠자 아내가 거근에 네토라레 완전 패배할 때까지【도S용/KU100】
소리
키도
05/01 12219 38
유부녀NTR - 오랜만에 만난 전 여친에게 배달지에서 억지로 키스하여 옛날의 쾌감을 떠올리게 하다 -
소리
키도
05/01 9357 39
이노센트 아이돌 생섹스 합숙에 가다
동인
hatlatal
05/01 19336 47
3.41 GB) RJ257653 계승되는 자의 고독
복구
ㅇㅇ
05/01 20132 53
【오호 목소리×자지 아부】건방진 JK(처녀)을 좆밥중독의 고기 오나홀로 타락시킨 이야기【KU100】
소리
키도
05/01 5328 39
일필유(乳)혼 렌카 편
동인
hatlatal
05/01 13318 56
욕구 불만에 자위광인 음란한 유부녀과 남편 몰래 아이 만들기 교미
소리
키도
05/01 11809 52
전 여친 탁란 계획
소리
키도
05/01 5560 43
[5/1] 슈나 & 시온 & 고부타 (전생슬)
영상
브레머튼
05/01 19845 138
존나 섹시한 남친 있는 갸루 JK을 속여 합법적으로 NTR 임신 섹스했다 ㅋㅋㅋ【KU100 바이노럴】
소리
키도
05/01 9490 42
패러렐 체인저 어플
동인
hatlatal
05/01 14524 42
(한글자막) 시건방진 소악마들에게 어리광 받아서 패배하는 나
영상
꽃사슴
05/01 28418 211
응석받이와 유사 그림체인 게임예고페이지가 있네
정보
kkkkkk0909
05/01 8839 46
나를 괴롭히던 애의 엄마에 의한 사죄 엣치
소리
키도
05/01 6255 38
대출 아내의 NTR 보고 ~청초한 아내의 네토라레 조교~
소리
키도
05/01 6047 30
네토리/네토라레~청초한 젊은 아내 편~【네토리 조교/네토라레 보고】
소리
키도
05/01 7149 38
갸루 임신!~아다인 제가 갸루를 임신시켜 보았습니다~
소리
키도
05/01 3922 35
욕심 많은 모녀 이색 식사
소리
키도
05/01 7167 31
임신시키기 게임 제가 임신하면……살 수 있어요……
소리
키도
05/01 5987 43
(한글자막) 최악으로 징그러운 아저씨에게 임신당해버리는 누나
영상
꽃사슴
05/01 25851 166
어디에나 있을 법한 얼굴의 그녀가 빼앗기다~ 네토라레의 쾌락 타락~
소리
키도
05/01 12126 37
W 마법소녀가 더러운 좆밥자지에 아양떨며 억지로 봉사하게 되어버리는 세뇌 어플 3rd!!!
소리
dasdaa
05/01 11009 63
[업데이트 안내] 존재감 없는 여동생과의 소박한 일상 1.09rev.5
번역
kkkkkk0909
05/01 42636 129
달아오른 변태 넬슨씨
동인
hatlatal
05/01 11606 24
사랑의 묘약으로 역습!
동인
hatlatal
05/01 16239 46
AI, 셀레스포니아) 타락한 셀레스포니아와 하즈키
야짤
miso5
05/01 8224 72