Compare commits

...

1 commit

Author SHA1 Message Date
dylan
df0bc8beab updated image and video replacement logic 2026-01-01 19:53:45 +00:00

View file

@ -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(`(<img[^>]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'),
`$1${latest.image}$2`,
)
// also handle initial placeholder case
newNow = newNow.replace(
new RegExp(`(<img[^>]+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*<img\\b[^>]*\\bdata-service=["']${item.id}["'][^>]*>\\s*`, 'gis'),
'',
)
// also remove by placeholder src
newNow = newNow.replace(
new RegExp(`\\s*<img\\b[^>]*\\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(`(<video[^>]*data-service=["']${item.id}["'][^>]*\\bsrc=["'])[^"']*?(["'][^>]*>)`, 'gi'),
`$1${latest.video}$2`,
)
// also handle initial placeholder case
newNow = newNow.replace(
new RegExp(`(<video[^>]+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*<video\\b[^>]*\\bdata-service=["']${item.id}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
'',
)
// also remove by placeholder src
newNow = newNow.replace(
new RegExp(`\\s*<video\\b[^>]*\\bsrc=["']${videoId}["'][^>]*>[\\s\\S]*?</video>\\s*`, 'gis'),
'',