// ==UserScript==
// @name SOOP Clip New Tab Opener
// @namespace http://tampermonkey.net/
// @version 2.2
// @description SOOP(sooplive.com)에서 클립 및 VOD 클릭 시 강제로 새 탭에서 열리도록 설정합니다.
// @author 푸릴 (Made by Gemini)
// @match *://*.sooplive.com/*
// @downloadURL https://update.greasyfork.icu/scripts/571809/SOOP%20Clip%20New%20Tab%20Opener.user.js
// @updateURL https://update.greasyfork.icu/scripts/571809/SOOP%20Clip%20New%20Tab%20Opener.meta.js
// ==/UserScript==
// This script was created by 푸릴, with help from Gemini.
/* author: 푸릴 made by gemini */
(function() {
'use strict';
// author: 푸릴 made by gemini
// 1. 제공해주신 URL 형식을 포함하여 클립/VOD 링크인지 판별
// SOOP의 URL 구조에 맞춰 키워드를 설정합니다.
const isClipLink = (href) => {
if (!href) return false;
const lowerHref = href.toLowerCase();
// 검색 결과, VOD, 클립, 플레이어 관련 키워드
const keywords = ['/player/', '/video/', '/clip/', '/vod/', '/catch/'];
return keywords.some(keyword => lowerHref.includes(keyword));
};
// 2. 문서 전체의 클릭 이벤트를 가장 먼저 가로채기 (capture: true)
document.addEventListener('click', function(e) {
// 마우스 왼쪽 버튼 클릭이 아닐 경우(휠 클릭 등)는 원래 브라우저 기능에 맡김
if (e.button !== 0) return;
// 클릭한 요소가 태그이거나 태그 내부의 이미지/텍스트인지 확인
const targetLink = e.target.closest('a');
if (targetLink && targetLink.href) {
// 해당 링크가 VOD나 클립 주소라면
if (isClipLink(targetLink.href)) {
// SOOP 사이트 자체의 화면 전환 스크립트 실행을 완벽히 차단
e.preventDefault();
e.stopPropagation();
// 강제로 새 탭 열기
window.open(targetLink.href, '_blank');
}
}
}, true); // true: 사이트 자체 코드보다 먼저 이벤트를 처리함(캡처링 단계)
})();