kone
sub_icon

심야시장

Base64 자동 디코더

2025-05-25 18:18:11
유틸
조회 4563 · 좋아요 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
이거 입법되면 심야시장은 커녕 외부로부터 동인지 게임도 못 구함
일반
lamialove
05.05 3485 14
(복구) RJ338582 [いぬすく] 여동생! 생활 ~판타지~ [DLC, 컬러+치트 수정 패치판]
번역
moeum
05.05 3901 9
(복구)[Hending] 소프랜드의 팔척귀신 님 Soap Land no Hasshaku-sama + 모바일 패치
번역
moeum
05.05 4035 9
[복구요청]소프랜드의 팔척귀신님 복구 요청합니다!
질문&요청
arida
05.05 1083 0
(요청) 봄의번데기(春のさなぎ)라는 작품 찾아주시면 정말 감사하겠습니다..
질문&요청
cder1592
05.05 1260 0
여캐를 조교/타락시키는 겜 추천해주세요
질문&요청
nohandleyasuo
05.05 946 0
갈색폭유 X 포동포동 숙녀장 1,2
번역
la-res
05.04 2771 4
잃어버린 동인지를 찾습니다
질문&요청
kokore
05.03 1038 0
(복구)[Old Huntsman] 잭 오 나인 테일 2.2.3 Jack-o-nine-tails 2.2.3(한글판)
번역
moeum
04.30 4049 6
(복구)[CUBE] 상어와 사는 7일간 + 모바일 패치 Same to Ikiru Nanokakan
번역
moeum
04.30 3067 6
Devastate라는 게임을 아시는 분 계신가요
질문&요청
osillo22
04.30 2003 0
동인지 제목 알려줄사람
질문&요청
nanona139700
04.30 971 0
혹시 옛날 심챈 망가 하나 찾아 줄 수 있음?
질문&요청
플러그
04.28 953 0
동인지 찾아줄사람
질문&요청
lostwoods
04.28 890 0
[복구요청] 상어와 사는 7일간 복구요청 드립니다..
질문&요청
patapon
04.27 1265 0
[복구요청] Jack-o-nine-tails(잭오도나)2.2.3 복구요청합니다
질문&요청
dpqkdi
04.27 1921 0
[복구요청]? cocona온라인/ここなonline 한글번역판 요청드립니다.
질문&요청
ggesga
04.27 874 0
형님들 혹시 permit, deny 최신판이 있을까요
질문&요청
sleeplove
04.26 1017 0
[Poison] [Posion Motion] [POISON EXTASY] 비쥬얼 노벨 15종 복구요청
질문&요청
chicken-coop-love
04.25 1037 2
RJ087532(추정)입니다. 게임을 찾고 있습니다...
질문&요청
ggesga
04.25 953 0
가슴크고 태닝한 여우 수인이 문열면서 반겨주는 야겜 아는사람?
질문&요청
bbbbbb2
04.23 1602 1
동인지 하나 찾아 줄 따거
질문&요청
15246
04.22 1140 0
mushangdaren /母上大人 작가 영상 가지고 계신 분 있으신가요?
질문&요청
null
04.21 2461 0
릇작 작품 있우신분..
질문&요청
123aj
04.20 1435 0
[복구요청] RJ01225543 기절무녀 클리발기주술에 걸린 금욕의 무녀 悶絶巫女 クリ勃起呪術をかけられた禁欲の巫女
질문&요청
gemayham
04.19 1718 0
(복구요청)Living With Sister: Monochrome Fantasy 복구요청 드립니다!
질문&요청
yunth
04.17 1338 0
[복구요청] 행복한 니트 키우기 복구 요청 가능할까용?
질문&요청
secacc1123
04.13 1891 0
(복구요청) 빙어딕&나디아의 보물 요청합니다!
질문&요청
iulliio
04.13 1154 4
(복구)미소녀 만화경 시리즈 (설녀 없음)
번역
moeum
04.12 6162 26
미소녀 만화경 복구해도 되나요?
질문&요청
moeum
04.11 1970 2