From 6bcc874243a5e451bd4798c2a2a951db2d92b9f9 Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Thu, 7 Feb 2019 20:04:15 +0200 Subject: [PATCH] add expiry time to in-memory external track files --- src/lastfm.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lastfm.js b/src/lastfm.js index 22a45c8..8a8a716 100644 --- a/src/lastfm.js +++ b/src/lastfm.js @@ -5,6 +5,7 @@ import crypto from 'crypto' const fs = require('fs').promises const values = require(path.join(process.cwd(), 'values.json')) +const memexpire = 1800 let externalTracks = {} let downloadQueue = [] @@ -37,7 +38,11 @@ async function downloadLocally (id) { async function getTrackMetaReal (id) { if (!id || !externalTracks[id]) return null let trdata = externalTracks[id] - if (trdata.file) return Object.assign({}, trdata) + + // Check for expiry + if (trdata.file && trdata.expires > Date.now()) { + return Object.assign({}, trdata) + } let trsrch = 'ytsearch1:' + trdata.artist + ' - ' + trdata.title let dldata = await dl.getVideoInfo(trsrch) @@ -48,6 +53,7 @@ async function getTrackMetaReal (id) { artist: trdata.artist, file: dldata.url, duration: dldata.duration, + expires: Date.now() + memexpire * 1000, external: true } @@ -76,7 +82,8 @@ async function search (track, limit = 30) { id: createHash(res), artist: res.artist, title: res.name, - external: true + external: true, + mbid: res.mbid } if (externalTracks[clean.id]) {