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:
parent
281da05325
commit
57a6fe4f20
|
@ -40,6 +40,7 @@
|
||||||
#include <QTcpServer>
|
#include <QTcpServer>
|
||||||
#include <QTemporaryFile>
|
#include <QTemporaryFile>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
#include <QUrlQuery>
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QXmlStreamReader>
|
#include <QXmlStreamReader>
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
@ -769,6 +770,16 @@ QString ScrubUrlQueries(const QString& str) {
|
||||||
return QString(str).replace(rx, "\\1 (query removed)");
|
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
|
} // namespace Utilities
|
||||||
|
|
||||||
ScopedWCharArray::ScopedWCharArray(const QString& str)
|
ScopedWCharArray::ScopedWCharArray(const QString& str)
|
||||||
|
|
|
@ -166,6 +166,10 @@ QString SystemLanguageName();
|
||||||
|
|
||||||
// Scrub messages for to remove queries, which may include auth info, from URLs.
|
// Scrub messages for to remove queries, which may include auth info, from URLs.
|
||||||
QString ScrubUrlQueries(const QString& str);
|
QString ScrubUrlQueries(const QString& str);
|
||||||
|
|
||||||
|
// Return URL for user bug a user bug report.
|
||||||
|
QString MakeBugReportUrl(const QString& title);
|
||||||
|
|
||||||
} // namespace Utilities
|
} // namespace Utilities
|
||||||
|
|
||||||
class ScopedWCharArray {
|
class ScopedWCharArray {
|
||||||
|
|
|
@ -214,13 +214,10 @@ void PodcastParser::ParseItem(QXmlStreamReader* reader, Podcast* ret) const {
|
||||||
QString date = reader->readElementText();
|
QString date = reader->readElementText();
|
||||||
episode.set_publication_date(Utilities::ParseRFC822DateTime(date));
|
episode.set_publication_date(Utilities::ParseRFC822DateTime(date));
|
||||||
if (!episode.publication_date().isValid()) {
|
if (!episode.publication_date().isValid()) {
|
||||||
qLog(Error) << "Unable to parse date:" << date
|
qLog(Error)
|
||||||
<< "Please submit it to "
|
<< "Unable to parse date:" << date << "Please submit it to "
|
||||||
<< "https://github.com/clementine-player/Clementine/"
|
<< Utilities::MakeBugReportUrl(
|
||||||
"issues/new?title=" +
|
QString("[podcast] Unable to parse date: %1").arg(date));
|
||||||
QUrl::toPercentEncoding(
|
|
||||||
QString("[podcast] Unable to parse date: %1")
|
|
||||||
.arg(date));
|
|
||||||
}
|
}
|
||||||
} else if (name == "duration" && lower_namespace == kItunesNamespace) {
|
} else if (name == "duration" && lower_namespace == kItunesNamespace) {
|
||||||
// http://www.apple.com/itunes/podcasts/specs.html
|
// http://www.apple.com/itunes/podcasts/specs.html
|
||||||
|
|
Loading…
Reference in New Issue