From 756b9e122e8aa7fd71ff145a1e649dd676cfe9e5 Mon Sep 17 00:00:00 2001 From: hazycora Date: Mon, 29 Jul 2024 10:16:07 -0500 Subject: [PATCH] lint deezer pls dont forget to do this sob --- src/streamers/deezer/main.ts | 63 +++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/src/streamers/deezer/main.ts b/src/streamers/deezer/main.ts index 9dc10cb..58f5fdf 100644 --- a/src/streamers/deezer/main.ts +++ b/src/streamers/deezer/main.ts @@ -82,7 +82,7 @@ export default class Deezer implements StreamerWithLogin { let apiToken = this.apiToken if (method == 'deezer.getUserData' || method == 'user.getArl') apiToken = '' - let url = `${GW_LIGHT_URL}?${new URLSearchParams({ + const url = `${GW_LIGHT_URL}?${new URLSearchParams({ method, input: '3', api_version: '1.0', @@ -90,12 +90,12 @@ export default class Deezer implements StreamerWithLogin { cid: Math.floor(Math.random() * 1e9).toString() })}` - let body = data ? JSON.stringify(data) : undefined - let req = await fetch(url, { method: 'POST', body, headers: this.headers }) - let { results: res, error, payload } = (await req.json()) as any + const body = data ? JSON.stringify(data) : undefined + const req = await fetch(url, { method: 'POST', body, headers: this.headers }) + const { results: res, error, payload } = (await req.json()) as any if (error.constructor.name == 'Object') { - let [type, msg] = Object.entries(error)[0] + const [type, msg] = Object.entries(error)[0] throw new Error(`API Error: ${type}\n${msg}\n\nPayload: ${payload}`) } @@ -123,7 +123,7 @@ export default class Deezer implements StreamerWithLogin { async #loginViaArl(arl: string) { this.arl = arl this.headers['Cookie'] = `arl=${arl}` - let userData = await this.#apiCall('deezer.getUserData') + const userData = await this.#apiCall('deezer.getUserData') if (userData.USER.USER_ID == 0) { delete this.headers['Cookie'] @@ -150,7 +150,7 @@ export default class Deezer implements StreamerWithLogin { password = this.#md5(password) - let loginReq = await fetch( + const loginReq = await fetch( `https://connect.deezer.com/oauth/user_auth.php?${new URLSearchParams({ app_id: CLIENT_ID, login: username, @@ -163,7 +163,7 @@ export default class Deezer implements StreamerWithLogin { if (error) throw new Error('Error while getting access token, check your credentials') - let arl = await this.#apiCall('user.getArl') + const arl = await this.#apiCall('user.getArl') await this.#loginViaArl(arl) } @@ -171,19 +171,19 @@ export default class Deezer implements StreamerWithLogin { /* ---------- SEARCH ---------- */ async search(query: string, limit: number): Promise { - let results = await Promise.all([ + const results = await Promise.all([ this.#searchArtists(query, limit), this.#searchAlbums(query, limit), this.#searchTracks(query, limit) ]) - let [artists, albums, tracks] = results + const [artists, albums, tracks] = results return { query, albums, tracks, artists } } async #searchArtists(query: string, limit: number): Promise { - let { data } = await this.#apiCall('search.music', { + const { data } = await this.#apiCall('search.music', { query, start: 0, nb: limit, @@ -194,7 +194,7 @@ export default class Deezer implements StreamerWithLogin { } async #searchAlbums(query: string, limit: number): Promise { - let { data } = await this.#apiCall('search.music', { + const { data } = await this.#apiCall('search.music', { query, start: 0, nb: limit, @@ -205,7 +205,7 @@ export default class Deezer implements StreamerWithLogin { } async #searchTracks(query: string, limit: number): Promise { - let { data } = await this.#apiCall('search.music', { + const { data } = await this.#apiCall('search.music', { query, start: 0, nb: limit, @@ -218,8 +218,8 @@ export default class Deezer implements StreamerWithLogin { /* ---------- GET INFO FROM URL ---------- */ async #unshortenUrl(url: URL): Promise { - let res = await fetch(url, { redirect: 'manual' }) - let location = res.headers.get('Location') + const res = await fetch(url, { redirect: 'manual' }) + const location = res.headers.get('Location') if (res.status != 302 || !location) throw new Error('URL not supported') @@ -229,17 +229,17 @@ export default class Deezer implements StreamerWithLogin { async #getInfoFromUrl(url: URL): Promise<{ type: ItemType; id: number }> { if (url.hostname == 'deezer.page.link') url = await this.#unshortenUrl(url) - let match = url.pathname.match(/^\/(?:[a-z]{2}\/)?(track|album|artist)\/(\d+)\/?$/) + const match = url.pathname.match(/^\/(?:[a-z]{2}\/)?(track|album|artist)\/(\d+)\/?$/) if (!match) throw new Error('URL not supported') - let [, type, id] = match + const [, type, id] = match return { type: type, id: parseInt(id) } } async getTypeFromUrl(url: string): Promise { - let urlObj = new URL(url) - let { type } = await this.#getInfoFromUrl(urlObj) + const urlObj = new URL(url) + const { type } = await this.#getInfoFromUrl(urlObj) return type } @@ -248,7 +248,7 @@ export default class Deezer implements StreamerWithLogin { // Artist async #getArtist(id: number): Promise { - let { DATA, TOP, ALBUMS } = await this.#apiCall('deezer.pageArtist', { + const { DATA, TOP, ALBUMS } = await this.#apiCall('deezer.pageArtist', { art_id: id, lang: 'en' }) @@ -259,7 +259,7 @@ export default class Deezer implements StreamerWithLogin { // Album async #getAlbum(id: number): Promise<{ metadata: Album; tracks: Track[] }> { - let { DATA, SONGS } = await this.#apiCall('deezer.pageAlbum', { + const { DATA, SONGS } = await this.#apiCall('deezer.pageAlbum', { alb_id: id, lang: 'en' }) @@ -338,7 +338,7 @@ export default class Deezer implements StreamerWithLogin { const chunk = c let chunkBytesRead = 0 while (chunkBytesRead != chunk.length) { - let slice = chunk.subarray( + const slice = chunk.subarray( chunkBytesRead, chunkBytesRead + (chunkSize - (bufSize % chunkSize)) ) @@ -401,7 +401,7 @@ export default class Deezer implements StreamerWithLogin { }) ).TRACK_TOKEN - let req = await fetch('https://media.deezer.com/v1/get_url', { + const req = await fetch('https://media.deezer.com/v1/get_url', { method: 'POST', body: JSON.stringify({ license_token: this.licenseToken, @@ -414,7 +414,7 @@ export default class Deezer implements StreamerWithLogin { track_tokens: [trackToken] }) }) - let res = (await req.json()) as any + const res = (await req.json()) as any return res.data[0].media[0].sources[0].url } @@ -430,22 +430,24 @@ export default class Deezer implements StreamerWithLogin { return key } - async getByUrl(url: string, limit?: number | undefined): Promise { - let { type, id } = await this.#getInfoFromUrl(new URL(url)) + async getByUrl(url: string): Promise { + const { type, id } = await this.#getInfoFromUrl(new URL(url)) switch (type) { - case 'artist': + case 'artist': { return { type: 'artist', metadata: await this.#getArtist(id) } - case 'album': + } + case 'album': { return { type: 'album', ...(await this.#getAlbum(id)) } - case 'track': - let track = await this.#getTrackData(id) + } + case 'track': { + const track = await this.#getTrackData(id) return { type: 'track', metadata: parseTrack(track), @@ -453,6 +455,7 @@ export default class Deezer implements StreamerWithLogin { return this.#getStream(track) } } + } default: throw new Error('URL unrecognised') }