From 13cb918edbac9c420e4418522ccf8efd09e374af Mon Sep 17 00:00:00 2001 From: Cory Dransfeldt Date: Tue, 3 Jun 2025 13:06:27 -0700 Subject: [PATCH] fix(mastodon.php): add feed helper to improve handling of utf-8 charachters and html entities --- api/mastodon.php | 10 ++++++++-- package-lock.json | 6 +++--- package.json | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/api/mastodon.php b/api/mastodon.php index a450a6d..ab8e3fa 100644 --- a/api/mastodon.php +++ b/api/mastodon.php @@ -85,15 +85,21 @@ class MastodonPostHandler extends ApiHandler foreach ($rss->channel->item as $item) { $items[] = [ - "title" => (string) $item->title, + "title" => $this->cleanText((string) $item->title), "link" => (string) $item->link, - "description" => (string) $item->description, + "description" => $this->cleanText((string) $item->description), ]; } return $items; } + private function cleanText(string $text): string + { + $decoded = html_entity_decode($text, ENT_QUOTES | ENT_XML1, 'UTF-8'); + return mb_convert_encoding($decoded, 'UTF-8', 'UTF-8'); + } + private function postToMastodon(string $content): ?string { $headers = [ diff --git a/package-lock.json b/package-lock.json index 3783932..40cedf1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,19 +1,19 @@ { "name": "coryd.dev", - "version": "8.2.5", + "version": "8.2.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "coryd.dev", - "version": "8.2.5", + "version": "8.2.7", "license": "MIT", "dependencies": { "minisearch": "^7.1.2", "youtube-video-element": "^1.5.1" }, "devDependencies": { - "@11ty/eleventy": "v3.1.0", + "@11ty/eleventy": "3.1.0", "@11ty/eleventy-fetch": "5.1.0", "@cdransf/eleventy-plugin-tabler-icons": "^2.13.0", "concurrently": "9.1.2", diff --git a/package.json b/package.json index 8f678c9..26a712b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "coryd.dev", - "version": "8.2.5", + "version": "8.2.7", "description": "The source for my personal site. Built using 11ty (and other tools).", "type": "module", "engines": { @@ -37,7 +37,7 @@ "youtube-video-element": "^1.5.1" }, "devDependencies": { - "@11ty/eleventy": "v3.1.0", + "@11ty/eleventy": "3.1.0", "@11ty/eleventy-fetch": "5.1.0", "@cdransf/eleventy-plugin-tabler-icons": "^2.13.0", "concurrently": "9.1.2",