kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4562 · 좋아요 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
엘리미네이터 카에데(Eliminator kaede 1.2)
번역
L
25.05.31 6193 16
아이리스★크로니클
번역
L
25.05.31 4350 21
데몬즈 루츠1.2.1
번역
L
25.05.31 4096 15
헨타이・프리즌
번역
L
25.05.31 6544 17
쿠노이치 카린 1.2
번역
L
25.05.31 3116 14
괴수 공주 시리즈
번역
L
25.05.31 3655 17
러스트 프리즌 마개조 V4
번역
L
25.05.31 5252 17
혹시 판도라의 상자를 여기에 깔아도 되나요?
질문&요청
villain12
25.05.30 1727 7
셀레스포니아 올클 세이브 부탁드립니다
질문&요청
kerurururung
25.05.29 898 1
RJ01297791 出会い電車 요청 드립니다
질문&요청
karrynmaster
25.05.29 1173 1
섹스테라피스트
영상
jajiboji
25.05.29 13011 44
세례의 함 12 복구요청합니다
질문&요청
dpdjzjs
25.05.29 743 0
개인 창고 서브의 친목질을 고발합니다
정보
manatoki
25.05.29 4682 -5
[요청] futa concoction ch4 part4
질문&요청
qwdm112
25.05.29 746 1
율동의 파라이 있는분?
질문&요청
zzzlee
25.05.29 755 0
[복구] 야에즈 이문기담
번역
lkolko
25.05.29 6217 15
[복구] 패러사이트 스피어 -기생세뇌의 덫-
번역
lkolko
25.05.29 5442 16
요청 ) RJ406483 야에즈 이문기담 부탁드립니다.
질문&요청
방울도둑
25.05.29 625 0
[요청] 패러사이트 스피어 -기생세뇌의 덫- 요청드립니다
질문&요청
slugarder02
25.05.28 845 0
은근히 꼴리는 동인지내용
일반
femdom-kone
25.05.27 1356 0
아하하...하면서 성희롱당하는 만화 추천해줘요
질문&요청
chikub1
25.05.27 1481 1
[복구]검귀 바르고~유명장교 충격 AV데뷔 v1.02
번역
qeqeqeqe
25.05.26 7502 9
[복구]母との性活!ふぁんたじ~어머니와의 성활
번역
qeqeqeqe
25.05.26 7060 16
요청) RJ269335 여름색의 코와레모노 한글패치 요청합니다.
질문&요청
청룡
25.05.26 833 -4
[후타]AgentRedGirl영상 일주일 펑
영상
daramg7777
25.05.26 6599 5
서클 테쿠아 게임 2개 복구요청
질문&요청
khdon
25.05.26 1332 2
후타나리 아이린 외전게임 요청
질문&요청
khdon
25.05.26 1102 1
러브 딜리버리 1, 2 요청
질문&요청
khanl
25.05.25 1587 1
Goons Raid Her 요청
질문&요청
maksani
25.05.25 728 -5
RJ344212 孕辱ヒロインズ 요청
질문&요청
ㅇㅇ
25.05.25 1090 4