@ -1,7 +1,7 @@
// ==UserScript==
// @name PNGExtraEmbed
// @namespace https://coom.tech/
// @version 0.284
// @version 0.285
// @description uhh
// @author You
// @match https://boards.4channel.org/*
@ -109,7 +109,7 @@ const _DOMParser = DOMParser;
var define_BUILD_VERSION_default ;
var init_define_BUILD_VERSION = __ esm ( {
"<define:BUILD_VERSION>" ( ) {
define_BUILD_VERSION_default = [ 0 , 284 ] ;
define_BUILD_VERSION_default = [ 0 , 285 ] ;
}
} ) ;
@ -14171,18 +14171,18 @@ const _DOMParser = DOMParser;
constructor ( reader , strict = true ) {
this . reader = reader ;
this . strict = strict ;
this . stopped = false ;
this . req = 8 ;
this . ptr = 8 ;
this . stopped = false ;
this . repr = import_buffer . Buffer . from ( [ ] ) ;
}
async catchup ( ) {
while ( this . repr . byteLength < this . req ) {
const chunk = await this . reader . read ( ) ;
if ( chunk . done ) {
this . stopped = true ;
if ( this . strict )
throw new Error ( ` Unexpected EOF, got ${ this . repr . byteLength } , required ${ this . req } , ${ chunk . value } ` ) ;
this . stopped = true ;
return ;
}
this . repr = import_buffer . Buffer . concat ( [ this . repr , chunk . value ] ) ;
@ -14198,18 +14198,22 @@ const _DOMParser = DOMParser;
const name = this . repr . slice ( this . ptr + 4 , this . ptr + 8 ) . toString ( ) ;
this . ptr += 4 ;
this . req += length + 4 ;
const pos = this . ptr + length + 8 ;
await this . catchup ( ) ;
const pos = this . ptr ;
yield [
name ,
this . repr . slice ( this . ptr , this . ptr + length + 4 ) ,
this . repr . readUInt32BE ( this . ptr + length + 4 ) ,
async ( ) => {
await this . catchup ( ) ;
return this . repr . slice ( pos , pos + length + 4 ) ;
} ,
async ( ) => {
await this . catchup ( ) ;
return this . repr . readUInt32BE ( this . ptr + length + 4 ) ;
} ,
this . ptr
] ;
this . ptr += length + 8 ;
await this . catchup ( ) ;
if ( this . stopped )
break ;
this . ptr += length + 8 ;
if ( name == "IEND" )
break ;
}
@ -14217,34 +14221,24 @@ const _DOMParser = DOMParser;
async dtor ( ) {
}
} ;
var SyncBufferWriter = class {
constructor ( ) {
this . cumul = [ ] ;
}
write ( b ) {
this . cumul . push ( b ) ;
}
getBuffer ( ) {
return import_buffer . Buffer . concat ( this . cumul ) ;
}
} ;
var PNGEncoder = class {
constructor ( writer ) {
this . writer = writer ;
constructor ( bytes ) {
this . writer = bytes . getWriter ( ) ;
this . writer . write ( import_buffer . Buffer . from ( [ 137 , 80 , 78 , 71 , 13 , 10 , 26 , 10 ] ) ) ;
}
insertchunk ( chunk ) {
async insertchunk ( chunk ) {
let b = import_buffer . Buffer . alloc ( 4 ) ;
const buff = chunk [ 1 ] ;
const buff = await chunk [ 1 ] ( ) ;
b . writeInt32BE ( buff . length - 4 , 0 ) ;
this . writer . write ( b ) ;
this . writer . write ( buff ) ;
await this . writer . write ( b ) ;
await this . writer . write ( buff ) ;
b = import_buffer . Buffer . alloc ( 4 ) ;
b . writeInt32BE ( ( 0 , import_crc_32 . buf ) ( buff ) , 0 ) ;
this . writer . write ( b ) ;
console . log ( "finished inserting" ) ;
await this . writer . write ( b ) ;
}
async dtor ( ) {
this . writer . releaseLock ( ) ;
await this . writer . close ( ) ;
}
} ;
var BufferWriteStream = ( ) => {
@ -17835,7 +17829,7 @@ const _DOMParser = DOMParser;
let buff ;
switch ( name ) {
case "tEXt" :
buff = chunk ;
buff = await chunk ( ) ;
if ( buff . slice ( 4 , 4 + CUM3 . length ) . equals ( CUM3 ) ) {
const k = await decodeCoom3Payload ( buff . slice ( 4 + CUM3 . length ) ) ;
ret . push ( ... k . filter ( ( e ) => e ) . map ( ( e ) => e ) ) ;
@ -17879,7 +17873,7 @@ const _DOMParser = DOMParser;
case "IDAT" :
if ( ret . length )
return ret ;
buff = chunk ;
buff = await chunk ( ) ;
idats . push ( buff . slice ( 4 ) ) ;
case "IEND" :
complete = true ;
@ -17910,6 +17904,16 @@ const _DOMParser = DOMParser;
data . copy ( ret , 4 ) ;
return ret ;
} ;
var BufferWriteStream2 = ( ) => {
let b = import_buffer3 . Buffer . from ( [ ] ) ;
const ret = new WritableStream ( {
write ( chunk ) {
b = import_buffer3 . Buffer . concat ( [ b , chunk ] ) ;
console . log ( "finished appending" ) ;
}
} ) ;
return [ ret , ( ) => b ] ;
} ;
var embedInRawDeflate = ( b , h ) => {
const src = new BitstreamReader2 ( ) ;
const hid = new BitstreamReader2 ( ) ;
@ -17927,8 +17931,8 @@ const _DOMParser = DOMParser;
throw new Error ( "Settings uninit" ) ;
if ( csettings2 . pmeth < 5 ) {
let magic4 = false ;
const bws2 = new SyncBufferWriter ( ) ;
const encoder = new PNGEncoder ( b ws2) ;
const [ writestream2 , extract8 ] = BufferWriteStream2 ( ) ;
const encoder = new PNGEncoder ( write stream 2 ) ;
const decoder = new PNGDecoder ( container . stream ( ) . getReader ( ) ) ;
for await ( const [ name , chunk , crc , offset ] of decoder . chunks ( ) ) {
if ( magic4 && name != "IDAT" )
@ -17937,20 +17941,20 @@ const _DOMParser = DOMParser;
const passed = import_buffer3 . Buffer . from ( injb ) ;
switch ( csettings2 . pmeth ) {
case 0 :
encoder . insertchunk ( [ "tEXt" , buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM3 , passed ] ) ) , 0 , 0 ] ) ;
encoder . insertchunk ( [ "tEXt" , ( ) => Promise . resolve ( buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM3 , passed ] ) ) ) , ( ) => Promise . resolve ( 0 ) , 0 ] ) ;
break ;
case 1 :
xor ( passed , password ) ;
encoder . insertchunk ( [ "tEXt" , buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM4 , import_buffer3 . Buffer . from ( import_buffer3 . Buffer . from ( passed ) . toString ( "base64" ) ) ] ) ) , 0 , 0 ] ) ;
encoder . insertchunk ( [ "tEXt" , ( ) => Promise . resolve ( buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM4 , import_buffer3 . Buffer . from ( import_buffer3 . Buffer . from ( passed ) . toString ( "base64" ) ) ] ) ) ) , ( ) => Promise . resolve ( 0 ) , 0 ] ) ;
break ;
case 2 :
encoder . insertchunk ( [ "tEXt" , buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM5 , import_buffer3 . Buffer . from ( import_buffer3 . Buffer . from ( passed ) . toString ( "base64" ) ) ] ) ) , 0 , 0 ] ) ;
encoder . insertchunk ( [ "tEXt" , ( ) => Promise . resolve ( buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM5 , import_buffer3 . Buffer . from ( import_buffer3 . Buffer . from ( passed ) . toString ( "base64" ) ) ] ) ) ) , ( ) => Promise . resolve ( 0 ) , 0 ] ) ;
break ;
case 3 :
encoder . insertchunk ( [ "tEXt" , buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM6 , import_buffer3 . Buffer . from ( import_buffer3 . Buffer . from ( passed ) . toString ( "base64" ) ) ] ) ) , 0 , 0 ] ) ;
encoder . insertchunk ( [ "tEXt" , ( ) => Promise . resolve ( buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM6 , import_buffer3 . Buffer . from ( import_buffer3 . Buffer . from ( passed ) . toString ( "base64" ) ) ] ) ) ) , ( ) => Promise . resolve ( 0 ) , 0 ] ) ;
break ;
case 4 :
encoder . insertchunk ( [ "tEXt" , buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM7 , import_buffer3 . Buffer . from ( bs58 . encode ( passed ) ) ] ) ) , 0 , 0 ] ) ;
encoder . insertchunk ( [ "tEXt" , ( ) => Promise . resolve ( buildChunk ( "tEXt" , import_buffer3 . Buffer . concat ( [ CUM7 , import_buffer3 . Buffer . from ( bs58 . encode ( passed ) ) ] ) ) ) , ( ) => Promise . resolve ( 0 ) , 0 ] ) ;
break ;
}
magic4 = true ;
@ -17959,23 +17963,23 @@ const _DOMParser = DOMParser;
}
encoder . insertchunk ( [
"IEND" ,
buildChunk ( "IEND" , import_buffer3 . Buffer . from ( [ ] ) ) ,
0 ,
( ) => Promise . resolve ( buildChunk ( "IEND" , import_buffer3 . Buffer . from ( [ ] ) ) ) ,
( ) => Promise . resolve ( 0 ) ,
0
] ) ;
return bws2 . getBuffer ( ) ;
return extract8 ( ) ;
}
let pdec = new PNGDecoder ( container . stream ( ) . getReader ( ) ) ;
const concat = [ ] ;
for await ( const chk of pdec . chunks ( ) )
if ( chk [ 0 ] == "IDAT" )
concat . push ( chk [ 1 ] . slice ( 4 ) ) ;
concat . push ( ( await chk [ 1 ] ( ) ) . slice ( 4 ) ) ;
const comp = import_buffer3 . Buffer . concat ( concat ) ;
const head = comp . slice ( 0 , 2 ) ;
const chksum = comp . slice ( - 4 ) ;
const idatblk = embedInRawDeflate ( comp . slice ( 2 , - 4 ) , injb ) ;
const bws = new SyncBufferWriter ( ) ;
const penc = new PNGEncoder ( b ws) ;
const [ writestream , extract7 ] = BufferWriteStream2 ( ) ;
const penc = new PNGEncoder ( write stream ) ;
pdec = new PNGDecoder ( container . stream ( ) . getReader ( ) ) ;
let ins = false ;
for await ( const chk of pdec . chunks ( ) ) {
@ -17983,14 +17987,14 @@ const _DOMParser = DOMParser;
penc . insertchunk ( chk ) ;
} else {
if ( ! ins ) {
penc . insertchunk ( [ "IDAT" , import_buffer3 . Buffer . concat ( [ import_buffer3 . Buffer . from ( "IDAT" ) , head , idatblk , chksum ] ) , 0 , 0 ] ) ;
penc . insertchunk ( [ "IDAT" , ( ) => Promise . resolve ( import_buffer3 . Buffer . concat ( [ import_buffer3 . Buffer . from ( "IDAT" ) , head , idatblk , chksum ] ) ) , ( ) => Promise . resolve ( 0 ) , 0 ] ) ;
ins = true ;
}
}
}
await penc . dtor ( ) ;
console . log ( "Finished writing" ) ;
return bws . getBuffer ( ) ;
return extract7 ( ) ;
} ;
var inject = async ( container , links ) => {
links = links . map ( ( link ) => {