diff --git a/.env b/.env index 63ef3dfc..5a1627bb 100644 --- a/.env +++ b/.env @@ -5,4 +5,5 @@ API_KEY_MOVIEDB= API_KEY_WEBMENTIONS_CORYD_DEV= API_TOKEN_READWISE= SECRET_FEED_ALBUM_RELEASES= -COOKIE_STORYGRAPH= \ No newline at end of file +COOKIE_STORYGRAPH= +LISTENBRAINZ_TOKEN= \ No newline at end of file diff --git a/package.json b/package.json index a2cd7619..30b2b76a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "2.2.4", + "version": "2.3.0", "description": "The source for my personal site, blog and portfolio. Built using 11ty and hosted on Netlify.", "main": "index.html", "scripts": { diff --git a/src/_data/tracks.js b/src/_data/tracks.js new file mode 100644 index 00000000..9bf14e6f --- /dev/null +++ b/src/_data/tracks.js @@ -0,0 +1,68 @@ +const EleventyFetch = require('@11ty/eleventy-fetch') +const mbidPatches = require('./json/mbid-patches.json') + +const mbidMap = (artist) => { + return mbidPatches[artist.toLowerCase()] || '' +} + +module.exports = 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 + const submission = data['recenttracks']['track'].map((track) => { + let artistMbid = track['artist']['mbid']['mbid'] + + // mbid mismatches + if (mbidMap(track['artist']['#text']) !== '') artistMbid = mbidMap(track['artist']['#text']) + + return { + 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'], + } + }) + + 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: submission, + }), + }) + + 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: submission[0]['listened_at'], + }), + }) + console.log({ + listenbrainz_submission: submission, + }) + return { + listenbrainz_submission: submission, + } +} diff --git a/src/assets/styles/tailwind.css b/src/assets/styles/tailwind.css index 51c553a7..607ee8b1 100644 --- a/src/assets/styles/tailwind.css +++ b/src/assets/styles/tailwind.css @@ -1,5 +1,5 @@ /* -! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com +! tailwindcss v3.3.6 | MIT License | https://tailwindcss.com */ /* @@ -121,8 +121,10 @@ strong { } /* -1. Use the user's configured `mono` font family by default. -2. Correct the odd `em` font sizing in all browsers. +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. */ code, @@ -131,8 +133,12 @@ samp, pre { font-family: ml, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */ - font-size: 1em; + font-feature-settings: normal; /* 2 */ + font-variation-settings: normal; + /* 3 */ + font-size: 1em; + /* 4 */ } /*