您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Automatically clicks the sort dropdown and selects "Most Viewers" on Holodex.net with load detection
当前为
- // ==UserScript==
- // @name Holodex - Auto Click Sort Dropdown and Select Most Viewers (With Load Detection)
- // @namespace http://tampermonkey.net/
- // @version 1.3
- // @description Automatically clicks the sort dropdown and selects "Most Viewers" on Holodex.net with load detection
- // @author ChatGPT
- // @match https://holodex.net/*
- // @grant none
- // @run-at document-idle
- // ==/UserScript==
- (function () {
- 'use strict';
- // 정렬 아이콘 클릭을 위한 함수
- function findSortButton() {
- return [...document.querySelectorAll('svg.v-icon__svg')].find(svg => {
- const path = svg.querySelector('path');
- return path?.getAttribute('d') === 'M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z';
- })?.closest('button');
- }
- // "Sort" 탭 클릭
- function clickSortTab() {
- const sortTab = document.querySelector('.v-select__selection--comma');
- if (sortTab && sortTab.textContent.includes('Latest')) {
- console.log('[Tampermonkey] "Sort" tab found, clicking...');
- sortTab.click();
- } else {
- console.log('[Tampermonkey] "Sort" tab not found!');
- }
- }
- // "Most Viewers" 항목 선택
- function selectMostViewers() {
- const listItems = document.querySelectorAll('.v-list-item');
- for (const item of listItems) {
- if (item.textContent.includes('Most Viewers')) {
- console.log('[Tampermonkey] "Most Viewers" found, selecting...');
- item.click();
- return true;
- }
- }
- return false;
- }
- // 첫 번째 정렬 버튼 클릭 및 이후 단계 처리
- function trySortClickAndSelect() {
- const sortButton = findSortButton();
- if (sortButton) {
- console.log('[Tampermonkey] Sort button found, clicking...');
- sortButton.click();
- // 바로 "Sort" 탭 클릭
- clickSortTab();
- // "Most Viewers" 항목을 바로 선택 시도
- if (!selectMostViewers()) {
- console.log('[Tampermonkey] "Most Viewers" not found yet, retrying...');
- // 만약 아직 항목이 준비되지 않았다면 다시 시도
- setTimeout(() => {
- console.log('[Tampermonkey] Retry select "Most Viewers"...');
- selectMostViewers();
- }, 300);
- }
- } else {
- console.log('[Tampermonkey] Sort button not found!');
- }
- }
- // 로딩 완료 감지 함수
- function detectPageLoad() {
- // 페이지 로딩이 완료되고 나면 클릭 작업 시작
- if (document.readyState === 'complete') {
- console.log('[Tampermonkey] Page loaded, starting sort click...');
- trySortClickAndSelect();
- }
- }
- // 페이지 로딩 상태 감지
- window.addEventListener('load', detectPageLoad);
- // DOM 변화 감지
- const observer = new MutationObserver(() => {
- const sortButton = findSortButton();
- if (sortButton) {
- sortButton.click();
- console.log('[Tampermonkey] Sort dropdown button clicked');
- observer.disconnect(); // 버튼 클릭 후 감지 종료
- // 버튼 클릭 후 나머지 작업 수행
- trySortClickAndSelect();
- }
- });
- // 페이지 로드 후 감지 시작
- window.addEventListener('load', () => {
- console.log('[Tampermonkey] Script loaded, starting observer...');
- observer.observe(document.body, { childList: true, subtree: true });
- });
- })();