remove zero-width spaces when sanitizing msgs
This commit is contained in:
parent
3d482fdbe2
commit
1efefade23
@ -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>
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -74,14 +73,17 @@ void Message::sanitize(const Feed* feed, bool fix_future_datetimes) {
|
|||||||
// Sanitize title.
|
// Sanitize title.
|
||||||
m_title = m_title
|
m_title = m_title
|
||||||
|
|
||||||
// Remove non-breaking spaces.
|
// Remove non-breaking spaces.
|
||||||
.replace(QRegularExpression(QString::fromUtf8(QByteArray("[\xE2\x80\xAF]"))), QSL(" "))
|
.replace(QRegularExpression(QString::fromUtf8(QByteArray("[\xE2\x80\xAF]"))), QSL(" "))
|
||||||
|
|
||||||
// Shrink consecutive whitespaces.
|
// Shrink consecutive whitespaces.
|
||||||
.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,24 +152,18 @@ 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>")
|
||||||
msg.m_url,
|
.arg(msg.m_title,
|
||||||
msg.m_created.toUTC().toString(QSL("yyyy-MM-ddThh:mm:ss")),
|
msg.m_url,
|
||||||
msg.m_url,
|
msg.m_created.toUTC().toString(QSL("yyyy-MM-ddThh:mm:ss")),
|
||||||
msg.m_contents.toHtmlEscaped(),
|
msg.m_url,
|
||||||
msg.m_author);
|
msg.m_contents.toHtmlEscaped(),
|
||||||
|
msg.m_author);
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user