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);