kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4564 · 좋아요 3

Tempermonkey 설치 후 아래 스크립트 추가 하기...


설명은 다른사람들이 알아서 할것 같아서 그냥 싸지르고 튀겠습니다.


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

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

// ==UserScript==

// @name         Base64 AutoDecoder

// @namespace    http://tampermonkey.net/

// @version      1.0

// @description  디코딩 가능한 base64 문자열을 링크로 변환합니다.

// @author       Zeliper

// @match        https://kone.gg/s/imya/*

// @include      https://kone.gg/

// @grant        unsafeWindow

// ==/UserScript==

unsafeWindow.on = true ;

( function () {

'use strict' ;

// Base64 문자열을 URL로 디코딩하는 함수

function  decodeBase64ToURL(str) {

try  {

const  decoded =  atob(str); // Base64 디코딩

// URL이 http 또는 https로 시작하는지 확인

if  ( / ^https?:\ / \ //.test(decoded)) {

return  decoded; // 유효한 URL이면 반환

            }

        } catch  (e) {

return null ; // 디코딩 오류가 나면 null 반환

        }

return null ;

    }

// 텍스트에서 Base64 문자열을 찾아 링크로 변환하는 함수

function  replaceBase64WithLink(node) {

console .log( "Node : " , node);

const  base64Regex = / \b[a - zA - Z0 - 9 + / = ]{ 20 ,}\b / g; // Base64 문자열을 찾는 정규식

let  text =  node.textContent; // 텍스트 노드의 텍스트 내용

let  match;

const parent =  node.parentNode;

let  lastIndex = 0 ;

// 텍스트에서 Base64 문자열을 찾아서 처리

while  ((match =  base64Regex.exec(text)) ! = = null ) {

const  before =  text.slice(lastIndex, match.index);

const  base64Str =  match[ 0 ];

const  decodedURL =  decodeBase64ToURL(base64Str);

if  (decodedURL) {

console .log(decodedURL);

// 유효한 URL이 디코딩되었으면 링크로 변환

const  a = document .createElement( 'a' );

                a.href =  decodedURL;

                a.textContent =  decodedURL;

                a.target = '_blank' ;

//node.textContent = ''; // <-- 나중에 문제 없으면 이거 넣어서 해도 될듯

                node.appendChild( document .createElement( 'br' ));

                node.appendChild(a);

            } else {

console .log( "Failed" );

            }

            lastIndex =  base64Regex.lastIndex;

        }

    }

// .prose-container의 Shadow DOM을 탐색하여 텍스트 변환

function  walkShadowRoot(shadowRoot) {

const  textNodes =  shadowRoot.querySelectorAll( ':not(div)' );

// 모든 텍스트 노드를 확인

        textNodes.forEach(node = >  {

            replaceBase64WithLink(node);

        });

    }

// .prose-container가 로드된 후 Shadow DOM 탐색

function  processShadowRoot() {

const  container = document .body.querySelector( '.prose-container' );

if  (container & &  container.shadowRoot) {

            walkShadowRoot(container.shadowRoot); // Shadow DOM 처리

        }

    }

// 페이지가 완전히 로드된 후 실행

function  onLoad() {

        processShadowRoot();

    }

// MutationObserver를 사용하여 .prose-container의 Shadow DOM 로드를 감지

const  observer = new  MutationObserver(() = >  {

const  container = document .body.querySelector( '.prose-container' );

if  (container & &  container.shadowRoot) {

            processShadowRoot();

        }

    });

// .prose-container가 추가될 때까지 대기

    observer.observe( document .body, { childList: true , subtree: true  });

// 페이지 로딩이 완료되면 바로 실행

if  ( document .readyState = = = 'complete' ) {

        onLoad();

    }

})();

cs

3
댓글 6개
댓글 쓰기
25.05.25
복붙하니까 eslint : no-multi-spaces - multiple spaces found before 이런 오류 뜨는 데 왜 그런지 암?
주황색 세모에 ! 있는거 왼쪽 line표시에 나오는거면 eslint 문법 체크인데 무시해도됨. 실제 동작 하는지 페이지 새로고침 해서 base64문자 밑에 링크 생성만 되면 동작하고 있는거임
25.05.26 (04.02)

삭제된 댓글입니다.

25.05.27 (04.02)

삭제된 댓글입니다.

25.11.15
안되는데..
0 / 500
(복구)RJ297120 마법소녀 셀레스포니아
번역
moeum
04.11 3666 9
(복구)러브 딜리버리 1,2 러브 인 로그인
번역
moeum
04.11 10727 38
(복구요청)Living With Sister: Monochrome Fantasy 한패 파일 요청합니다!
질문&요청
ddachch
04.10 1531 0
{복구요청}언더 더 위치 : 시작 Under The Witch Beginnings
질문&요청
sori7620
04.09 2361 2
(복구요청) 잭오도나 복구 부탁드립니다
질문&요청
mikan
04.08 2136 0
[요청]미소녀만화경
질문&요청
jeppelin1235
04.05 2788 1
니어: 퍼스트 [애스]엠블리(1V 694mb)
영상
kooooper
04.03 6287 7
오나니 관리 AI
소리
만갤러
04.02 15246 109
셀레스포니아 번역본 요청합니다
질문&요청
wettissue64
03.30 3259 0
방과후 술래잡기 기간 연장
질문&요청
blitzcrank
03.30 3727 0
ATRI AI 짤들
동인
under1234
03.28 5254 5
[복구요청] 프랜치 커넥션
질문&요청
tlacos10
03.23 3567 -8
[복구요청] 러브 딜리버리 1,2
질문&요청
tlacos10
03.23 4472 0
[AI번역][미검수] 나도 지지 않아! (거시기 수정)
번역
마신
03.22 6085 10
몬헌
동인
dstk21
03.19 5431 4
[AI번역][미검수][MTool] 앨리스와 이상한 섬
번역
마신
03.18 6609 15
RJ388166 에이전트 시리우스 ~쾌락에 취약한 그녀도 학원을 세뇌 괴인들로부터 지키고 싶어!~ DLC 적용버젼 요청합니다
질문&요청
코토바
03.18 3736 1
[AI번역][미검수] 데비라비
번역
마신
03.18 5047 10
[AI번역][미검수] 키나에게 맡겨줘!
번역
마신
03.18 4682 8
kitou_rijicho 작품 요청합니다.
질문&요청
liachia
03.18 3878 1
summer time saga 한글번역본 요청드립니다!
질문&요청
godusehd
03.17 3114 -4
사쿠라의 각 있으신분
질문&요청
pcwong
03.17 3240 0
[AI번역][미검수] さくさく 서클 모음 4종 (주의) 후타/보추/혐오
번역
마신
03.17 6563 12
[AI번역][미검수] 용사와 사신의 데스티니 [버전업 다시받아주세요]
번역
마신
03.16 5047 9
[AI번역][미검수] 나는 지지 않아! ~사제로서의 30일~
번역
마신
03.16 4942 12
최면
동인
dstk21
03.14 5379 8
릇작 작품있으신분 ㅠㅠ
질문&요청
cba5201117
03.10 4709 0
[복구요청] 인공학원2 10주년 복구 요청드립니다 ㅜㅜ
질문&요청
gorapadig
03.10 3228 0
(복구요청) 妖夢員:The Nightmaretaker 요몽원
질문&요청
lol8835
03.10 2940 0
닌자타락시키기 요청 합니다
질문&요청
dkwnxmrqufgksskf
03.07 3275 0