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> <url type="donation">https://github.com/sponsors/martinrotter</url>
<content_rating type="oars-1.1" /> <content_rating type="oars-1.1" />
<releases> <releases>
<release version="4.2.4" date="2022-09-20"/> <release version="4.2.4" date="2022-09-30"/>
</releases> </releases>
<content_rating type="oars-1.0"> <content_rating type="oars-1.0">
<content_attribute id="violence-cartoon">none</content_attribute> <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()); enclosures_str.append(enclosure.m_url.toLocal8Bit().toBase64());
} }
else { else {
enclosures_str.append(QString(enclosure.m_mimeType.toLocal8Bit().toBase64()) + enclosures_str.append(QString(enclosure.m_mimeType.toLocal8Bit().toBase64()) + ECNLOSURES_INNER_SEPARATOR +
ECNLOSURES_INNER_SEPARATOR +
enclosure.m_url.toLocal8Bit().toBase64()); 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(" ")) .replace(QRegularExpression(QSL("[\\s]{2,}")), QSL(" "))
// Remove all newlines and leading white space. // 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. // Check if messages contain relative URLs and if they do, then replace them.
if (m_url.startsWith(QL1S("//"))) { if (m_url.startsWith(QL1S("//"))) {
@ -150,7 +152,8 @@ QString Message::generateRawAtomContents(const Message& msg) {
"<updated>%3</updated>" "<updated>%3</updated>"
"<id>%4</id>" "<id>%4</id>"
"<summary type=\"html\">%5</summary>" "<summary type=\"html\">%5</summary>"
"</entry>").arg(msg.m_title, "</entry>")
.arg(msg.m_title,
msg.m_url, msg.m_url,
msg.m_created.toUTC().toString(QSL("yyyy-MM-ddThh:mm:ss")), msg.m_created.toUTC().toString(QSL("yyyy-MM-ddThh:mm:ss")),
msg.m_url, msg.m_url,
@ -159,15 +162,8 @@ QString Message::generateRawAtomContents(const Message& msg) {
} }
QDataStream& operator<<(QDataStream& out, const Message& my_obj) { QDataStream& operator<<(QDataStream& out, const Message& my_obj) {
out << my_obj.m_accountId out << my_obj.m_accountId << my_obj.m_customHash << my_obj.m_customId << my_obj.m_feedId << my_obj.m_id
<< my_obj.m_customHash << my_obj.m_isImportant << my_obj.m_isRead << my_obj.m_isDeleted << my_obj.m_score;
<< 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; return out;
} }