mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 11:48:52 +02:00
separate into four files
This commit is contained in:
parent
f9d8ccaeac
commit
056b90c662
4 changed files with 102 additions and 68 deletions
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
#include "Snapshot.h"
|
#include "Snapshot.h"
|
||||||
#include "scripting/WindowScriptingInterface.h"
|
#include "SnapshotUploader.h"
|
||||||
|
|
||||||
// filename format: hifi-snap-by-%username%-on-%date%_%time%_@-%location%.jpg
|
// filename format: hifi-snap-by-%username%-on-%date%_%time%_@-%location%.jpg
|
||||||
// %1 <= username, %2 <= date and time, %3 <= current location
|
// %1 <= username, %2 <= date and time, %3 <= current location
|
||||||
|
@ -173,60 +173,3 @@ void Snapshot::uploadSnapshot(const QString& filename) {
|
||||||
multiPart);
|
multiPart);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SnapshotUploader::uploadSuccess(QNetworkReply& reply) {
|
|
||||||
const QString STORY_UPLOAD_URL = "/api/v1/user_stories";
|
|
||||||
static SnapshotUploader uploader;
|
|
||||||
|
|
||||||
// parse the reply for the thumbnail_url
|
|
||||||
QByteArray contents = reply.readAll();
|
|
||||||
QJsonParseError jsonError;
|
|
||||||
auto doc = QJsonDocument::fromJson(contents, &jsonError);
|
|
||||||
if (jsonError.error == QJsonParseError::NoError) {
|
|
||||||
auto dataObject = doc.object().value("data").toObject();
|
|
||||||
QString thumbnailUrl = dataObject.value("thumbnail_url").toString();
|
|
||||||
QString imageUrl = dataObject.value("image_url").toString();
|
|
||||||
auto addressManager = DependencyManager::get<AddressManager>();
|
|
||||||
QString placeName = addressManager->getPlaceName();
|
|
||||||
if (placeName.isEmpty()) {
|
|
||||||
placeName = addressManager->getHost();
|
|
||||||
}
|
|
||||||
QString currentPath = addressManager->currentPath(true);
|
|
||||||
|
|
||||||
// create json post data
|
|
||||||
QJsonObject rootObject;
|
|
||||||
QJsonObject userStoryObject;
|
|
||||||
QJsonObject detailsObject;
|
|
||||||
detailsObject.insert("image_url", imageUrl);
|
|
||||||
QString pickledDetails = QJsonDocument(detailsObject).toJson();
|
|
||||||
userStoryObject.insert("details", pickledDetails);
|
|
||||||
userStoryObject.insert("thumbnail_url", thumbnailUrl);
|
|
||||||
userStoryObject.insert("place_name", placeName);
|
|
||||||
userStoryObject.insert("path", currentPath);
|
|
||||||
userStoryObject.insert("action", "snapshot");
|
|
||||||
rootObject.insert("user_story", userStoryObject);
|
|
||||||
|
|
||||||
auto accountManager = DependencyManager::get<AccountManager>();
|
|
||||||
JSONCallbackParameters callbackParams(&uploader, "createStorySuccess", &uploader, "createStoryFailure");
|
|
||||||
|
|
||||||
accountManager->sendRequest(STORY_UPLOAD_URL,
|
|
||||||
AccountManagerAuth::Required,
|
|
||||||
QNetworkAccessManager::PostOperation,
|
|
||||||
callbackParams,
|
|
||||||
QJsonDocument(rootObject).toJson());
|
|
||||||
|
|
||||||
} else {
|
|
||||||
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared(contents);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SnapshotUploader::uploadFailure(QNetworkReply& reply) {
|
|
||||||
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared(reply.readAll());
|
|
||||||
}
|
|
||||||
|
|
||||||
void SnapshotUploader::createStorySuccess(QNetworkReply& reply) {
|
|
||||||
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared("");
|
|
||||||
}
|
|
||||||
|
|
||||||
void SnapshotUploader::createStoryFailure(QNetworkReply& reply) {
|
|
||||||
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared(reply.readAll());
|
|
||||||
}
|
|
||||||
|
|
|
@ -32,16 +32,6 @@ private:
|
||||||
QUrl _URL;
|
QUrl _URL;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
class SnapshotUploader: public QObject {
|
|
||||||
Q_OBJECT
|
|
||||||
public slots:
|
|
||||||
void uploadSuccess(QNetworkReply& reply);
|
|
||||||
void uploadFailure(QNetworkReply& reply);
|
|
||||||
void createStorySuccess(QNetworkReply& reply);
|
|
||||||
void createStoryFailure(QNetworkReply& reply);
|
|
||||||
};
|
|
||||||
|
|
||||||
class Snapshot {
|
class Snapshot {
|
||||||
public:
|
public:
|
||||||
static QString saveSnapshot(QImage image);
|
static QString saveSnapshot(QImage image);
|
||||||
|
|
75
interface/src/ui/SnapshotUploader.cpp
Normal file
75
interface/src/ui/SnapshotUploader.cpp
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
//
|
||||||
|
// SnapshotUploader.cpp
|
||||||
|
// interface/src/ui
|
||||||
|
//
|
||||||
|
// Created by Howard Stearns on 8/22/2016
|
||||||
|
// Copyright 2016 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <QtCore/QJsonDocument>
|
||||||
|
#include <QtCore/QJsonArray>
|
||||||
|
#include <AddressManager.h>
|
||||||
|
#include "scripting/WindowScriptingInterface.h"
|
||||||
|
#include "SnapshotUploader.h"
|
||||||
|
|
||||||
|
void SnapshotUploader::uploadSuccess(QNetworkReply& reply) {
|
||||||
|
const QString STORY_UPLOAD_URL = "/api/v1/user_stories";
|
||||||
|
static SnapshotUploader uploader;
|
||||||
|
|
||||||
|
// parse the reply for the thumbnail_url
|
||||||
|
QByteArray contents = reply.readAll();
|
||||||
|
QJsonParseError jsonError;
|
||||||
|
auto doc = QJsonDocument::fromJson(contents, &jsonError);
|
||||||
|
if (jsonError.error == QJsonParseError::NoError) {
|
||||||
|
auto dataObject = doc.object().value("data").toObject();
|
||||||
|
QString thumbnailUrl = dataObject.value("thumbnail_url").toString();
|
||||||
|
QString imageUrl = dataObject.value("image_url").toString();
|
||||||
|
auto addressManager = DependencyManager::get<AddressManager>();
|
||||||
|
QString placeName = addressManager->getPlaceName();
|
||||||
|
if (placeName.isEmpty()) {
|
||||||
|
placeName = addressManager->getHost();
|
||||||
|
}
|
||||||
|
QString currentPath = addressManager->currentPath(true);
|
||||||
|
|
||||||
|
// create json post data
|
||||||
|
QJsonObject rootObject;
|
||||||
|
QJsonObject userStoryObject;
|
||||||
|
QJsonObject detailsObject;
|
||||||
|
detailsObject.insert("image_url", imageUrl);
|
||||||
|
QString pickledDetails = QJsonDocument(detailsObject).toJson();
|
||||||
|
userStoryObject.insert("details", pickledDetails);
|
||||||
|
userStoryObject.insert("thumbnail_url", thumbnailUrl);
|
||||||
|
userStoryObject.insert("place_name", placeName);
|
||||||
|
userStoryObject.insert("path", currentPath);
|
||||||
|
userStoryObject.insert("action", "snapshot");
|
||||||
|
rootObject.insert("user_story", userStoryObject);
|
||||||
|
|
||||||
|
auto accountManager = DependencyManager::get<AccountManager>();
|
||||||
|
JSONCallbackParameters callbackParams(&uploader, "createStorySuccess", &uploader, "createStoryFailure");
|
||||||
|
|
||||||
|
accountManager->sendRequest(STORY_UPLOAD_URL,
|
||||||
|
AccountManagerAuth::Required,
|
||||||
|
QNetworkAccessManager::PostOperation,
|
||||||
|
callbackParams,
|
||||||
|
QJsonDocument(rootObject).toJson());
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared(contents);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SnapshotUploader::uploadFailure(QNetworkReply& reply) {
|
||||||
|
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared(reply.readAll());
|
||||||
|
}
|
||||||
|
|
||||||
|
void SnapshotUploader::createStorySuccess(QNetworkReply& reply) {
|
||||||
|
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared(QString());
|
||||||
|
}
|
||||||
|
|
||||||
|
void SnapshotUploader::createStoryFailure(QNetworkReply& reply) {
|
||||||
|
emit DependencyManager::get<WindowScriptingInterface>()->snapshotShared(reply.readAll());
|
||||||
|
}
|
26
interface/src/ui/SnapshotUploader.h
Normal file
26
interface/src/ui/SnapshotUploader.h
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
//
|
||||||
|
// SnapshotUploader.h
|
||||||
|
// interface/src/ui
|
||||||
|
//
|
||||||
|
// Created by Howard Stearns on 8/22/2016
|
||||||
|
// Copyright 2016 High Fidelity, Inc.
|
||||||
|
//
|
||||||
|
// Distributed under the Apache License, Version 2.0.
|
||||||
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef hifi_SnapshotUploader_h
|
||||||
|
#define hifi_SnapshotUploader_h
|
||||||
|
|
||||||
|
#include <QObject>
|
||||||
|
#include <QtNetwork/QNetworkReply>
|
||||||
|
|
||||||
|
class SnapshotUploader : public QObject {
|
||||||
|
Q_OBJECT
|
||||||
|
public slots:
|
||||||
|
void uploadSuccess(QNetworkReply& reply);
|
||||||
|
void uploadFailure(QNetworkReply& reply);
|
||||||
|
void createStorySuccess(QNetworkReply& reply);
|
||||||
|
void createStoryFailure(QNetworkReply& reply);
|
||||||
|
};
|
||||||
|
#endif // hifi_SnapshotUploader_h
|
Loading…
Reference in a new issue