remove zero-width spaces when sanitizing msgs

This commit is contained in:
Martin Rotter 2022-09-30 06:33:53 +02:00
parent 3d482fdbe2
commit 1efefade23
2 changed files with 20 additions and 24 deletions

View File

@ -24,7 +24,7 @@
<url type="donation">https://github.com/sponsors/martinrotter</url>
<content_rating type="oars-1.1" />
<releases>
<release version="4.2.4" date="2022-09-20"/>
<release version="4.2.4" date="2022-09-30"/>
</releases>
<content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute>

View File

@ -52,8 +52,7 @@ QString Enclosures::encodeEnclosuresToString(const QList<Enclosure>& enclosures)
enclosures_str.append(enclosure.m_url.toLocal8Bit().toBase64());
}
else {
enclosures_str.append(QString(enclosure.m_mimeType.toLocal8Bit().toBase64()) +
ECNLOSURES_INNER_SEPARATOR +
enclosures_str.append(QString(enclosure.m_mimeType.toLocal8Bit().toBase64()) + ECNLOSURES_INNER_SEPARATOR +
enclosure.m_url.toLocal8Bit().toBase64());
}
}
@ -81,7 +80,10 @@ void Message::sanitize(const Feed* feed, bool fix_future_datetimes) {
.replace(QRegularExpression(QSL("[\\s]{2,}")), QSL(" "))
// Remove all newlines and leading white space.
.remove(QRegularExpression(QSL("([\\n\\r])|(^\\s)")));
.remove(QRegularExpression(QSL("([\\n\\r])|(^\\s)")))
// Remove non-breaking zero-width spaces.
.remove(QChar(65279));
// Check if messages contain relative URLs and if they do, then replace them.
if (m_url.startsWith(QL1S("//"))) {
@ -150,7 +152,8 @@ QString Message::generateRawAtomContents(const Message& msg) {
"<updated>%3</updated>"
"<id>%4</id>"
"<summary type=\"html\">%5</summary>"
"</entry>").arg(msg.m_title,
"</entry>")
.arg(msg.m_title,
msg.m_url,
msg.m_created.toUTC().toString(QSL("yyyy-MM-ddThh:mm:ss")),
msg.m_url,
@ -159,15 +162,8 @@ QString Message::generateRawAtomContents(const Message& msg) {
}
QDataStream& operator<<(QDataStream& out, const Message& my_obj) {
out << my_obj.m_accountId
<< my_obj.m_customHash
<< my_obj.m_customId
<< my_obj.m_feedId
<< my_obj.m_id
<< my_obj.m_isImportant
<< my_obj.m_isRead
<< my_obj.m_isDeleted
<< my_obj.m_score;
out << my_obj.m_accountId << my_obj.m_customHash << my_obj.m_customId << my_obj.m_feedId << my_obj.m_id
<< my_obj.m_isImportant << my_obj.m_isRead << my_obj.m_isDeleted << my_obj.m_score;
return out;
}