Add settings. Add searching by movie title on TheMovieDB.
This commit is contained in:
		| @@ -4,7 +4,7 @@ project(DoViGUI VERSION 0.1 LANGUAGES CXX) | ||||
|  | ||||
| set(CMAKE_CXX_STANDARD_REQUIRED ON) | ||||
|  | ||||
| find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Core) | ||||
| find_package(Qt6 6.4 REQUIRED COMPONENTS Quick Core Network) | ||||
|  | ||||
| qt_standard_project_setup() | ||||
|  | ||||
| @@ -20,6 +20,10 @@ qt_add_qml_module(appDoViGUI | ||||
|     SOURCES QMediaInfo.h QMediaInfo.cpp | ||||
|     RESOURCES MediaInfo.dll | ||||
|     SOURCES QHandbrake.h QHandbrake.cpp | ||||
|     SOURCES | ||||
|     SOURCES | ||||
|     SOURCES | ||||
|     SOURCES qmoviedb.h qmoviedb.cpp | ||||
| ) | ||||
|  | ||||
| # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. | ||||
| @@ -34,7 +38,7 @@ set_target_properties(appDoViGUI PROPERTIES | ||||
| ) | ||||
|  | ||||
| target_link_libraries(appDoViGUI | ||||
|     PRIVATE Qt6::Quick Qt6::Core | ||||
|     PRIVATE Qt6::Quick Qt6::Core Qt6::Network | ||||
| ) | ||||
|  | ||||
| include(GNUInstallDirs) | ||||
|   | ||||
| @@ -2,17 +2,31 @@ | ||||
| #include <QQmlApplicationEngine> | ||||
| #include <QMediaInfo.h> | ||||
| #include <QHandbrake.h> | ||||
| #include "qmoviedb.h" | ||||
|  | ||||
| #include <QFile> | ||||
| #include <QQmlContext> | ||||
| #include <QSettings> | ||||
|  | ||||
|  | ||||
| int main(int argc, char *argv[]) | ||||
| { | ||||
|     QGuiApplication app(argc, argv); | ||||
|     QCoreApplication::setOrganizationName("abissen"); | ||||
|     QCoreApplication::setApplicationName("DoViGUI"); | ||||
|     QSettings settings; | ||||
|  | ||||
|  | ||||
|     QMediaInfo mInfo(&app); | ||||
|  | ||||
|     if (QString::compare(settings.value("MovieDB API Key").toString(), "", Qt::CaseInsensitive) == 0) { | ||||
|         qWarning() << "Set MovieDB API key in settings file."; | ||||
|         settings.setValue("MovieDB API Key", ""); | ||||
|     } | ||||
|     QMovieDB movieDB(settings.value("MovieDB API Key").toString()); | ||||
|  | ||||
|     movieDB.searchMovieTitle("The Shawshank Redemption"); | ||||
|  | ||||
| //    //Check if HDR/DolbyVision | ||||
| //    enum QMediaInfo::HDR_Type hdrType = mInfo.getHDRType(__T("Cosmos.mkv")); | ||||
| //    if (hdrType >= 0) { | ||||
|   | ||||
							
								
								
									
										29
									
								
								DoViGUI/qmoviedb.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								DoViGUI/qmoviedb.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,29 @@ | ||||
| #include "qmoviedb.h" | ||||
| #include "QNetworkReply" | ||||
| #include "QDebug" | ||||
|  | ||||
| QMovieDB::QMovieDB(QString apiKey, QObject *parent) | ||||
|     : QObject{parent}, netMan(new QNetworkAccessManager(this)) { | ||||
|     movieDbApiKey = apiKey; | ||||
|     QObject::connect(netMan, &QNetworkAccessManager::finished, this, &QMovieDB::receiveReply); | ||||
| } | ||||
|  | ||||
| void QMovieDB::searchMovieTitle(const QString title) | ||||
| { | ||||
|     QNetworkRequest req; | ||||
|     req.setRawHeader("Accept", "application/json"); | ||||
|  | ||||
|     QString bearer = "Bearer " + movieDbApiKey; | ||||
|     req.setRawHeader("Authorization", bearer.toUtf8()); | ||||
|  | ||||
|     QByteArray URL = QUrl::toPercentEncoding(title); | ||||
|     URL = "https://api.themoviedb.org/3/search/movie?query=" + URL + "&include_adult=false&language=en-US&page=1"; | ||||
|  | ||||
|     req.setUrl(QUrl(URL)); | ||||
|     netMan->get(req); | ||||
| } | ||||
|  | ||||
| void QMovieDB::receiveReply(QNetworkReply *reply) | ||||
| { | ||||
|     qInfo() << reply->readAll(); | ||||
| } | ||||
							
								
								
									
										25
									
								
								DoViGUI/qmoviedb.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								DoViGUI/qmoviedb.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| #ifndef QMOVIEDB_H | ||||
| #define QMOVIEDB_H | ||||
|  | ||||
| #include <QObject> | ||||
| #include <QNetworkAccessManager> | ||||
|  | ||||
| class QMovieDB : public QObject | ||||
| { | ||||
|     Q_OBJECT | ||||
| public: | ||||
|     explicit QMovieDB(QString apiKey, QObject *parent = nullptr); | ||||
|  | ||||
|     QNetworkAccessManager *netMan; | ||||
|  | ||||
|     void searchMovieTitle(const QString title); | ||||
| private: | ||||
|     QString movieDbApiKey; | ||||
|  | ||||
| private slots: | ||||
|     void receiveReply(QNetworkReply *reply); | ||||
|  | ||||
| signals: | ||||
| }; | ||||
|  | ||||
| #endif // QMOVIEDB_H | ||||
		Reference in New Issue
	
	Block a user