kone
소미소프트

소미소프트

미리보기 관련 유저스크립트

07/28/2025, 04:59:26
유틸
2731 views · 3 likes

미리보기 사진 위치나 크기 조정이 필요하다 생각해서 만듬 필요한 사람 쓰셈

+25/07/28 19:53분 수정 게시글 클릭시 미리보기 이미지 남아있는 문제 해결

// ==UserScript==
// @name         코네 미리보기 조정
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  kone.gg 미리보기 복제 방식으로 위치와 크기 자유 조정 + 게시글 밖 잘림 방지 + 원본 숨김 처리 포함 + SPA 대응
// @author       cloud67p
// @match        https://kone.gg/*
// @grant        none
// @run-at       document-idle
// ==/UserScript==

(function () {
  'use strict';
  
  let activePreview = null;
  let hiddenOriginal = null;
  let currentUrl = window.location.href;

  // 미리보기 정리 함수
  function cleanupPreview() {
    if (activePreview) {
      activePreview.remove();
      activePreview = null;
    }
    if (hiddenOriginal) {
      hiddenOriginal.style.display = '';
      hiddenOriginal = null;
    }
  }

  // URL 변경 감지 (SPA 대응)
  function detectUrlChange() {
    const newUrl = window.location.href;
    if (newUrl !== currentUrl) {
      currentUrl = newUrl;
      cleanupPreview();
    }
  }

  // URL 변경 감지를 위한 이벤트 리스너들
  window.addEventListener('popstate', cleanupPreview);
  
  // pushState, replaceState 감지 (SPA 라우팅)
  const originalPushState = history.pushState;
  const originalReplaceState = history.replaceState;
  
  history.pushState = function() {
    originalPushState.apply(history, arguments);
    cleanupPreview();
  };
  
  history.replaceState = function() {
    originalReplaceState.apply(history, arguments);
    cleanupPreview();
  };

  // 주기적으로 URL 변경 체크 (추가 안전장치)
  setInterval(detectUrlChange, 100);

  // 클릭 이벤트 감지 (게시글 링크 클릭 등)
  document.addEventListener('click', (e) => {
    // 링크나 버튼 클릭 시 미리보기 정리
    if (e.target.closest('a') || e.target.closest('button') || e.target.closest('[role="button"]')) {
      cleanupPreview();
    }
  }, true);

  // 키보드 이벤트 감지 (ESC 키 등)
  document.addEventListener('keydown', (e) => {
    if (e.key === 'Escape') {
      cleanupPreview();
    }
  });

  // 기존 마우스오버 이벤트
  document.addEventListener('mouseover', (e) => {
    const postWrapper = e.target.closest('.group\\/post-wrapper');
    if (!postWrapper) return;
    
    const preview = postWrapper.querySelector('.group-hover\\/post-wrapper\\:block');
    if (!preview) return;
    
    // 기존 미리보기 정리
    cleanupPreview();
    
    // 원본 숨김
    preview.style.display = 'none';
    hiddenOriginal = preview;
    
    // 복제본 생성
    const clone = preview.cloneNode(true);
    const rect = postWrapper.getBoundingClientRect();
    
    clone.style.position = 'fixed';
    clone.style.left = '40rem';
    clone.style.top = `${rect.top - 200}px`;
    clone.style.zIndex = '9999';
    clone.style.pointerEvents = 'none';
    clone.style.display = 'block';
    
    const img = clone.querySelector('img');
    if (img) {
      img.className = '';
      img.style.width = 'auto';
      img.style.height = 'auto';
      img.style.maxWidth = '720px';
      img.style.maxHeight = '720px';
      img.style.objectFit = 'contain';
      img.style.display = 'block';
    }
    
    document.body.appendChild(clone);
    activePreview = clone;
  });

  // 기존 마우스아웃 이벤트
  document.addEventListener('mouseout', (e) => {
    const postWrapper = e.target.closest('.group\\/post-wrapper');
    const related = e.relatedTarget?.closest?.('.group\\/post-wrapper');
    
    if (postWrapper && related !== postWrapper) {
      cleanupPreview();
    }
  });

  // 페이지 언로드 시 정리
  window.addEventListener('beforeunload', cleanupPreview);
  
  // 페이지 숨김 시 정리 (탭 전환 등)
  document.addEventListener('visibilitychange', () => {
    if (document.hidden) {
      cleanupPreview();
    }
  });

})();
3
1 comment
07/28/25 Edited 07/28/25
1. 미리보기가 게시글 제목을 가림 -> 위치를 더 오른쪽으로 보냄 2. 미리보기 더 크게 보고싶은데 단순히 크기 조정시 -> 게시글 박스를 넘어가면 짤림 -> 새로 복제함 3. 크기 더 크게 만드니 맨 아래 게시글의 미리보기는 하단부가 짤림 -> 미리보기들을 전부 위로 좀 더 올림 4.(수정추가) 미리보기 이미지 게시글 이동시에도 남아있는 오류 수정
(노모화) [gagarin kichi] 네토라레 당한 폭유금발아내 엘레나 3
동인
kason
05/08 34147 120
[번역요청]Bones' Tales: The Manor [v0.31.4 Hotfix] [Dr Bones]
미번
도로로롱
05/08 8249 22
미번/번역요청] 언홀메 Seed Of Profanity part3
미번
washto5010
05/08 20880 124
90일, 5.72 GB) 시리즈 ROBF
복구
ㅇㅇ
05/08 23008 57
개조생물과 전라쨩
영상
피시
05/08 21252 95
구매보급) 【역레○프】서큐버스한테 자○만 전송마법으로 납치되어 마음대로 철저하게 착정당하는 이야기
동인
GOOD
05/08 23226 103
[요청복구] NTRPG 시리즈
복구
dk041633
05/08 17859 29
90일) 4. RJ289299 ASYLUM v1.20. 개선 26.05.08.7z
복구
ㅇㅇ
05/08 21015 70
미번/구매보급 SUMMER ~夏の14日~
시잇
05/08 31117 54
TU1EdHlwZTg3 모음집 업데이트 알림
영상
hannanas
05/08 26296 46
AI, 셀레스포니아) 괴마에게 패배한 셀레스포니아
야짤
miso5
05/08 19259 88
[구매보급]【마법소녀×오호 목소리】W○리 마법소녀 최○오나홀화 ~더러운 좆 너무 좋아하는 엄청난 변태 육변기가 되기까지~
소리
이름뭐하지
05/08 14974 75
90일) 3. RJ253732 SEQUEL colony 2.02K. 개선 26.05.06.7z
복구
ㅇㅇ
05/08 16888 72
메스가키 쿠노이치 VS 에로 트랩 던전
복구
hopec
05/08 33768 69
[nihon dandy] 노출 테스트 플레이
동인
bender
05/08 19450 40
aW5jZXN0IHZpbGxhZ2U= 4K 업스케일
영상
exfpdls7952
05/08 30778 82
[Ushio Kiyoshi] 니는 아직 여친 생기려면 100년은 이르니까
동인
1uF
05/08 43355 279
[Ushio Kiyoshi] 바보 아내, 1, 2
동인
1uF
05/08 34309 198
[Ushio Kiyoshi] Only My Hole
동인
1uF
05/08 32148 231
[구매보급] [버전업] RJ01219535 RJ01219535 드레곤 블러드 2.12 dlc포함 1.03
미번
gkqisq
05/08 15423 103
[AI번역-노모][Butcha-u] Dirty Docking! (decensored)
동인
mybest
05/08 30750 59
[번역] [Space Crayon (Hisany) NTR/아저씨/추남] 샬레네토리최면 1.5 (블루아카이브)
동인
kukbap
05/08 32846 118
오나서포 20연 가챠! 메스가키짱의 장난감 1, 2
소리
9ya
05/08 12853 56
[구매보급]도m 같은반 친구가 노예가 돼서 사봤다~ 조르게 하고 오호 목소리 섹스~
소리
이름뭐하지
05/08 12862 63
[구매보급][번역요청]ニト -穢染隔離区の墜兎- 니토-예염격리구에 떨어진 토끼-
미번
kmsbook
05/08 17313 64
AI, 나히아) 하가쿠레 섹스
야짤
miso5
05/08 23926 60
[미번][구매보급][번역요청] RJ01422704 終電ノ檻:ループする快楽地獄 막차의 감옥: 반복되는 쾌락 지옥 (25.08.24)
미번
rbals2213
05/08 14156 32
[AI번역-노모 단행본] 29명의 발정 미소녀와 무인도 질내 사정 라이프 1~2
동인
mybest
05/08 51553 116
c2VydSBtbWQ= 무료 공개 쎾쓰 무비모음
영상
karatro
05/08 27074 62
주연 & 제인 파이즈리 영상
영상
브레머튼
05/08 13578 88