montana/Russian/Site/messenger/dist/2465.7ac3bb6843bf15397340.js

2 lines
8.3 KiB
JavaScript
Raw Normal View History

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