UNPKG

nuxtify-api

Version:

Lightweight music API for client without third-party libraries.

1 lines 2.31 kB
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,i,s){return new(i||(i=Promise))((function(r,c){function a(e){try{n(s.next(e))}catch(e){c(e)}}function h(e){try{n(s.throw(e))}catch(e){c(e)}}function n(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(a,h)}n((s=s.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Base=void 0;const crypto_1=require("crypto"),baseURL="https://zingmp3.vn";class Base{constructor(e,t){this.version="0",this.ctime="0",this.secretKey=t||"acOrvUS15XRW2o9JksiK1KgQ6Vbds8ZW",this.apiKey=e||"X5BM3w8N7MKozC0B85o4KMlzLZKhV00y"}createHash256(e){return(0,crypto_1.createHash)("sha256").update(e).digest("hex")}createHmac512(e,t){return(0,crypto_1.createHmac)("sha512",t).update(e).digest("hex")}getCookie(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield fetch(baseURL);return e.headers.getSetCookie().join(";")}catch(e){throw e}}))}createRequest(e,t){return __awaiter(this,void 0,void 0,(function*(){try{const i=yield this.getCookie(),s=new URLSearchParams(Object.assign(Object.assign({},t),{version:this.version,ctime:this.ctime,apiKey:this.apiKey})),r=yield fetch(`${baseURL+e}?${s}`,{headers:{cookie:i}});return yield r.json()}catch(e){throw e}}))}createHomeSig(e){return this.createHmac512(e+this.createHash256(`count=30ctime=${this.ctime}page=1version=${this.version}`),this.secretKey)}createPodcastSig(e,t){return this.createHmac512(e+this.createHash256(`count=20ctime=${this.ctime}page=1type=${t}version=${this.version}`),this.secretKey)}createSearchSig(e,t,i){return this.createHmac512(e+this.createHash256(`count=20ctime=${this.ctime}page=${i}type=${t}version=${this.version}`),this.secretKey)}createCommentSig(e,t){return this.createHmac512(e+this.createHash256(`count=50ctime=${this.ctime}id=${t}version=${this.version}`),this.secretKey)}createIdSig(e,t){return this.createHmac512(e+this.createHash256(`ctime=${this.ctime}id=${t}version=${this.version}`),this.secretKey)}createNoIdSig(e){return this.createHmac512(e+this.createHash256(`ctime=${this.ctime}version=${this.version}`),this.secretKey)}createSuggestSig(e){return this.createHmac512(e+this.createHash256(`ctime=${this.ctime}language=vinum=10version=${this.version}`),this.secretKey)}}exports.Base=Base;