Properly rewrite channel descriptions

This commit is contained in:
Bnyro 2023-01-30 19:42:57 +01:00
parent fe0fe2ab18
commit 5978848327
3 changed files with 11 additions and 8 deletions

View file

@ -10,7 +10,7 @@
<img v-if="channel.bannerUrl" :src="channel.bannerUrl" class="w-full pb-1.5" loading="lazy" /> <img v-if="channel.bannerUrl" :src="channel.bannerUrl" class="w-full pb-1.5" loading="lazy" />
<!-- eslint-disable-next-line vue/no-v-html --> <!-- eslint-disable-next-line vue/no-v-html -->
<p class="whitespace-pre-wrap"> <p class="whitespace-pre-wrap">
<span v-html="purifyHTML(urlify(channel.description))" /> <span v-html="purifyHTML(rewriteDescription(channel.description))" />
</p> </p>
<button <button

View file

@ -408,13 +408,7 @@ export default {
elem.outerHTML = elem.getAttribute("href"); elem.outerHTML = elem.getAttribute("href");
}); });
xmlDoc.querySelectorAll("br").forEach(elem => (elem.outerHTML = "\n")); xmlDoc.querySelectorAll("br").forEach(elem => (elem.outerHTML = "\n"));
this.video.description = this.urlify(xmlDoc.querySelector("body").innerHTML) this.video.description = this.rewriteDescription(xmlDoc.querySelector("body").innerHTML);
.replaceAll(/(?:http(?:s)?:\/\/)?(?:www\.)?youtube\.com(\/[/a-zA-Z0-9_?=&-]*)/gm, "$1")
.replaceAll(
/(?:http(?:s)?:\/\/)?(?:www\.)?youtu\.be\/(?:watch\?v=)?([/a-zA-Z0-9_?=&-]*)/gm,
"/watch?v=$1",
)
.replaceAll("\n", "<br>");
} }
}); });
}, },

View file

@ -251,6 +251,15 @@ const mixin = {
elem.click(); elem.click();
elem.remove(); elem.remove();
}, },
rewriteDescription(text) {
return this.urlify(text)
.replaceAll(/(?:http(?:s)?:\/\/)?(?:www\.)?youtube\.com(\/[/a-zA-Z0-9_?=&-]*)/gm, "$1")
.replaceAll(
/(?:http(?:s)?:\/\/)?(?:www\.)?youtu\.be\/(?:watch\?v=)?([/a-zA-Z0-9_?=&-]*)/gm,
"/watch?v=$1",
)
.replaceAll("\n", "<br>");
},
}, },
computed: { computed: {
authenticated(_this) { authenticated(_this) {