cloneVideo->m_title = m_title;
cloneVideo->m_description = m_description;
cloneVideo->m_author = m_author;
+ cloneVideo->m_authorUri = m_authorUri;
cloneVideo->m_webpage = m_webpage;
cloneVideo->m_streamUrl = m_streamUrl;
cloneVideo->m_thumbnail = m_thumbnail;
- cloneVideo->m_thumbnailUrls = m_thumbnailUrls;
+ cloneVideo->m_thumbnailUrl = m_thumbnailUrl;
+ cloneVideo->m_mediumThumbnailUrl = m_mediumThumbnailUrl;
cloneVideo->m_duration = m_duration;
cloneVideo->m_published = m_published;
cloneVideo->m_viewCount = m_viewCount;
return cloneVideo;
}
-void Video::preloadThumbnail() {
- if (m_thumbnailUrls.isEmpty()) return;
- QObject *reply = The::http()->get(m_thumbnailUrls.first());
+void Video::setWebpage(QUrl webpage) {
+ m_webpage = webpage;
+
+ // Get Video ID
+ // youtube-dl line 428
+ // QRegExp re("^((?:http://)?(?:\\w+\\.)?youtube\\.com/(?:(?:v/)|(?:(?:watch(?:\\.php)?)?\\?(?:.+&)?v=)))?([0-9A-Za-z_-]+)(?(1).+)?$");
+ QRegExp re("^https?://www\\.youtube\\.com/watch\\?v=([0-9A-Za-z_-]+).*");
+ bool match = re.exactMatch(m_webpage.toString());
+ if (!match || re.numCaptures() < 1) {
+ qDebug() << QString("Cannot get video id for %1").arg(m_webpage.toString());
+ // emit errorStreamUrl(QString("Cannot get video id for %1").arg(m_webpage.toString()));
+ // loadingStreamUrl = false;
+ return;
+ }
+ videoId = re.cap(1);
+}
+
+void Video::loadThumbnail() {
+ QObject *reply = The::http()->get(m_thumbnailUrl);
connect(reply, SIGNAL(data(QByteArray)), SLOT(setThumbnail(QByteArray)));
}
void Video::setThumbnail(QByteArray bytes) {
- m_thumbnail = QImage::fromData(bytes);
+ m_thumbnail.loadFromData(bytes);
+ m_thumbnail = m_thumbnail.scaled(160, 90);
emit gotThumbnail();
}
-const QImage Video::thumbnail() const {
- return m_thumbnail;
+void Video::loadMediumThumbnail() {
+ if (m_mediumThumbnailUrl.isEmpty()) return;
+ QObject *reply = The::http()->get(m_mediumThumbnailUrl);
+ connect(reply, SIGNAL(data(QByteArray)), SIGNAL(gotMediumThumbnail(QByteArray)));
}
void Video::loadStreamUrl() {
loadingStreamUrl = true;
// https://develop.participatoryculture.org/trac/democracy/browser/trunk/tv/portable/flashscraper.py
-
- // Get Video ID
- // youtube-dl line 428
- // QRegExp re("^((?:http://)?(?:\\w+\\.)?youtube\\.com/(?:(?:v/)|(?:(?:watch(?:\\.php)?)?\\?(?:.+&)?v=)))?([0-9A-Za-z_-]+)(?(1).+)?$");
- QRegExp re("^http://www\\.youtube\\.com/watch\\?v=([0-9A-Za-z_-]+).*");
- bool match = re.exactMatch(m_webpage.toString());
- if (!match || re.numCaptures() < 1) {
- emit errorStreamUrl(QString("Cannot get video id for %1").arg(m_webpage.toString()));
- loadingStreamUrl = false;
- return;
- }
- videoId = re.cap(1);
-
getVideoInfo();
-
}
void Video::getVideoInfo() {
// see you in gotHeadHeaders()
}
+
+
+QString Video::formattedDuration() const {
+ QString format = m_duration > 3600 ? "h:mm:ss" : "m:ss";
+ return QTime().addSecs(m_duration).toString(format);
+}