SW/ 개발팁 / 추천프로그램, 꿀팁 공유
  • 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
정보

pwndrop 한글파일명 문제 해결방법을 수정해보았습니다

GRT GRT 100

2

8

 

위글에서 작성하신 스크립트보고 그대로 따라 해보려고 했는데
댓글에 안된다는분도 계시고 저또한 이상하게시리 동작을 안해서 gpt도움을 좀 받아서 작성 해보았습니다

WebDAV는 아예 사용을 안할것 같아서 HTTP만 대충 구현을 해봣습니다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// ==UserScript==
// @name         pwndrop_한글깨짐방지
// @version      24-03-22
// @description  try to take over the world!
// @author       You
// @match        https://테스트.synology.me/
// @icon         https://테스트.synology.me/pages/img/pwndrop.png
// @grant        none
// ==/UserScript==
 
(function() {
    'use strict';
 
    setTimeout(function() {
        // 클릭 이벤트
        document.addEventListener('click'function(event) {
            // 클릭된 요소가 버튼이 아니면 종료
            if (!event.target.matches('.btn-copy-link')) return;
 
            event.preventDefault(); // 기본동작 중지
 
            // 버튼과 가장 가까운 부모 요소찾기
            var parent = event.target.closest('.row.upload-block');
 
            // 부모 요소에서 .col-auto.grow.trans 찾기
            var originalText = parent.querySelector('.col-auto.grow.trans small').textContent;
 
            // "주소"를 추가하여 새로운 텍스트를 생성
            var textToCopy = "https://테스트.synology.me" + originalText;
 
            // 클립보드에 복사
            if (navigator.clipboard && navigator.clipboard.writeText) {
                navigator.clipboard.writeText(textToCopy)
                  .then(() => {
                      console.log('Text copied to clipboard:', textToCopy);
                      // 복사여부 확인
                  })
                  .catch(err => {
                      console.error('Error copying text: ', err);
                      // 에러메세지
                  });
            }
        });
    }, 100); // 0.1초 후에 실행
})();
cs
신고공유스크랩
8
profile image 2등
빨간물약 2024.03.23. 09:31

음 다른 분들은 잘 안되시나 보네요
다른 웹 페이지 주소로 테스트를 못해서 어쩔수 없긴 하지만
이 코드도 한글 파일명 잘 되네요
그런데 영문 파일명은 깨져서 복사가 되네요
깨진 주소로 잘 되긴 하는데 희한하네요

/NDPnJyci/1661216380_(1) (1).gif - 원 파일명

/NDPnJyci/1661216380_%281%29%20%281%29.gif - 복사된 파일명

실행은 잘 됩니다

profile image
GRT 글쓴이 2024.03.23. 09:44
빨간물약
저도 똑같이 1661216380_(1) (1).gif 파일명으로 올려봣는데
저는 파일명 원본 그대로 복사가 잘되네요 흠...
제가 스크립트는 많이 안다뤄 봐서 모르겠지만 각자 사용하는 환경이
워낙 천차만별이라 이런 증상이 보이는걸까요...?
profile image
빨간물약 2024.03.23. 10:06
GRT

캐시를 다 지우고 다시 적용 해보니 잘 작동 되네요
저 같은 경우는 이 코드도 잘 되고
제가 만든 코드도 잘 되는 상황입니다

아무래도 사이트 설정에 따라 뭔가 차이가 있는 거 같네요
두 코드 차이를 찾자면 setTimeout 부분인데
아마 로딩 관련 문제이거나 브라우저나 사이트 혹은
도메인 보안 설정? 관련 문제일 수도 있을 거 같고요

 

// ==UserScript==
// @name         Pwndrop Link Korean Filename Fix
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  Pwndrop Link Korean Filename Fix
// @author       빨간물약
// @match        *://pwn.서비스.com/*
// @icon         https://pwn.서비스.com/pages/img/pwndrop.png
// @grant        none
// ==/UserScript==

(function() {
    'use strict';
    setTimeout(function() {
        // 함수를 문서에 추가하고 클릭 이벤트 리스너로 등록
        document.addEventListener('click', function(e) {
            // 클릭된 요소가 원하는 버튼인지 확인
            if (e.target.closest('.btn-copy-link')) {
                // 파일 경로 추출
                const filePathElement = e.target.closest('.upload-block').querySelector('.col-auto.grow.trans small');
                if (filePathElement) {
                    const filePath = filePathElement.textContent.trim();
                    let fullUrl = `https://pwn.서비스.com${filePath}`;

                    // WebDAV 버튼 클릭 시 특정 문자열 추가
                    if (e.target.innerText.includes('WebDAV')) {
                        fullUrl = `\\\\pwn.서비스.com@80\\${filePath}`;
                    }

                    // 클립보드에 파일 URL 복사
                    navigator.clipboard.writeText(fullUrl)
                        .catch(err => {
                            // 복사 실패시 에러 메시지 출력
                            console.error('클립보드 복사 실패:', err);
                        });
                    e.preventDefault(); // 기본 동작 방지
                }
            }
        });
    }, 100); // 0.1초 후에 실행
})();

 

혹시 이 코드 좀 테스트 해주실 수 있으신가요?

setTimeout 을 추가 해봤습니다

profile image
GRT 글쓴이 2024.03.23. 10:22
빨간물약
테스트 해보니까 이것도 이제 잘 되네요
기존 스크립트는 즉시 동작하게 만들어놧다 보니
아마 브라우저 환경이나 pc환경에 따라서 페이지로드 되는 속도가 조금씩 다르면서
스크립트가 잘 될때도 있고 안될때도 있고 했던게 아닐까 싶네요...?
profile image
빨간물약 2024.03.23. 10:30
GRT
네 다른 건 안건드리고 setTimeout만 추가 했는데 잘 되신다니 다행이네요
다른 안된다는 분은 맥OS 13에서 한글 파일 업로드 할 때 자모 분리 이슈 였다고 합니다
profile image
GRT 글쓴이 2024.03.23. 10:33
빨간물약
제가 브라우저에 사용중인 확장프로그램이 워낙 많아서
시크릿모드에서 먼저 체크를 해볼걸 싶은 생각이 드네요 ㅎ;;
맥은 한글이슈가 여기서 또 골치아프게 하는군요

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story