X-Git-Url: https://git.sur5r.net/?p=minitube;a=blobdiff_plain;f=src%2Fyt%2Fytthumb.cpp;fp=src%2Fyt%2Fytthumb.cpp;h=d5659eb8d8dc6e89d26988013033df4ecd9d522f;hp=0000000000000000000000000000000000000000;hb=9ff1806f2db97d617aa96185b7bf17f77bbacbcb;hpb=707b121e136bbb650f012ad9a55010acf6dea6fd diff --git a/src/yt/ytthumb.cpp b/src/yt/ytthumb.cpp new file mode 100644 index 0000000..d5659eb --- /dev/null +++ b/src/yt/ytthumb.cpp @@ -0,0 +1,28 @@ +#include "ytthumb.h" + +#include "http.h" +#include "httpreply.h" +#include "httputils.h" + +YTThumb::YTThumb(int width, int height, const QString &url) + : width(width), height(height), url(url) {} + +VariantPromise &YTThumb::load(QObject *parent) { + qDebug() << parent; + if (promise) { + qDebug() << "Already loading" << promise; + return *promise; + } + promise = new VariantPromise(parent); + promise->connect(HttpUtils::yt().get(url), &HttpReply::finished, promise, [this](auto &reply) { + // clear promise member before emitting signals + auto promise2 = promise; + promise = nullptr; + if (reply.isSuccessful()) { + promise2->resolve(reply.body()); + } else { + promise2->reject(reply.reasonPhrase()); + } + }); + return *promise; +}