File indexing completed on 2024-06-16 04:38:28

0001 /*
0002     SPDX-FileCopyrightText: 2023 Mladen Milinkovic <max@smoothware.net>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #ifndef GOOGLECLOUDENGINE_H
0007 #define GOOGLECLOUDENGINE_H
0008 
0009 #include "ui_googlecloudengine.h"
0010 
0011 #include "translate/translateengine.h"
0012 
0013 #include <QDateTime>
0014 #include <QList>
0015 
0016 QT_FORWARD_DECLARE_CLASS(QNetworkAccessManager)
0017 
0018 namespace SubtitleComposer {
0019 
0020 class GoogleCloudEngine : public TranslateEngine
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     explicit GoogleCloudEngine(QObject *parent = nullptr);
0026     virtual ~GoogleCloudEngine();
0027 
0028     QString name() const override { return QStringLiteral("Google Cloud"); }
0029 
0030     void settings(QWidget *widget) override;
0031     void translate(QVector<QString> &textLines) override;
0032 
0033 private:
0034     bool parseJSON();
0035     void login();
0036     bool authenticate();
0037     void authenticated();
0038     bool languagesUpdate();
0039     void languagesUpdated();
0040 
0041 private:
0042     QNetworkAccessManager *m_netManager;
0043     Ui::GoogleCloudEngine *m_ui;
0044 
0045     QString m_projectId;
0046     QString m_clientEmail;
0047     QString m_privateKeyId;
0048     QString m_privateKey;
0049     QString m_subject;
0050     QString m_tokenUrl;
0051 };
0052 } // namespace SubtitleComposer
0053 
0054 #endif // GOOGLECLOUDENGINE_H