]> git.sur5r.net Git - minitube/blobdiff - src/video.cpp
Smart date formatting
[minitube] / src / video.cpp
index 4e2192d51d001f6e0349de8193a79e37e5aa94cb..3761c4dd164ecf6851e17bfd5904a9ad94886708 100644 (file)
@@ -201,7 +201,7 @@ void Video::parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage) {
     // qDebug() << "fmtUrlMap" << fmtUrlMap;
     const QStringList formatUrls = fmtUrlMap.split(',', QString::SkipEmptyParts);
     QHash<int, QString> urlMap;
-    foreach(QString formatUrl, formatUrls) {
+    foreach(const QString &formatUrl, formatUrls) {
         // qDebug() << "formatUrl" << formatUrl;
         const QStringList urlParams = formatUrl.split('&', QString::SkipEmptyParts);
         // qDebug() << "urlParams" << urlParams;
@@ -209,7 +209,7 @@ void Video::parseFmtUrlMap(const QString &fmtUrlMap, bool fromWebPage) {
         int format = -1;
         QString url;
         QString sig;
-        foreach(QString urlParam, urlParams) {
+        foreach(const QString &urlParam, urlParams) {
             // qWarning() << urlParam;
             if (urlParam.startsWith("itag=")) {
                 int separator = urlParam.indexOf("=");
@@ -449,12 +449,12 @@ void Video::captureObject(const QString &name, const QString &js) {
 QString Video::decryptSignature(const QString &s) {
     if (sigFuncName.isEmpty()) return QString();
     QScriptEngine engine;
-    foreach (QString f, sigObjects.values()) {
+    foreach (const QString &f, sigObjects.values()) {
         QScriptValue value = engine.evaluate(f);
         if (value.isError())
             qWarning() << "Error in" << f << value.toString();
     }
-    foreach (QString f, sigFunctions.values()) {
+    foreach (const QString &f, sigFunctions.values()) {
         QScriptValue value = engine.evaluate(f);
         if (value.isError())
             qWarning() << "Error in" << f << value.toString();
@@ -473,8 +473,16 @@ QString Video::decryptSignature(const QString &s) {
 }
 
 QString Video::formattedDuration() const {
-    QString format = m_duration > 3600 ? "h:mm:ss" : "m:ss";
-    return QTime().addSecs(m_duration).toString(format);
+    int duration = m_duration;
+    QString res;
+    int seconds = duration % 60;
+    duration /= 60;
+    int minutes = duration % 60;
+    duration /= 60;
+    int hours = duration % 24;
+    if (hours == 0)
+        return res.asprintf("%d:%02d", minutes, seconds);
+    return res.asprintf("%d:%02d:%02d", hours, minutes, seconds);
 }
 
 void Video::saveDefinitionForUrl(const QString& url, const VideoDefinition& definition) {