kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4570 · 좋아요 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
결국 승자는 쌀 한가마니 지고 사라진 도로랑 xd만 남았네 ㅋㅋㅋㅋ
일반
가리랑
25.11.06 6839 6
쿠노이치 카린 한패버전
질문&요청
aaeedd0212
25.11.05 2547 -5
앨리스소트트 겜 요청 번역본 요청
질문&요청
jounsoung5397
25.11.05 1119 -3
[복구요청] 얼굴 없는 달 -달맞이의 쌍동백- 복구 요청드립니다.
질문&요청
sasfsdfdsfds
25.11.05 972 -3
복구 요청 가능할까요
질문&요청
Ghost
25.11.04 6235 -5
복구) 응석받이 여름편 (20.07.25) + 겨울편 (23.07.14) 노모 손번역
번역
Covid-19
25.11.04 15758 46
요청하시는 분도 계시고 해서 저번에 올린거 복구 및 몇개 추가
animeke
25.11.04 9458 0
픽팍 금지 당하니 여기도 조용해졌네
일반
NTR 흥분남
25.11.04 3758 -6
[복구요청] Re:LieF ~친애하는 당신에게~
질문&요청
jtyfpc
25.11.03 1156 -3
픽팍으로 자막 재생을 했는데 왜 자막이 이상하게 뜰까요?
질문&요청
jutteme
25.11.03 3192 -5
요몽원 상반신 안보이는사람들 필독
정보
꾸까끼꾸꾸끼
25.11.03 2404 0
[요청] Nagoonimation 모음집 부탁드립니다
질문&요청
가리랑
25.11.03 1090 -2
[요청] pc98 두기런처 성인용 게임 컬렉션
질문&요청
shshanfkgus
25.11.03 1174 2
러브러브! 마이버디:크로스 ラブラブ!マイばでぃ:クロス
미번
kisamao
25.11.02 3139 6
혹시 원원원 씨 작품 apk 있을까요?
질문&요청
romero38
25.11.02 5080 0
[복구 요청]폭유 음란 비치
질문&요청
haretsu
25.11.02 5369 -2
[복구요청] [POISON] Kan’ochi x Netorare Kazoku ~MOTION EDITION~
질문&요청
도로롱
25.11.02 6570 3
[복구요청]스튜디오 포크 작품들 한글 복구요청 해도 될까요?
질문&요청
welldonecashewnut
25.11.02 6175 1
[요청] 두아즈 - 신부님이 말하는 대로 -
질문&요청
sfd135
25.11.02 1857 3
림프선 꾹꾹 메스가키 밀크
번역
1557
25.11.01 23639 49
부탁드립니다
질문&요청
Ghost
25.11.01 1194 -3
[복구요청] BISHOP 념글에서 없는거
질문&요청
QIL
25.11.01 1846 0
2달만에 분위기가 확바뀌었네 아주
일반
고르세르크
25.10.31 9154 14
옆동네 면시 번역가 공유 금지됐네 ㅋㅋ
일반
Ghost
25.10.30 5361 -43
'ㅅㅁ국룰' 보이면 비추 박으세요.
일반
sagigsa
25.10.30 3970 -10
복구요청)[RJ01239911] 새벽을 기다리는 별들에게
질문&요청
하늘의 별따기
25.10.30 3091 0
아마카노 3 복구 부탁드립니다...
질문&요청
ppoppona
25.10.30 1211 0
[보이스코믹] 참회구멍, 내가 왜 이딴 놈에게 못 이기는 거야
소리
만갤러
25.10.30 21319 135
[복구요청] PIN-POINT(ピンポイント) 게임 모음집
질문&요청
krnkivkvw
25.10.29 3571 8
[복구요청] 롤플레이어3 부탁드립니다..
질문&요청
7766942
25.10.29 2317 -2