Changeset View
Changeset View
Standalone View
Standalone View
src/widgets/welcomewidget.cpp
Show First 20 Lines • Show All 105 Lines • ▼ Show 20 Line(s) | 38 | { | |||
---|---|---|---|---|---|
106 | scrollArea->setWidget(infoWidget); | 106 | scrollArea->setWidget(infoWidget); | ||
107 | scrollArea->setWidgetResizable(true); | 107 | scrollArea->setWidgetResizable(true); | ||
108 | 108 | | |||
109 | layout = new QVBoxLayout; | 109 | layout = new QVBoxLayout; | ||
110 | layout->addWidget(scrollArea); | 110 | layout->addWidget(scrollArea); | ||
111 | setLayout(layout); | 111 | setLayout(layout); | ||
112 | } | 112 | } | ||
113 | 113 | | |||
114 | WelcomeWidget::~WelcomeWidget() | | |||
115 | { | | |||
116 | | ||||
117 | } | | |||
118 | | ||||
119 | void WelcomeWidget::retrieveRssFeed() | 114 | void WelcomeWidget::retrieveRssFeed() | ||
120 | { | 115 | { | ||
121 | auto manager = new QNetworkAccessManager(); | 116 | auto manager = new QNetworkAccessManager(); | ||
122 | for (const QUrl &url : { | 117 | for (const QUrl &url : { | ||
123 | QUrl("https://rizzitello.wordpress.com/category/atelier/feed/"), | 118 | QUrl("https://rizzitello.wordpress.com/category/atelier/feed/"), | ||
124 | QUrl("https://laysrodriguesdev.wordpress.com/category/atelier/feed/") | 119 | QUrl("https://laysrodriguesdev.wordpress.com/category/atelier/feed/") | ||
125 | }) { | 120 | }) { | ||
126 | QNetworkRequest request(url); | 121 | QNetworkRequest request(url); | ||
127 | request.setRawHeader("User-Agent", "Atelier 1.0"); | 122 | request.setRawHeader("User-Agent", "Atelier 1.0"); | ||
128 | manager->get(request); | 123 | manager->get(request); | ||
129 | connect(manager, &QNetworkAccessManager::finished, this, [&](QNetworkReply * reply) { | 124 | connect(manager, &QNetworkAccessManager::finished, this, [&](QNetworkReply * reply) { | ||
130 | if (reply->error()) { | 125 | if (reply->error()) { | ||
131 | return; | 126 | return; | ||
132 | } else { | 127 | } | ||
133 | QDomDocument document; | 128 | QDomDocument document; | ||
134 | if (document.setContent(reply->readAll())) { | 129 | if (document.setContent(reply->readAll())) { | ||
135 | parseRss(document); | 130 | parseRss(document); | ||
136 | } | 131 | } | ||
137 | } | | |||
138 | }); | 132 | }); | ||
139 | } | 133 | } | ||
140 | } | 134 | } | ||
141 | 135 | | |||
142 | void WelcomeWidget::parseRss(const QDomDocument &document) | 136 | void WelcomeWidget::parseRss(const QDomDocument &document) | ||
143 | { | 137 | { | ||
144 | auto itemList = document.elementsByTagName("item"); | 138 | auto itemList = document.elementsByTagName("item"); | ||
145 | QRegularExpression dateRegex("(?<date>\\d{2} \\w{3} \\d{4})"); | 139 | QRegularExpression dateRegex(QStringLiteral(R"((?<date>\d{2} \w{3} \d{4}))")); | ||
146 | 140 | | |||
147 | for (int i = 0; i < itemList.count(); ++i) { | 141 | for (int i = 0; i < itemList.count(); ++i) { | ||
148 | auto node = itemList.at(i); | 142 | auto node = itemList.at(i); | ||
149 | if (node.isElement()) { | 143 | if (node.isElement()) { | ||
150 | //Sample of date format Wed, 24 May 2017 13:46:07 +0000 | 144 | //Sample of date format Wed, 24 May 2017 13:46:07 +0000 | ||
151 | QString pDate = node.firstChildElement("pubDate").toElement().text(); | 145 | QString pDate = node.firstChildElement("pubDate").toElement().text(); | ||
152 | QRegularExpressionMatch match = dateRegex.match(pDate); | 146 | QRegularExpressionMatch match = dateRegex.match(pDate); | ||
153 | if (match.hasMatch()) { | 147 | if (match.hasMatch()) { | ||
▲ Show 20 Lines • Show All 54 Lines • Show Last 20 Lines |