From 1612832fc4f782a29988d2c9a1b928cfc00429e3 Mon Sep 17 00:00:00 2001 From: Puyodead1 Date: Sun, 3 Sep 2023 15:28:33 -0400 Subject: [PATCH 1/2] add facebook, and add steam fields --- assets/schemas.json | Bin 18227560 -> 18223848 bytes src/api/util/utility/EmbedHandlers.ts | 57 ++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/assets/schemas.json b/assets/schemas.json index 3891cee7668f40df7180c76ce32c0799cd05621a..77df48bdd982b605f534c41710d69acf2e49ec93 100644 GIT binary patch delta 4568 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 J@J`aT{{s<9@T&j- diff --git a/src/api/util/utility/EmbedHandlers.ts b/src/api/util/utility/EmbedHandlers.ts index b1e6b866..430ca4aa 100644 --- a/src/api/util/utility/EmbedHandlers.ts +++ b/src/api/util/utility/EmbedHandlers.ts @@ -226,8 +226,23 @@ export const EmbedHandlers: { "c.tenor.com": genericImageHandler, "media.tenor.com": genericImageHandler, - // TODO: facebook - // have to use their APIs or something because they don't send the metas in initial html + "facebook.com": (url) => EmbedHandlers["www.facebook.com"](url), + "www.facebook.com": async (url: URL) => { + const response = await doFetch(url); + if (!response) return null; + const metas = getMetaDescriptions(await response.text()); + + return { + url: url.href, + type: EmbedType.link, + title: metas.title, + description: metas.description, + thumbnail: makeEmbedImage(metas.image, 640, 640), + provider: { + name: "Facebook", + }, + }; + }, "twitter.com": (url) => EmbedHandlers["www.twitter.com"](url), "www.twitter.com": async (url: URL) => { @@ -385,6 +400,42 @@ export const EmbedHandlers: { const response = await doFetch(url); if (!response) return null; const metas = getMetaDescriptions(await response.text()); + const numReviews = metas.$("#review_summary_num_reviews").val() as + | string + | undefined; + const price = metas + .$(".game_purchase_price.price") + .data("price-final") as number | undefined; + const releaseDate = metas + .$(".release_date") + .find("div.date") + .text() + .trim(); + const isReleased = new Date(releaseDate) < new Date(); + + const fields: Embed["fields"] = []; + + if (numReviews) + fields.push({ + name: "Reviews", + value: numReviews, + inline: true, + }); + + if (price) + fields.push({ + name: "Price", + value: `$${price / 100}`, + inline: true, + }); + + // if the release date is in the past, it's already out + if (releaseDate && !isReleased) + fields.push({ + name: "Release Date", + value: releaseDate, + inline: true, + }); return { url: url.href, @@ -405,7 +456,7 @@ export const EmbedHandlers: { url: "https://store.steampowered.com", name: "Steam", }, - // TODO: fields for release date + fields, // TODO: Video }; }, From 8a35664ae630e960bf44f01497100e318231effb Mon Sep 17 00:00:00 2001 From: Puyodead1 Date: Sun, 3 Sep 2023 15:48:55 -0400 Subject: [PATCH 2/2] [fb] remove provider obj, add color --- src/api/util/utility/EmbedHandlers.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/api/util/utility/EmbedHandlers.ts b/src/api/util/utility/EmbedHandlers.ts index 430ca4aa..ab953613 100644 --- a/src/api/util/utility/EmbedHandlers.ts +++ b/src/api/util/utility/EmbedHandlers.ts @@ -238,9 +238,7 @@ export const EmbedHandlers: { title: metas.title, description: metas.description, thumbnail: makeEmbedImage(metas.image, 640, 640), - provider: { - name: "Facebook", - }, + color: 16777215, }; },