diff --git a/src/lib/unicode.js b/src/lib/unicode.js
index a4db5b4..d1ae9f6 100644
--- a/src/lib/unicode.js
+++ b/src/lib/unicode.js
@@ -2,7 +2,7 @@ const mappings = {};
async function cacheList() {
const data = await fetch(
- "https://unicode.org/Public/UNIDATA/UnicodeData.txt"
+ "https://www.unicode.org/Public/UNIDATA/UnicodeData.txt"
).then((res) => res.text());
data
diff --git a/src/modules/anonradio.js b/src/modules/anonradio.js
index e163e7b..fc0673a 100644
--- a/src/modules/anonradio.js
+++ b/src/modules/anonradio.js
@@ -40,6 +40,8 @@ async function updateNowPlaying() {
lines = lines.slice(4, lines.length - 2);
const line = lines[0];
+ if (!line) return;
+
const [_, _time, id, name] = line.match(/^(.{3,4} .{4})\s+(.+?) {2}(.+?)$/);
const liveNow = {name: "ident", id: "aNONradio"};
@@ -55,6 +57,8 @@ async function updateNowPlaying() {
if (playing.includes("listeners with a daily peak of")) {
title = `${liveNow.name} (\`${liveNow.id}\`)`;
subtitle = playing;
+ } else if (playing.startsWith("Coming up")) {
+ title = playing;
} else {
const [_, current, peakDay, peakMonth, dj, metadata] = playing.match(
/\[(\d+)\/(\d+)\/(\d+)\] \((.+?)\): (.+)/
@@ -95,10 +99,21 @@ async function updateNowPlaying() {
const content = `${title}\n${subtitle}\n${openmicTime}`.trim();
const thread = hf.bot.guilds.get(GUILD_ID).threads.get(THREAD_ID);
- const msg = await thread.getMessage(MESSAGE_ID);
- if (msg.content !== content) {
- thread.editMessage(MESSAGE_ID, {content});
+ if (thread) {
+ const msg = await thread.getMessage(MESSAGE_ID);
+ if (msg.content !== content) {
+ await thread.editMessage(MESSAGE_ID, {content});
+ }
}
}
-hf.timer.add("anonradio", updateNowPlaying, 2000);
+hf.timer.add(
+ "anonradio",
+ async () => {
+ await new Promise((resolve, reject) => {
+ setTimeout(() => reject("timeout"), 1900);
+ updateNowPlaying().then(() => resolve(true));
+ }).catch(() => {});
+ },
+ 2000
+);
diff --git a/src/modules/fedimbed.js b/src/modules/fedimbed.js
index ec9e807..0b210df 100644
--- a/src/modules/fedimbed.js
+++ b/src/modules/fedimbed.js
@@ -289,7 +289,7 @@ async function processUrl(msg, url) {
cw = cw ?? "";
// TODO: convert certain HTML tags back to markdown
- content = content.replace(/
/g, "\n");
+ content = content.replace(/<\/?\s*br\s*\/?>/g, "\n");
content = content.replace(/<\/p>
/g, "\n\n"); content = content.replace(/(<([^>]+)>)/gi, ""); content = parseHtmlEntities(content);