feat: mock when running locally

This commit is contained in:
Cory Dransfeldt 2024-02-08 16:42:17 -08:00
parent 12f4929dd3
commit 6757a60134
No known key found for this signature in database
22 changed files with 1342 additions and 300 deletions

View file

@ -9,60 +9,64 @@ export default async function () {
const MUSIC_KEY = process.env.API_KEY_LASTFM
const LISTENBRAINZ_TOKEN = process.env.LISTENBRAINZ_TOKEN
const url = `https://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=coryd_&api_key=${MUSIC_KEY}&format=json&limit=200`
const res = EleventyFetch(url, {
duration: '1h',
type: 'json',
}).catch()
const data = await res
let submissions = []
data['recenttracks']['track'].forEach((track) => {
let artistMbid = track['artist']['mbid']['mbid']
if (process.env.ELEVENTY_PRODUCTION) {
const res = EleventyFetch(url, {
duration: '1h',
type: 'json',
}).catch()
const data = await res
let submissions = []
data['recenttracks']['track'].forEach((track) => {
let artistMbid = track['artist']['mbid']['mbid']
// mbid mismatches
if (mbidMap(track['artist']['#text']) !== '') artistMbid = mbidMap(track['artist']['#text'])
// mbid mismatches
if (mbidMap(track['artist']['#text']) !== '') artistMbid = mbidMap(track['artist']['#text'])
if (track['date'])
submissions.push({
track_metadata: {
track_name: track['name'],
artist_name: track['artist']['#text'],
release_name: track['album']['#text'],
additional_info: {
submission_client: 'coryd.dev last.fm importer',
lastfm_track_mbid: track['mbid'],
lastfm_release_mbid: track['album']['mbid'],
lastfm_artist_mbid: artistMbid,
if (track['date'])
submissions.push({
track_metadata: {
track_name: track['name'],
artist_name: track['artist']['#text'],
release_name: track['album']['#text'],
additional_info: {
submission_client: 'coryd.dev last.fm importer',
lastfm_track_mbid: track['mbid'],
lastfm_release_mbid: track['album']['mbid'],
lastfm_artist_mbid: artistMbid,
},
},
},
listened_at: track['date']['uts'],
})
})
listened_at: track['date']['uts'],
})
})
await fetch('https://api.listenbrainz.org/1/submit-listens', {
method: 'POST',
headers: {
Accept: 'application/json',
Authorization: `Token ${LISTENBRAINZ_TOKEN}`,
},
body: JSON.stringify({
listen_type: 'import',
payload: submissions,
}),
})
await fetch('https://api.listenbrainz.org/1/submit-listens', {
method: 'POST',
headers: {
Accept: 'application/json',
Authorization: `Token ${LISTENBRAINZ_TOKEN}`,
},
body: JSON.stringify({
listen_type: 'import',
payload: submissions,
}),
})
await fetch('https://api.listenbrainz.org/1/latest-import', {
method: 'POST',
headers: {
Accept: 'application/json',
Authorization: `Token ${LISTENBRAINZ_TOKEN}`,
},
body: JSON.stringify({
service: 'lastfm',
ts: submissions[0]['listened_at'],
}),
})
await fetch('https://api.listenbrainz.org/1/latest-import', {
method: 'POST',
headers: {
Accept: 'application/json',
Authorization: `Token ${LISTENBRAINZ_TOKEN}`,
},
body: JSON.stringify({
service: 'lastfm',
ts: submissions[0]['listened_at'],
}),
})
return {
listenbrainz_submissions: submissions,
return {
listenbrainz_submissions: submissions,
}
} else {
return {}
}
}