diff --git a/src/formatters.nim b/src/formatters.nim index 1f8140f..5707393 100644 --- a/src/formatters.nim +++ b/src/formatters.nim @@ -14,6 +14,7 @@ const manifestRegex = re"(.+(.ts|.m3u8|.vmap))" userpicRegex = re"_(normal|bigger|mini|200x200|400x400)(\.[A-z]+)$" extRegex = re"(\.[A-z]+)$" + illegalXmlRegex = re"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]" twitter = parseUri("https://twitter.com") @@ -26,6 +27,9 @@ proc stripHtml*(text: string): string = el[0].text = link html.innerText() +proc sanitizeXml*(text: string): string = + text.replace(illegalXmlRegex, "") + proc shortLink*(text: string; length=28): string = result = text.replace(wwwRegex, "") if result.len > length: diff --git a/src/views/rss.nimf b/src/views/rss.nimf index a39d693..f690a46 100644 --- a/src/views/rss.nimf +++ b/src/views/rss.nimf @@ -69,7 +69,7 @@ #var title = profile.fullname #if not multi: title &= " / " & user #end if -#title = xmltree.escape(title) +#title = xmltree.escape(title).sanitizeXml @@ -86,7 +86,7 @@ 128 128 - # if timeline.content.len > 0: + #if timeline.content.len > 0: ${renderRssTweets(timeline.content, prefs, hostname)} #end if