Skip to content

Instantly share code, notes, and snippets.

@Erisa
Created June 9, 2023 18:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Erisa/728c389c05f421098a22d4581b4a37f8 to your computer and use it in GitHub Desktop.
Save Erisa/728c389c05f421098a22d4581b4a37f8 to your computer and use it in GitHub Desktop.
xkcd feed
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
let url = 'https://xkcd.com/rss.xml'
let match = /(&lt;img(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\n\uD800-\uDFFF])*? alt="((?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\n\uD800-\uDFFF])*?)"(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\n\uD800-\uDFFF])*?&gt;<\/description>)/ig
let replace = "$1&lt;p&gt;&lt;/p&gt;</description><summary>$2</summary>"
var resp = await fetch(url)
var body = await resp.text()
newbody = body.replaceAll(match, replace)
return new Response(newbody, {
headers: {
"content-type": "application/xml"
}
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment