]> git.sur5r.net Git - minitube/blobdiff - src/ytstandardfeed.cpp
New upstream version 2.9
[minitube] / src / ytstandardfeed.cpp
index e6f640842434379975ac92855a7677602053c251..4f08211bd5516175da7adce3a4828a97fcb8d393 100644 (file)
@@ -19,61 +19,52 @@ along with Minitube.  If not, see <http://www.gnu.org/licenses/>.
 $END_LICENSE */
 
 #include "ytstandardfeed.h"
-#include "networkaccess.h"
+#include "http.h"
+#include "httputils.h"
 #include "video.h"
-#include "compatibility/qurlqueryhelper.h"
 
-#ifdef APP_YT3
 #include "yt3.h"
 #include "yt3listparser.h"
-#else
-#include "ytfeedreader.h"
-#endif
-
-namespace The {
-NetworkAccess* http();
-}
 
 YTStandardFeed::YTStandardFeed(QObject *parent)
     : PaginatedVideoSource(parent),
       aborted(false) { }
 
-#ifdef APP_YT3
-
 void YTStandardFeed::loadVideos(int max, int startIndex) {
     aborted = false;
 
     QUrl url = YT3::instance().method("videos");
 
-    {
-        QUrlQueryHelper urlHelper(url);
-        if (startIndex > 1) {
-            if (maybeReloadToken(max, startIndex)) return;
-            urlHelper.addQueryItem("pageToken", nextPageToken);
-        }
+    QUrlQuery q(url);
+    if (startIndex > 1) {
+        if (maybeReloadToken(max, startIndex)) return;
+        q.addQueryItem("pageToken", nextPageToken);
+    }
 
-        urlHelper.addQueryItem("part", "snippet,contentDetails,statistics");
-        urlHelper.addQueryItem("chart", "mostPopular");
+    q.addQueryItem("part", "snippet,contentDetails,statistics");
+    q.addQueryItem("chart", "mostPopular");
 
-        if (!category.isEmpty())
-            urlHelper.addQueryItem("videoCategoryId", category);
+    if (!category.isEmpty())
+        q.addQueryItem("videoCategoryId", category);
 
-        if (!regionId.isEmpty())
-            urlHelper.addQueryItem("regionCode", regionId);
+    if (!regionId.isEmpty())
+        q.addQueryItem("regionCode", regionId);
 
-        urlHelper.addQueryItem("maxResults", QString::number(max));
+    q.addQueryItem("maxResults", QString::number(max));
 
-    }
-    QObject *reply = The::http()->get(url);
+    url.setQuery(q);
+
+    QObject *reply = HttpUtils::yt().get(url);
+    qDebug() << url;
     connect(reply, SIGNAL(data(QByteArray)), SLOT(parseResults(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
+    connect(reply, SIGNAL(error(QString)), SLOT(requestError(QString)));
 }
 
 void YTStandardFeed::parseResults(QByteArray data) {
     if (aborted) return;
 
     YT3ListParser parser(data);
-    QList<Video*> videos = parser.getVideos();
+    const QVector<Video*> &videos = parser.getVideos();
 
     bool tryingWithNewToken = setPageToken(parser.getNextPageToken());
     if (tryingWithNewToken) return;
@@ -89,56 +80,10 @@ void YTStandardFeed::parseResults(QByteArray data) {
     emit finished(videos.size());
 }
 
-#else
-
-void YTStandardFeed::loadVideos(int max, int startIndex) {
-    aborted = false;
-
-    QString s = "http://gdata.youtube.com/feeds/api/standardfeeds/";
-    if (!regionId.isEmpty()) s += regionId + "/";
-    s += feedId;
-    if (!category.isEmpty()) s += "_" + category;
-
-    QUrl url(s);
-    {
-        QUrlQueryHelper urlHelper(url);
-        urlHelper.addQueryItem("v", "2");
-
-        if (feedId != "most_shared" && feedId != "on_the_web") {
-            QString t = time;
-            if (t.isEmpty()) t = "today";
-            urlHelper.addQueryItem("time", t);
-        }
-
-        urlHelper.addQueryItem("max-results", QString::number(max));
-        urlHelper.addQueryItem("start-index", QString::number(startIndex));
-    }
-    QObject *reply = The::http()->get(url);
-    connect(reply, SIGNAL(data(QByteArray)), SLOT(parse(QByteArray)));
-    connect(reply, SIGNAL(error(QNetworkReply*)), SLOT(requestError(QNetworkReply*)));
-}
-
-void YTStandardFeed::parseResults(QByteArray data) {
-    if (aborted) return;
-
-    YTFeedReader reader(data);
-    QList<Video*> videos = reader.getVideos();
-
-    emit gotVideos(videos);
-    emit finished(videos.size());
-}
-
-#endif
-
 void YTStandardFeed::abort() {
     aborted = true;
 }
 
-const QStringList & YTStandardFeed::getSuggestions() {
-    static const QStringList l;
-    return l;
-}
-
-void YTStandardFeed::requestError(QNetworkReply *reply) {
-    emit error(reply->errorString());
+void YTStandardFeed::requestError(const QString &message) {
+    emit error(message);
 }