montana/Russian/Site/messenger/dist/8409.818ca961547510c632c9.js

2 lines
16 KiB
JavaScript
Raw Normal View History

2026-05-18 18:05:32 +03:00
"use strict";(self.webpackChunkmontana_messenger=self.webpackChunkmontana_messenger||[]).push([[2465,8409],{62465(e,t,a){a.r(t),a.d(t,{FlacParser:()=>p});var s=a(17833),r=a(4017),i=a(92304),n=a(94481),o=a(5031),h=a(27232),g=a(61902),m=a(63324),d=a(54489);const c=s("music-metadata:parser:FLAC");class l extends((0,m.fO)("FLAC")){}class p extends n.k{constructor(){super(...arguments),this.vorbisParser=new h._(this.metadata,this.options)}async postId3v2Parse(){if("fLaC"!==(await this.tokenizer.readToken(o.e)).toString())throw new l("Invalid FLAC preamble");let e;do{e=await this.tokenizer.readToken(d.Tw),await this.parseDataBlock(e)}while(!e.lastBlock);if(this.tokenizer.fileInfo.size&&this.metadata.format.duration){const e=this.tokenizer.fileInfo.size-this.tokenizer.position;this.metadata.setFormat("bitrate",8*e/this.metadata.format.duration)}}async parseDataBlock(e){switch(c(`blockHeader type=${e.type}, length=${e.length}`),e.type){case d._B.STREAMINFO:return this.readBlockStreamInfo(e.length);case d._B.PADDING:case d._B.APPLICATION:case d._B.SEEKTABLE:break;case d._B.VORBIS_COMMENT:return this.readComment(e.length);case d._B.CUESHEET:break;case d._B.PICTURE:return void await this.parsePicture(e.length);default:this.metadata.addWarning(`Unknown block type: ${e.type}`)}return this.tokenizer.ignore(e.length).then()}async readBlockStreamInfo(e){if(e!==d.om.len)throw new l("Unexpected block-stream-info length");const t=await this.tokenizer.readToken(d.om);this.metadata.setFormat("container","FLAC"),this.processsStreamInfo(t)}processsStreamInfo(e){this.metadata.setFormat("codec","FLAC"),this.metadata.setFormat("hasAudio",!0),this.metadata.setFormat("lossless",!0),this.metadata.setFormat("numberOfChannels",e.channels),this.metadata.setFormat("bitsPerSample",e.bitsPerSample),this.metadata.setFormat("sampleRate",e.sampleRate),e.totalSamples>0&&this.metadata.setFormat("duration",e.totalSamples/e.sampleRate)}async readComment(e){const t=await this.tokenizer.readToken(new r.Uint8ArrayType(e));return this.parseComment(t)}async parseComment(e){const t=new g.Y(e,0),a=t.readStringUtf8();a.length>0&&this.metadata.setFormat("tool",a);const s=t.readInt32(),r=new Array(s);for(let e=0;e<s;e++)r[e]=t.parseUserComment();await Promise.all(r.map(e=>("ENCODER"===e.key&&this.metadata.setFormat("tool",e.value),this.addTag(e.key,e.value))))}async parsePicture(e){return this.options.skipCovers?this.tokenizer.ignore(e):this.addPictureTag(await this.tokenizer.readToken(new i.xu(e)))}addPictureTag(e){return this.addTag("METADATA_BLOCK_PICTURE",e)}addTag(e,t){return this.vorbisParser.addTag(e,t)}}},54489(e,t,a){a.d(t,{Tw:()=>n,_B:()=>i,om:()=>o});var s=a(56185),r=a(4017);const i={STREAMINFO:0,PADDING:1,APPLICATION:2,SEEKTABLE:3,VORBIS_COMMENT:4,CUESHEET:5,PICTURE:6},n={len:4,get:(e,t)=>({lastBlock:s.mh(e,t,7),type:s.f5(e,t,1,7),length:r.UINT24_BE.get(e,t+1)})},o={len:34,get:(e,t)=>({minimumBlockSize:r.UINT16_BE.get(e,t),maximumBlockSize:r.UINT16_BE.get(e,t+2)/1e3,minimumFrameSize:r.UINT24_BE.get(e,t+4),maximumFrameSize:r.UINT24_BE.get(e,t+7),sampleRate:r.UINT24_BE.get(e,t+10)>>4,channels:s.f5(e,t+12,4,3)+1,bitsPerSample:s.f5(e,t+12,7,5)+1,totalSamples:s.f5(e,t+13,4,36),fileMD5:new r.Uint8ArrayType(16).get(e,t+18)})}},94481(e,t,a){a.d(t,{k:()=>m});var s=a(10718),r=a(17833),i=a(47675),n=a(80400),o=a(68191),h=a(74604);const g=r("music-metadata:parser:ID3");class m extends h.s{constructor(){super(...arguments),this.id3parser=new n.S}static async startsWithID3v2Header(e){return"ID3"===(await e.peekToken(i.yW)).fileIdentifier}async parse(){try{await this.parseID3v2()}catch(e){if(!(e instanceof s.d1))throw e;g("End-of-stream")}}finalize(){}async parseID3v2(){if(await this.tryReadId3v2Headers(),g("End of ID3v2 header, go to MPEG-parser: pos=%s",this.tokenizer.position),await this.postId3v2Parse(),this.options.skipPostHeaders&&this.metadata.hasAny())this.finalize();else{const e=new o.Bn(this.metadata,this.tokenizer,this.options);await e.parse(),this.finalize()}}async tryReadId3v2Headers(){if("ID3"===(await this.tokenizer.peekToken(i.yW)).fileIdentifier)return g("Fo
//# sourceMappingURL=8409.818ca961547510c632c9.js.map