From df0bc8beaba08c0084ee1b2d988b62945599437a Mon Sep 17 00:00:00 2001 From: dylan Date: Thu, 1 Jan 2026 19:53:45 +0000 Subject: [PATCH] updated image and video replacement logic --- index.js | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/index.js b/index.js index 22e48dd..c69279d 100644 --- a/index.js +++ b/index.js @@ -132,7 +132,12 @@ export default async function now() { const imageId = `${item.id}-image` const videoId = `${item.id}-video` if (latest.image) { - // html image replacement + // html image replacement - match by data-service attribute to allow repeated updates + newNow = newNow.replace( + new RegExp(`(]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'), + `$1${latest.image}$2`, + ) + // also handle initial placeholder case newNow = newNow.replace( new RegExp(`(]+src=["'])${imageId}(["'][^>]*>)`, 'gi'), `$1${latest.image}$2`, @@ -143,7 +148,12 @@ export default async function now() { `$1${latest.image}$2`, ) } else { - // remove img tags if no image available (handle multi-line tags and any attribute order) + // remove img tags if no image available - match by data-service attribute + newNow = newNow.replace( + new RegExp(`\\s*]*\\bdata-service=["']${item.id}["'][^>]*>\\s*`, 'gis'), + '', + ) + // also remove by placeholder src newNow = newNow.replace( new RegExp(`\\s*]*\\bsrc=["']${imageId}["'][^>]*>\\s*`, 'gis'), '', @@ -156,13 +166,23 @@ export default async function now() { } if (latest.video) { - // html video replacement + // html video replacement - match by data-service attribute to allow repeated updates + newNow = newNow.replace( + new RegExp(`(]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'), + `$1${latest.video}$2`, + ) + // also handle initial placeholder case newNow = newNow.replace( new RegExp(`(]+src=["'])${videoId}(["'][^>]*>)`, 'gi'), `$1${latest.video}$2`, ) } else { - // remove video tags if no video available + // remove video tags if no video available - match by data-service attribute + newNow = newNow.replace( + new RegExp(`\\s*]*\\bdata-service=["']${item.id}["'][^>]*>[\\s\\S]*?\\s*`, 'gis'), + '', + ) + // also remove by placeholder src newNow = newNow.replace( new RegExp(`\\s*]*\\bsrc=["']${videoId}["'][^>]*>[\\s\\S]*?\\s*`, 'gis'), '',