diff --git a/api/now-playing.js b/api/now-playing.js
index 7441e0cb..6bc4074e 100644
--- a/api/now-playing.js
+++ b/api/now-playing.js
@@ -30,90 +30,10 @@ const parseCountryField = (countryField) => {
return countries.map(getCountryName).join(', ')
}
-const emojiMap = (genre, artist) => {
- const DEFAULT = "๐ง"
- const normalizedArtist = artist?.toLowerCase()
- if (normalizedArtist === "afi") return "โต๏ธ๐
"
- if (normalizedArtist === "agalloch") return "๐๏ธ"
- if (normalizedArtist === "american football") return "๐ "
- if (normalizedArtist === "augury") return "โ๏ธ"
- if (normalizedArtist === "autopsy") return "๐ง"
- if (normalizedArtist === "bad religion") return "๐ซโ๏ธ"
- if (normalizedArtist === "balance and composure") return "๐ช"
- if (normalizedArtist === "bedsore") return "๐๏ธ"
- if (normalizedArtist === "birds in row") return "๐ฆ
๐ฆ๐ฆข"
- if (normalizedArtist === "black flag") return "๐ด"
- if (normalizedArtist === "blink-182") return "๐ต"
- if (normalizedArtist === "blood incantation") return "๐ฝ"
- if (normalizedArtist === "bolt thrower") return "โ๏ธ"
- if (normalizedArtist === "bruce springsteen") return "๐บ๐ธ"
- if (normalizedArtist === "carcass") return "๐ฅผ"
- if (normalizedArtist === "cloud rat") return "โ๏ธ๐"
- if (normalizedArtist === "counting crows") return "๐ฆโโฌ"
- if (normalizedArtist === "david bowie") return "๐จ๐ปโ๐ค"
- if (normalizedArtist === "devoid of thought") return "๐ซ๐ญ"
- if (normalizedArtist === "deftones") return "๐ฆ"
- if (normalizedArtist === "drug church") return "๐โช๏ธ"
- if (normalizedArtist === "fleshwater") return "๐ค"
- if (normalizedArtist === "full of hell & nothing") return "๐ซจ๐ธ"
- if (normalizedArtist === "imperial triumphant") return "๐ญ"
- if (normalizedArtist === "mastodon") return "๐"
- if (normalizedArtist === "mineral") return "๐ชจ"
- if (normalizedArtist === "minor threat") return "๐จ๐ปโ๐ฆฒ"
- if (normalizedArtist === "nomeansno") return "๐ต๐ฎ๐ฌ"
- if (normalizedArtist === "nothing") return "๐ณ๏ธ"
- if (normalizedArtist === "panopticon") return "๐ช๐ชฆ"
- if (normalizedArtist === "plunger") return "๐ช "
- if (normalizedArtist === "radiohead") return "๐ป"
- if (normalizedArtist === "soccer mommy") return "โฝ๏ธ"
- if (normalizedArtist === "taylor swift") return "๐ธ๐ผ"
- if (normalizedArtist === "the mars volta") return "๐ก๐ฎ"
- if (normalizedArtist === "thrice") return "๐จโ๐จ๐"
- if (normalizedArtist === "tom waits") return "๐คน๐ป"
- if (normalizedArtist === "webbed wing") return "๐คก"
-
- // early return for bad input
- if (!genre) return DEFAULT
-
- if (genre.includes("death metal") || genre.includes("death-doom")) return "๐"
- if (genre.includes("black metal") || genre.includes("blackgaze")) return "๐ชฆ"
- if (genre.includes("metal")) return "๐ค"
- if (genre.includes("emo") || genre.includes("blues")) return "๐ข"
- if (genre.includes("grind") || genre.includes("powerviolence")) return "๐ซจ"
- if (
- genre.includes("country") ||
- genre.includes("americana") ||
- genre.includes("bluegrass") ||
- genre.includes("folk") ||
- genre.includes("songwriter")
- )
- return "๐ช"
- if (genre.includes("post-punk")) return "๐"
- if (genre.includes("dance-punk")) return "๐ชฉ"
- if (genre.includes("punk") || genre.includes("hardcore")) return "โ"
- if (genre.includes("hip hop")) return "๐ค"
- if (genre.includes("hip-hop")) return "๐ค"
- if (genre.includes("progressive") || genre.includes("experimental"))
- return "๐ค"
- if (genre.includes("jazz")) return "๐บ"
- if (genre.includes("psychedelic")) return "๐"
- if (genre.includes("dance") || genre.includes("electronic")) return "๐ป"
- if (genre.includes("ambient")) return "๐คซ"
- if (
- genre.includes("alternative") ||
- genre.includes("rock") ||
- genre.includes("shoegaze") ||
- genre.includes("screamo") ||
- genre.includes("grunge")
- )
- return "๐ธ"
- return DEFAULT
-}
-
const fetchGenreById = async (genreId) => {
const { data, error } = await supabase
.from('genres')
- .select('name')
+ .select('emoji')
.eq('id', genreId)
.single()
@@ -122,7 +42,7 @@ const fetchGenreById = async (genreId) => {
return null
}
- return data.name
+ return data.emoji
}
export default async () => {
@@ -132,7 +52,7 @@ export default async () => {
track_name,
artist_name,
listened_at,
- artists (mbid, genres, country)
+ artists (mbid, genres, country, emoji)
`)
.order('listened_at', { ascending: false })
.range(0, 1)
@@ -152,13 +72,11 @@ export default async () => {
}
const scrobbleData = data[0]
- scrobbleData.genre = await fetchGenreById(data[0].artists.genres)
+ const genreEmoji = await fetchGenreById(data[0].artists.genres)
+ const emoji = scrobbleData.artists.emoji || genreEmoji
return new Response(JSON.stringify({
- content: `${emojiMap(
- scrobbleData.genre,
- scrobbleData.artist_name
- )} ${scrobbleData.track_name} by ${
+ content: `${emoji || '๐ง'} ${scrobbleData.track_name} by ${
scrobbleData.artist_name
}`,
}), { headers });
diff --git a/package-lock.json b/package-lock.json
index 5acd4e3c..45296155 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "coryd.dev",
- "version": "18.1.4",
+ "version": "18.2.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "coryd.dev",
- "version": "18.1.4",
+ "version": "18.2.4",
"license": "MIT",
"dependencies": {
"@cdransf/api-text": "^1.4.0",
diff --git a/package.json b/package.json
index 2380b44d..5edab42c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "coryd.dev",
- "version": "18.1.4",
+ "version": "18.2.4",
"description": "The source for my personal site. Built using 11ty.",
"type": "module",
"scripts": {