Major code rework
This commit is contained in:
@@ -3,7 +3,7 @@ import type { RequestHandler } from 'express'
|
||||
import { Deezer } from 'deezer-js'
|
||||
|
||||
import type { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
export interface RawAlbumQuery {
|
||||
term: string
|
||||
|
||||
@@ -5,7 +5,7 @@ import deemix from 'deemix'
|
||||
import { Deezer } from 'deezer-js'
|
||||
|
||||
import type { ApiHandler, GetTrackResponse, GetAlbumResponse } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
export interface AnalyzeQuery {
|
||||
term?: string
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { getLatestVersion, isUpdateAvailable } from '../../../main'
|
||||
|
||||
const path: ApiHandler['path'] = '/checkForUpdates'
|
||||
|
||||
const handler: ApiHandler['handler'] = async (_, res) => {
|
||||
const latestCommit = await getLatestVersion()
|
||||
const handler: ApiHandler['handler'] = async (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
const latestCommit = await deemix.getLatestVersion()
|
||||
res.send({
|
||||
latestCommit,
|
||||
updateAvailable: isUpdateAvailable()
|
||||
updateAvailable: deemix.isUpdateAvailable()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { RequestHandler } from 'express'
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
import { isObjectEmpy } from '../../../helpers/primitive-checks'
|
||||
import { BadRequestError, isBadRequestError, consoleError } from '../../../helpers/errors'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getCharts'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getHome'
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
// import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { getQueue } from '../../../main'
|
||||
|
||||
const path: ApiHandler['path'] = '/getQueue'
|
||||
|
||||
// let homeCache: any
|
||||
|
||||
const handler: ApiHandler['handler'] = (_, res) => {
|
||||
const result: any = getQueue()
|
||||
const handler: ApiHandler['handler'] = (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
const result: any = deemix.getQueue()
|
||||
res.send(result)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { getSettings } from '../../../main'
|
||||
|
||||
const path: ApiHandler['path'] = '/getSettings'
|
||||
|
||||
const handler: ApiHandler['handler'] = (_, res) => {
|
||||
res.send(getSettings())
|
||||
const handler: ApiHandler['handler'] = (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
res.send(deemix.getSettings())
|
||||
}
|
||||
|
||||
const apiHandler: ApiHandler = { path, handler }
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ, plugins } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getTracklist'
|
||||
|
||||
const handler: ApiHandler['handler'] = async (req, res) => {
|
||||
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
|
||||
const dz = sessionDZ[req.session.id]
|
||||
const deemix = req.app.get('deemix')
|
||||
|
||||
const list_id = String(req.query.id)
|
||||
const list_type = String(req.query.type)
|
||||
@@ -20,7 +21,7 @@ const handler: ApiHandler['handler'] = async (req, res) => {
|
||||
}
|
||||
case 'spotifyplaylist':
|
||||
case 'spotify_playlist': {
|
||||
if (!plugins.spotify.enabled) {
|
||||
if (!deemix.plugins.spotify.enabled) {
|
||||
res.send({
|
||||
collaborative: false,
|
||||
description: '',
|
||||
@@ -40,7 +41,7 @@ const handler: ApiHandler['handler'] = async (req, res) => {
|
||||
})
|
||||
break
|
||||
}
|
||||
const sp = plugins.spotify.sp
|
||||
const sp = deemix.plugins.spotify.sp
|
||||
let playlist = await sp.getPlaylist(list_id)
|
||||
playlist = playlist.body
|
||||
let tracklist = playlist.tracks.items
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getUserAlbums'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getUserArtists'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getUserFavorites'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getUserPlaylists'
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { plugins } from '../../../main'
|
||||
|
||||
const path: ApiHandler['path'] = '/getUserSpotifyPlaylists'
|
||||
|
||||
const handler: ApiHandler['handler'] = async (req, res) => {
|
||||
let data
|
||||
const deemix = req.app.get('deemix')
|
||||
|
||||
if (plugins.spotify.enabled) {
|
||||
const sp = plugins.spotify.sp
|
||||
if (deemix.plugins.spotify.enabled) {
|
||||
const sp = deemix.plugins.spotify.sp
|
||||
const username = req.query.spotifyUser
|
||||
data = []
|
||||
let playlists = await sp.getUserPlaylists(username)
|
||||
@@ -22,7 +22,7 @@ const handler: ApiHandler['handler'] = async (req, res) => {
|
||||
playlistList = playlistList.concat(playlists.items)
|
||||
}
|
||||
playlistList.forEach((playlist: any) => {
|
||||
data.push(plugins.spotify._convertPlaylistStructure(playlist))
|
||||
data.push(deemix.plugins.spotify._convertPlaylistStructure(playlist))
|
||||
})
|
||||
} else {
|
||||
data = { error: 'spotifyNotEnabled' }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/getUserTracks'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/mainSearch'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
import { getAlbumDetails } from './albumSearch'
|
||||
|
||||
const path: ApiHandler['path'] = '/newReleases'
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/search'
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { plugins } from '../../../main'
|
||||
|
||||
const path: ApiHandler['path'] = '/spotifyStatus'
|
||||
|
||||
const handler: ApiHandler['handler'] = (_, res) => {
|
||||
res.send({ spotifyEnabled: plugins.spotify.enabled })
|
||||
const handler: ApiHandler['handler'] = (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
res.send({ spotifyEnabled: deemix.plugins.spotify.enabled })
|
||||
}
|
||||
|
||||
const apiHandler: ApiHandler = { path, handler }
|
||||
|
||||
@@ -1,26 +1,27 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ, addToQueue, getSettings, listener } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/addToQueue'
|
||||
|
||||
const handler: ApiHandler['handler'] = async (req, res) => {
|
||||
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
|
||||
const deemix = req.app.get('deemix')
|
||||
const dz = sessionDZ[req.session.id]
|
||||
|
||||
const url = req.body.url.split(/[\s;]+/)
|
||||
let bitrate = req.body.bitrate
|
||||
if (bitrate === 'null' || bitrate === null) bitrate = getSettings().settings.maxBitrate
|
||||
if (bitrate === 'null' || bitrate === null) bitrate = deemix.getSettings().settings.maxBitrate
|
||||
let obj: any
|
||||
|
||||
try {
|
||||
obj = await addToQueue(dz, url, bitrate)
|
||||
obj = await deemix.addToQueue(dz, url, bitrate)
|
||||
} catch (e) {
|
||||
switch (e.name) {
|
||||
case 'NotLoggedIn':
|
||||
res.send({ result: false, errid: e.name, data: { url, bitrate } })
|
||||
listener.send('loginNeededToDownload')
|
||||
deemix.listener.send('loginNeededToDownload')
|
||||
break
|
||||
default:
|
||||
console.error(e)
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { cancelAllDownloads } from '../../../main'
|
||||
|
||||
const path = '/cancelAllDownloads'
|
||||
|
||||
const handler: ApiHandler['handler'] = (_, res) => {
|
||||
cancelAllDownloads()
|
||||
const handler: ApiHandler['handler'] = (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
deemix.cancelAllDownloads()
|
||||
res.send({ result: true })
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { RequestHandler } from 'express'
|
||||
import { Deezer } from 'deezer-js'
|
||||
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/changeAccount'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { RequestHandler } from 'express'
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { sessionDZ, startQueue, isDeezerAvailable } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
import { ApiHandler } from '../../../types'
|
||||
|
||||
export interface RawLoginArlBody {
|
||||
@@ -21,6 +21,7 @@ const path: ApiHandler['path'] = '/loginArl'
|
||||
|
||||
const handler: RequestHandler<{}, {}, RawLoginArlBody, {}> = async (req, res, _) => {
|
||||
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
|
||||
const deemix = req.app.get('deemix')
|
||||
const dz = sessionDZ[req.session.id]
|
||||
|
||||
if (!req.body) {
|
||||
@@ -58,7 +59,7 @@ const handler: RequestHandler<{}, {}, RawLoginArlBody, {}> = async (req, res, _)
|
||||
response = await testDz.login_via_arl(...loginParams)
|
||||
}
|
||||
if (response === LoginStatus.FAILED) sessionDZ[req.session.id] = new Deezer()
|
||||
if (!(await isDeezerAvailable())) response = LoginStatus.NOT_AVAILABLE
|
||||
if (!(await deemix.isDeezerAvailable())) response = LoginStatus.NOT_AVAILABLE
|
||||
const returnValue = {
|
||||
status: response,
|
||||
arl: req.body.arl,
|
||||
@@ -67,7 +68,7 @@ const handler: RequestHandler<{}, {}, RawLoginArlBody, {}> = async (req, res, _)
|
||||
currentChild: dz.selected_account
|
||||
}
|
||||
|
||||
if (response !== LoginStatus.NOT_AVAILABLE && response !== LoginStatus.FAILED) startQueue(dz)
|
||||
if (response !== LoginStatus.NOT_AVAILABLE && response !== LoginStatus.FAILED) deemix.startQueue(dz)
|
||||
return res.status(200).send(returnValue)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { getAccessToken, getArlFromAccessToken } from '../../../main'
|
||||
import { getAccessToken, getArlFromAccessToken } from '../../../app'
|
||||
|
||||
const path = '/loginEmail'
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { sessionDZ } from '../../../main'
|
||||
import { sessionDZ } from '../../../app'
|
||||
|
||||
const path: ApiHandler['path'] = '/logout'
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { clearCompletedDownloads } from '../../../main'
|
||||
|
||||
const path = '/removeFinishedDownloads'
|
||||
|
||||
const handler: ApiHandler['handler'] = (_, res) => {
|
||||
clearCompletedDownloads()
|
||||
const handler: ApiHandler['handler'] = (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
deemix.clearCompletedDownloads()
|
||||
res.send({ result: true })
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import { ApiHandler } from '../../../types'
|
||||
import { cancelDownload } from '../../../main'
|
||||
|
||||
const path = '/removeFromQueue'
|
||||
|
||||
const handler: ApiHandler['handler'] = (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
const { uuid } = req.query
|
||||
if (uuid) {
|
||||
cancelDownload(uuid)
|
||||
deemix.cancelDownload(uuid)
|
||||
res.send({ result: true })
|
||||
} else {
|
||||
res.send({ result: false })
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { ApiHandler, Settings, SpotifySettings } from '../../../types'
|
||||
import { saveSettings, listener } from '../../../main'
|
||||
|
||||
const path = '/saveSettings'
|
||||
|
||||
@@ -9,9 +8,10 @@ export interface SaveSettingsData {
|
||||
}
|
||||
|
||||
const handler: ApiHandler['handler'] = (req, res) => {
|
||||
const deemix = req.app.get('deemix')
|
||||
const { settings, spotifySettings }: SaveSettingsData = req.query
|
||||
saveSettings(settings, spotifySettings)
|
||||
listener.send('updateSettings', { settings, spotifySettings })
|
||||
deemix.saveSettings(settings, spotifySettings)
|
||||
deemix.listener.send('updateSettings', { settings, spotifySettings })
|
||||
res.send({ result: true })
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user