Added correct deemix lib version + check deezer availability
This commit is contained in:
@@ -4,6 +4,7 @@ import { v4 as uuidv4 } from 'uuid'
|
||||
// @ts-expect-error
|
||||
import deemix from 'deemix'
|
||||
import WebSocket from 'ws'
|
||||
import got from 'got'
|
||||
import { wss } from './app'
|
||||
import { Settings } from './types'
|
||||
import { NotLoggedIn } from './helpers/errors'
|
||||
@@ -18,6 +19,21 @@ let settings: any = deemix.settings.load(configFolder)
|
||||
export const getAccessToken = deemix.utils.deezer.getAccessToken
|
||||
export const getArlFromAccessToken = deemix.utils.deezer.getArlFromAccessToken
|
||||
|
||||
export const deemixVersion = require('../../node_modules/deemix/package.json').version
|
||||
export let deezerAvailable: boolean | null = null
|
||||
|
||||
export async function isDeezerAvailable(): Promise<undefined>{
|
||||
let response
|
||||
try {
|
||||
response = await got.get('https://www.deezer.com/', {headers: {'Cookie': 'dz_lang=en; Domain=deezer.com; Path=/; Secure; hostOnly=false;'}})
|
||||
} catch {
|
||||
deezerAvailable = false
|
||||
return
|
||||
}
|
||||
const title = (response.body.match(/<title[^>]*>([^<]+)<\/title>/)![1] || "").trim()
|
||||
deezerAvailable = title !== "Deezer will soon be available in your country."
|
||||
}
|
||||
|
||||
export const plugins: any = {
|
||||
// eslint-disable-next-line new-cap
|
||||
spotify: new deemix.plugins.spotify()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { RequestHandler } from 'express'
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { sessionDZ, startQueue } from '../../../main'
|
||||
import { sessionDZ, startQueue, deezerAvailable, isDeezerAvailable } from '../../../main'
|
||||
import { ApiHandler } from '../../../types'
|
||||
|
||||
export interface RawLoginArlQuery {
|
||||
@@ -22,6 +22,7 @@ const path: ApiHandler['path'] = '/login-arl'
|
||||
const handler: RequestHandler<{}, {}, {}, RawLoginArlQuery> = async (req, res, _) => {
|
||||
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
|
||||
const dz = sessionDZ[req.session.id]
|
||||
if (deezerAvailable === null) await isDeezerAvailable()
|
||||
|
||||
if (!req.query) {
|
||||
return res.status(400).send()
|
||||
@@ -52,6 +53,7 @@ const handler: RequestHandler<{}, {}, {}, RawLoginArlQuery> = async (req, res, _
|
||||
const testDz = new Deezer()
|
||||
response = await testDz.login_via_arl(...loginParams)
|
||||
}
|
||||
if (!deezerAvailable) response = LoginStatus.NOT_AVAILABLE
|
||||
const returnValue = { status: response, arl: req.query.arl, user: dz.current_user }
|
||||
|
||||
startQueue(dz)
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import express from 'express'
|
||||
// @ts-expect-error
|
||||
import { Deezer } from 'deezer-js'
|
||||
import { sessionDZ, getQueue } from '../main'
|
||||
import { sessionDZ, getQueue, deemixVersion, isDeezerAvailable, deezerAvailable } from '../main'
|
||||
|
||||
const router = express.Router()
|
||||
let update: any = null
|
||||
|
||||
/**
|
||||
* GET home page
|
||||
@@ -14,20 +15,25 @@ router.get('/', (_, res) => {
|
||||
res.render('index', { title: 'deemix' })
|
||||
})
|
||||
|
||||
router.get('/connect', (req, res) => {
|
||||
router.get('/connect', async (req, res) => {
|
||||
if (!sessionDZ[req.session.id]) sessionDZ[req.session.id] = new Deezer()
|
||||
const dz = sessionDZ[req.session.id]
|
||||
|
||||
const result: any = {
|
||||
update: {
|
||||
if (!update) {
|
||||
update = {
|
||||
currentCommit: 'testing',
|
||||
latestCommit: 'testing',
|
||||
updateAvailable: false,
|
||||
deemixVersion: '3.0_beta'
|
||||
},
|
||||
deemixVersion
|
||||
}
|
||||
}
|
||||
if (deezerAvailable === null) await isDeezerAvailable()
|
||||
|
||||
const result: any = {
|
||||
update,
|
||||
autologin: !dz.logged_in,
|
||||
currentUser: dz.current_user,
|
||||
deezerNotAvailable: false
|
||||
deezerAvailable
|
||||
}
|
||||
|
||||
const queue = getQueue()
|
||||
|
||||
Reference in New Issue
Block a user