+2.5.2
+- Fixed VEVO videos
+
+2.5.1
+- Fixed VEVO videos
+
2.5
- Upgraded to Qt 5
- HiDPI (aka Retina Display) support
<message>
<location filename="src/datautils.cpp" line="88"/>
<source>Just now</source>
- <translation type="unfinished"/>
+ <translation>Agora mesmo</translation>
</message>
<message numerus="yes">
<location filename="src/datautils.cpp" line="90"/>
<message>
<location filename="local/src/extra.cpp" line="251"/>
<source>The executable file has been tempered with, maybe by a virus.</source>
- <translation type="unfinished"/>
+ <translation>O arquivo executável foi temperada com, talvez por um vírus.</translation>
</message>
<message>
<location filename="local/src/extra.cpp" line="252"/>
<source>%1 will not run. Try installing again.</source>
- <translation type="unfinished"/>
+ <translation>%1 não será executado. Tente instalar novamente.</translation>
</message>
<message>
<location filename="local/src/extra.cpp" line="253"/>
<source>Quit</source>
- <translation type="unfinished"/>
+ <translation>Sair</translation>
</message>
<message>
<location filename="local/src/extra.cpp" line="254"/>
<source>Reinstall</source>
- <translation type="unfinished"/>
+ <translation>Reinstalar</translation>
</message>
</context>
<context>
<message>
<location filename="src/mainwindow.cpp" line="566"/>
<source>&Adjust Window Size</source>
- <translation type="unfinished"/>
+ <translation>&Ajuste o tamanho da janela</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="571"/>
<message>
<location filename="src/mainwindow.cpp" line="1158"/>
<source>&Loading...</source>
- <translation type="unfinished"/>
+ <translation>&Carregando...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="1264"/>
<message>
<location filename="src/mediaview.cpp" line="1166"/>
<source>Unsubscribed from %1</source>
- <translation type="unfinished"/>
+ <translation>Não subscrito de %1</translation>
</message>
<message>
<location filename="src/mediaview.cpp" line="1169"/>
<source>Subscribed to %1</source>
- <translation type="unfinished"/>
+ <translation>Subscrito %1</translation>
</message>
<message>
<location filename="src/mediaview.cpp" line="808"/>
<message>
<location filename="src/datautils.cpp" line="88"/>
<source>Just now</source>
- <translation type="unfinished"/>
+ <translation>Тільки зараз</translation>
</message>
<message numerus="yes">
<location filename="src/datautils.cpp" line="90"/>
<message>
<location filename="local/src/extra.cpp" line="252"/>
<source>%1 will not run. Try installing again.</source>
- <translation type="unfinished"/>
+ <translation>%1 не буде працювати. Спробуйте встановити заново</translation>
</message>
<message>
<location filename="local/src/extra.cpp" line="253"/>
<source>Quit</source>
- <translation type="unfinished"/>
+ <translation>Вийти</translation>
</message>
<message>
<location filename="local/src/extra.cpp" line="254"/>
<source>Reinstall</source>
- <translation type="unfinished"/>
+ <translation>Перевстановити</translation>
</message>
</context>
<context>
<message>
<location filename="src/mainwindow.cpp" line="566"/>
<source>&Adjust Window Size</source>
- <translation type="unfinished"/>
+ <translation>&Змінити розмір вікна</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="571"/>
<source>&Stop After This Video</source>
- <translation>Зу&пинити після цього видиво</translation>
+ <translation>&Зупинити після цього відео</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="578"/>
<message>
<location filename="src/mainwindow.cpp" line="597"/>
<source>&Related Videos</source>
- <translation>Схо&жі видива</translation>
+ <translation>&Схожі відео</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="599"/>
<source>Watch videos related to the current one</source>
- <translation>Дивитися видива, пов’язані з поточним</translation>
+ <translation>Дивитися відео, пов’язані з поточним</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="605"/>
<message>
<location filename="src/mainwindow.cpp" line="670"/>
<source>&Video</source>
- <translation>&Видиво</translation>
+ <translation>&Відео</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="686"/>
<message>
<location filename="src/mainwindow.cpp" line="1158"/>
<source>&Loading...</source>
- <translation type="unfinished"/>
+ <translation>&Завантаження...</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="1264"/>
<message>
<location filename="src/mainwindow.cpp" line="362"/>
<source>Copy the Video Stream &URL</source>
- <translation>Копіювати посилання на ви&диво потік</translation>
+ <translation>Копіювати посилання на ві&део-потік</translation>
</message>
<message>
<location filename="src/mainwindow.cpp" line="369"/>
<message>
<location filename="src/mediaview.cpp" line="1166"/>
<source>Unsubscribed from %1</source>
- <translation type="unfinished"/>
+ <translation>Підписка на %1 анульована</translation>
</message>
<message>
<location filename="src/mediaview.cpp" line="1169"/>
<source>Subscribed to %1</source>
- <translation type="unfinished"/>
+ <translation>Підписка на %1 оформлена</translation>
</message>
<message>
<location filename="src/mediaview.cpp" line="808"/>
CONFIG += release
TEMPLATE = app
-VERSION = 2.5.1
+VERSION = 2.5.2
DEFINES += APP_VERSION="$$VERSION"
APP_NAME = Minitube
} else {
sigFuncName = funcNameRe.cap(1);
captureFunction(sigFuncName, js);
- // qWarning() << sigFunctions;
+ // qWarning() << sigFunctions << sigObjects;
}
#ifdef APP_DASH
}
void Video::captureFunction(const QString &name, const QString &js) {
- QRegExp funcRe("function\\s+" + QRegExp::escape(name) + "\\s*\\([" + jsNameChars + ",\\s]*\\)\\s*\\{[^\\}]+\\}");
- if (funcRe.indexIn(js) == -1) {
+ const QString argsAndBody = "\\s*\\([" + jsNameChars + ",\\s]*\\)\\s*\\{[^\\}]+\\}";
+ QString func;
+ QRegExp funcRe("function\\s+" + QRegExp::escape(name) + argsAndBody);
+ if (funcRe.indexIn(js) != -1) {
+ func = funcRe.cap(0);
+ } else {
// try var foo = function(bar) { };
- funcRe = QRegExp("var\\s+" + QRegExp::escape(name) + "\\s*=\\s*function\\s*\\([" + jsNameChars + ",\\s]*\\)\\s*\\{[^\\}]+\\}");
- if (funcRe.indexIn(js) == -1) {
- qWarning() << "Cannot capture function" << name;
- return;
+ funcRe = QRegExp("var\\s+" + QRegExp::escape(name) + "\\s*=\\s*function" + argsAndBody);
+ if (funcRe.indexIn(js) != -1) {
+ func = funcRe.cap(0);
+ } else {
+ // try ,gr= function(bar) { };
+ funcRe = QRegExp("[,\\s;}\\.\\)](" + QRegExp::escape(name) + "\\s*=\\s*function" + argsAndBody + ")");
+ if (funcRe.indexIn(js) != -1) {
+ func = funcRe.cap(1);
+ } else {
+ qWarning() << "Cannot capture function" << name;
+ return;
+ }
}
}
- QString func = funcRe.cap(0);
sigFunctions.insert(name, func);
// capture inner functions
}
void Video::captureObject(const QString &name, const QString &js) {
- QRegExp re("var\\s+" + QRegExp::escape(name) + "\\s*=\\s*\\{.+\\}\\s*;");
+ QRegExp re("var\\s+" + QRegExp::escape(name) + "\\s*=\\s*\\{.*\\}\\s*;");
re.setMinimal(true);
if (re.indexIn(js) == -1) {
qWarning() << "Cannot capture object" << name;