diff --git a/src/core/utilities.cpp b/src/core/utilities.cpp index ddbdb53d2..5d3fa54bb 100644 --- a/src/core/utilities.cpp +++ b/src/core/utilities.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include @@ -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) diff --git a/src/core/utilities.h b/src/core/utilities.h index b3b95c58f..e1911bdf9 100644 --- a/src/core/utilities.h +++ b/src/core/utilities.h @@ -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 { diff --git a/src/internet/podcasts/podcastparser.cpp b/src/internet/podcasts/podcastparser.cpp index bced7f839..226f47d78 100644 --- a/src/internet/podcasts/podcastparser.cpp +++ b/src/internet/podcasts/podcastparser.cpp @@ -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