치지직 1080p 해상도 고정

치지직 1080p 해상도로 고정합니다

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==UserScript==
// @name         치지직 1080p 해상도 고정
// @namespace    http://tampermonkey.net/
// @version      0.9
// @description  치지직 1080p 해상도로 고정합니다
// @match        *://chzzk.naver.com/*
// @match        https://chzzk.naver.com/*
// @grant        none
// @license MIT
// ==/UserScript==

(function () {
    'use strict';

    // 해상도 설정 함수 (1080p 시도, 없으면 720p 시도)
    function setResolution() {
        const qualityItem = document.querySelector(
            `.pzp-pc-setting-quality-pane__list-container > li:first-child:not(.pzp-pc-ui-setting-item--checked)`
        );

        if (qualityItem) {
            qualityItem.click();
            console.log("1080p 해상도로 설정되었습니다.");
        } else {
            console.log("1080p 해상도를 사용할 수 없습니다.");
        }
    }

    // 스크롤 오류 수정 함수
    function fixScrollIssue() {
        document.body.style.overflow = 'auto';
        document.documentElement.style.overflow = 'auto';

        // `position: fixed` 속성 제거
        document.body.style.position = 'relative';
        document.documentElement.style.position = 'relative';

        // `height` 속성 재설정
        document.body.style.height = 'auto';
        document.documentElement.style.height = 'auto';

        console.log("스크롤 오류가 수정되었습니다.");
    }

    // 특정 페이지에서 해상도 및 스크롤 설정 적용
    function applySettingsOnSpecificPages() {
        if (
            location.href.startsWith("https://chzzk.naver.com/live/") ||
            location.href.startsWith("https://chzzk.naver.com/video")
        ) {
            const interval = setInterval(() => {
                setResolution();
                clearInterval(interval); // 해상도 설정 후 간격 해제
            }, 500);
            fixScrollIssue(); // 스크롤 문제 해결
        } else {
            fixScrollIssue(); // 다른 페이지에서도 스크롤 문제 해결
        }
    }

    // 페이지 로드 시 설정 적용
    window.addEventListener("load", () => {
        applySettingsOnSpecificPages();
    });

    // URL 변경 감지하여 설정 재적용
    let lastUrl = location.href;
    setInterval(() => {
        if (location.href !== lastUrl) {
            lastUrl = location.href;
            applySettingsOnSpecificPages();
        }
    }, 1000);
})();