X-Git-Url: https://git.sur5r.net/?p=minitube;a=blobdiff_plain;f=src%2Fyt3listparser.cpp;h=53e9e244f1e056c6c880cfa37e31ab462aa53636;hp=74e11e6a3c816b884e550f9fd168b8efa1612b43;hb=434d88418722fd7717038e44bd74271ca1d92771;hpb=2fe4558f7d5d98052be981a66fbe16d0587ba030 diff --git a/src/yt3listparser.cpp b/src/yt3listparser.cpp index 74e11e6..53e9e24 100644 --- a/src/yt3listparser.cpp +++ b/src/yt3listparser.cpp @@ -2,6 +2,16 @@ #include "datautils.h" #include "video.h" +#include + +namespace { + +QString decodeEntities(const QString &s) { + return QTextDocumentFragment::fromHtml(s).toPlainText(); +} + +} // namespace + YT3ListParser::YT3ListParser(const QByteArray &bytes) { QJsonDocument doc = QJsonDocument::fromJson(bytes); QJsonObject obj = doc.object(); @@ -42,7 +52,10 @@ void YT3ListParser::parseItem(const QJsonObject &item) { video->setChannelId(snippet[QLatin1String("channelId")].toString()); - video->setTitle(snippet[QLatin1String("title")].toString()); + QString title = snippet[QLatin1String("title")].toString(); + static const QChar ampersand('&'); + if (title.contains(ampersand)) title = decodeEntities(title); + video->setTitle(title); video->setDescription(snippet[QLatin1String("description")].toString()); QJsonObject thumbnails = snippet[QLatin1String("thumbnails")].toObject();