#include "ytregions.h"
#include "invidious.h"
+#include "js.h"
#include "videoapi.h"
#ifdef MEDIA_QTAV
#include "updater.h"
#endif
+#include "subscriptionimportview.h"
+
namespace {
MainWindow *mainWindowInstance;
}
Invidious::instance().initServers();
} else if (VideoAPI::impl() == VideoAPI::YT3) {
YT3::instance().initApiKeys();
+ } else if (VideoAPI::impl() == VideoAPI::JS) {
+ JS::instance().initialize(QUrl(QLatin1String(Constants::WEBSITE) + "-ws/bundle3.js"));
+ // JS::instance().initialize(QUrl("http://localhost:8000/bundle-test.js"));
+ Invidious::instance().initServers();
}
+ connect(JsFunctions::instance(), &JsFunctions::ready, this, [] {
+ auto ua = JsFunctions::instance()->string("userAgent()").toUtf8();
+ JS::instance().getNamFactory().setRequestHeaders({{"User-Agent", ua}});
+ });
+
QTimer::singleShot(100, this, &MainWindow::lazyInit);
}
searchParams->setKeywords(query);
showMedia(searchParams);
}
- }
+ } else
+ showMessage(tr("Make yourself comfortable"));
// Global shortcuts
GlobalShortcuts &shortcuts = GlobalShortcuts::instance();
fullscreenTimer->setSingleShot(true);
connect(fullscreenTimer, SIGNAL(timeout()), SLOT(hideFullscreenUI()));
- JsFunctions::instance();
-
// Hack to give focus to searchlineedit
View *view = qobject_cast<View *>(views->currentWidget());
if (view == homeView) {
action->setEnabled(false);
actionMap.insert("refineSearch", action);
- action = new QAction(YTRegions::worldwideRegion().name, this);
+ action = new QAction(YTRegions::defaultRegion().name, this);
actionMap.insert("worldwideRegion", action);
action = new QAction(YTRegions::localRegion().name, this);
action->setStatusTip(tr("Hide videos that may contain inappropriate content"));
action->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_K));
action->setCheckable(true);
- action->setVisible(VideoAPI::impl() == VideoAPI::YT3);
+ action->setVisible(VideoAPI::impl() != VideoAPI::IV);
actionMap.insert("safeSearch", action);
action = new QAction(tr("Toggle &Menu Bar"), this);
connect(action, SIGNAL(triggered()), SLOT(toggleToolbarMenu()));
actionMap.insert("toolbarMenu", action);
+ action = new QAction(tr("Import Subscriptions..."), this);
+ action->setMenuRole(QAction::ApplicationSpecificRole);
+ connect(action, &QAction::triggered, this, [this] {
+ if (!subscriptionImportView) {
+ subscriptionImportView = new SubscriptionImportView(this);
+ views->addWidget(subscriptionImportView);
+ }
+ showView(subscriptionImportView);
+ });
+ actionMap.insert("importSubscriptions", action);
+
#ifdef APP_MAC_STORE
action = new QAction(tr("&Love %1? Rate it!").arg(Constants::NAME), this);
actionMap.insert("appStore", action);
// call hide method on the current view
View *oldView = qobject_cast<View *>(views->currentWidget());
if (oldView) {
+ oldView->willDisappear();
oldView->disappear();
oldView->setEnabled(false);
oldView->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
} else
qDebug() << "Cannot cast old view";
+ view->willAppear();
view->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
view->setEnabled(true);
views->setCurrentWidget(view);
view->appear();
+ view->didAppear();
+ if (oldView) oldView->didDisappear();
QString title = view->getTitle();
if (title.isEmpty())