kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4556 · 좋아요 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
Base64 자동 디코더
유틸
정보상ㅇㅇ
25.05.25 4556 3
요청) futa concoction ch4 part4 번역
질문&요청
qwdm112
25.05.25 1095 1
저두입성!!
일반
dhduey7hs
25.05.25 1309 -15
[요청]RJ01143019 검귀 바르고~유명 장교 충격의 AV데뷔!~
질문&요청
mymymy
25.05.25 1938 0
스탸듀밸리 1.6통합모드 있는사람
질문&요청
ㅇㅇ
25.05.25 921 2
네벨 Nebel Geisterjäger(마개조, 손번역) 요청드립니다.
질문&요청
lottegbteam
25.05.25 990 0
반갑습니다
일반
나나미카
25.05.24 1061 -14
[VAM] bjmania, cherry pie, 3dplayer03, ONA, vamonly 모음집 요청합니다..
질문&요청
fumetholone
25.05.24 2426 0
남매의 관계[姉弟のカンケイ] 요청합니다.
질문&요청
s게
25.05.24 1062 0
이겜 이름 아시는부운
질문&요청
yonq9828
25.05.24 1369 0
염월선행록 복구 요청드립니다.
질문&요청
dalle
25.05.24 1407 0
여긴 뭔데 7천명이나 구독함
일반
ㅇㅇ
25.05.24 3149 0
AI 이미지 덕분에 야겜 작가들은 캐릭터 만드는데 훨씬 편해졌을까?
일반
showdown013
25.05.24 582 0
알프스
번역
rotring
25.05.24 6190 0
도나도나
번역
뷰지
25.05.24 10281 22
[Cheris Soft] 레나리스 사가 모음
미번
뷰지
25.05.24 3798 11
[Cheris Soft] 쿠노이치 카린
미번
뷰지
25.05.24 2938 5
[Cheris Soft] 동백 삼부작
미번
뷰지
25.05.24 2127 9
영상 복구나 재업은 교통정리 끝나면 해야겠다
일반
야옹야옹야옹
25.05.24 939 0
뇌신7 복구 부탁드립니다
질문&요청
madsad
25.05.24 501 0
헨타이 프리즌 있으신분?
질문&요청
madsad
25.05.24 634 0
유나기장의 그녀들2 갖고 계신분 계실까요?
질문&요청
ㅇㅇ
25.05.23 546 0
미연시 everlasting flowers 있으신분 있나요?
질문&요청
우울증말기
25.05.23 567 2
변덕쟁이 템프테이션2 복구좀 ㅠㅠ
질문&요청
LKM
25.05.23 642 1
메이드 in 메이드 재보급 간청드립니다
질문&요청
graviditatis
25.05.23 1096 0
virtual succubus 복구 부탁드립니다
질문&요청
Ghost
25.05.23 579 0
VJ013965 도나도나 ~같이 나쁜 짓을 하자~ 요청드립니다.
질문&요청
ahdilighks
25.05.23 1242 0
virtues 18.2 한글판
질문&요청
yesmoohyun
25.05.23 2282 0
그 번역에 올라온 거
질문&요청
헤츠링
25.05.23 719 0
염월이랑 시너지좀
질문&요청
ㅇㅇ
25.05.23 586 -1