utilities: Add common method for bug report URL generation

Move code from PodcastParser::ParseItem for reuse.

Example:
Calling Utilities::MakeBugReportUrl("New bug") returns:
https://github.com/clementine-player/Clementine/issues/new?title=New%20bug
This commit is contained in:
Jim Broadus 2021-01-31 22:32:38 -08:00 committed by John Maguire
parent 281da05325
commit 57a6fe4f20
3 changed files with 19 additions and 7 deletions

View File

@ -40,6 +40,7 @@
#include <QTcpServer>
#include <QTemporaryFile>
#include <QUrl>
#include <QUrlQuery>
#include <QWidget>
#include <QXmlStreamReader>
#include <QtDebug>
@ -769,6 +770,16 @@ QString ScrubUrlQueries(const QString& str) {
return QString(str).replace(rx, "\\1 (query removed)");
}
QString MakeBugReportUrl(const QString& title) {
// Example:
// https://github.com/clementine-player/Clementine/issues/new?title=New%20bug
QUrl url("https://github.com/clementine-player/Clementine/issues/new");
QUrlQuery query;
query.addQueryItem("title", title);
url.setQuery(query);
return url.toString(QUrl::FullyEncoded);
}
} // namespace Utilities
ScopedWCharArray::ScopedWCharArray(const QString& str)

View File

@ -166,6 +166,10 @@ QString SystemLanguageName();
// Scrub messages for to remove queries, which may include auth info, from URLs.
QString ScrubUrlQueries(const QString& str);
// Return URL for user bug a user bug report.
QString MakeBugReportUrl(const QString& title);
} // namespace Utilities
class ScopedWCharArray {

View File

@ -214,13 +214,10 @@ void PodcastParser::ParseItem(QXmlStreamReader* reader, Podcast* ret) const {
QString date = reader->readElementText();
episode.set_publication_date(Utilities::ParseRFC822DateTime(date));
if (!episode.publication_date().isValid()) {
qLog(Error) << "Unable to parse date:" << date
<< "Please submit it to "
<< "https://github.com/clementine-player/Clementine/"
"issues/new?title=" +
QUrl::toPercentEncoding(
QString("[podcast] Unable to parse date: %1")
.arg(date));
qLog(Error)
<< "Unable to parse date:" << date << "Please submit it to "
<< Utilities::MakeBugReportUrl(
QString("[podcast] Unable to parse date: %1").arg(date));
}
} else if (name == "duration" && lower_namespace == kItunesNamespace) {
// http://www.apple.com/itunes/podcasts/specs.html