handle running of non .svo.json JSON files from mp CDN

This commit is contained in:
Stephen Birarda 2016-07-08 15:47:56 -07:00
parent 5bce924eda
commit 43967dc9a6
2 changed files with 24 additions and 6 deletions

View file

@ -170,7 +170,8 @@ static QTimer pingTimer;
static const QString SNAPSHOT_EXTENSION = ".jpg"; static const QString SNAPSHOT_EXTENSION = ".jpg";
static const QString SVO_EXTENSION = ".svo"; static const QString SVO_EXTENSION = ".svo";
static const QString SVO_JSON_EXTENSION = ".svo.json"; static const QString SVO_JSON_EXTENSION = ".svo.json";
static const QString JSON_EXTENSION = ".json";
static const QString JS_EXTENSION = ".js"; static const QString JS_EXTENSION = ".js";
static const QString FST_EXTENSION = ".fst"; static const QString FST_EXTENSION = ".fst";
static const QString FBX_EXTENSION = ".fbx"; static const QString FBX_EXTENSION = ".fbx";
@ -202,13 +203,16 @@ static const QString DESKTOP_LOCATION = QStandardPaths::writableLocation(QStanda
Setting::Handle<int> maxOctreePacketsPerSecond("maxOctreePPS", DEFAULT_MAX_OCTREE_PPS); Setting::Handle<int> maxOctreePacketsPerSecond("maxOctreePPS", DEFAULT_MAX_OCTREE_PPS);
static const QString MARKETPLACE_CDN_HOSTNAME = "mpassets.highfidelity.com";
const QHash<QString, Application::AcceptURLMethod> Application::_acceptedExtensions { const QHash<QString, Application::AcceptURLMethod> Application::_acceptedExtensions {
{ SNAPSHOT_EXTENSION, &Application::acceptSnapshot }, { SNAPSHOT_EXTENSION, &Application::acceptSnapshot },
{ SVO_EXTENSION, &Application::importSVOFromURL }, { SVO_EXTENSION, &Application::importSVOFromURL },
{ SVO_JSON_EXTENSION, &Application::importSVOFromURL }, { SVO_JSON_EXTENSION, &Application::importSVOFromURL },
{ AVA_JSON_EXTENSION, &Application::askToWearAvatarAttachmentUrl },
{ JSON_EXTENSION, &Application::importJSONFromURL },
{ JS_EXTENSION, &Application::askToLoadScript }, { JS_EXTENSION, &Application::askToLoadScript },
{ FST_EXTENSION, &Application::askToSetAvatarUrl }, { FST_EXTENSION, &Application::askToSetAvatarUrl }
{ AVA_JSON_EXTENSION, &Application::askToWearAvatarAttachmentUrl }
}; };
class DeadlockWatchdogThread : public QThread { class DeadlockWatchdogThread : public QThread {
@ -1969,7 +1973,22 @@ void Application::resizeGL() {
} }
} }
bool Application::importJSONFromURL(const QString& urlString) {
// we only load files that terminate in just .json (not .svo.json and not .ava.json)
// if they come from the High Fidelity Marketplace Assets CDN
QUrl jsonURL { urlString };
if (jsonURL.host().endsWith(MARKETPLACE_CDN_HOSTNAME)) {
emit svoImportRequested(urlString);
return true;
} else {
return false;
}
}
bool Application::importSVOFromURL(const QString& urlString) { bool Application::importSVOFromURL(const QString& urlString) {
emit svoImportRequested(urlString); emit svoImportRequested(urlString);
return true; return true;
} }
@ -4807,10 +4826,8 @@ bool Application::askToSetAvatarUrl(const QString& url) {
bool Application::askToLoadScript(const QString& scriptFilenameOrURL) { bool Application::askToLoadScript(const QString& scriptFilenameOrURL) {
QMessageBox::StandardButton reply; QMessageBox::StandardButton reply;
static const QString MARKETPLACE_SCRIPT_URL_HOSTNAME_SUFFIX = "mpassets.highfidelity.com";
QString shortName = scriptFilenameOrURL; QString shortName = scriptFilenameOrURL;
if (shortName.contains(MARKETPLACE_SCRIPT_URL_HOSTNAME_SUFFIX)) { if (shortName.contains(MARKETPLACE_CDN_HOSTNAME)) {
shortName = shortName.mid(shortName.lastIndexOf('/') + 1); shortName = shortName.mid(shortName.lastIndexOf('/') + 1);
} }

View file

@ -380,6 +380,7 @@ private:
void displaySide(RenderArgs* renderArgs, Camera& whichCamera, bool selfAvatarOnly = false); void displaySide(RenderArgs* renderArgs, Camera& whichCamera, bool selfAvatarOnly = false);
bool importJSONFromURL(const QString& urlString);
bool importSVOFromURL(const QString& urlString); bool importSVOFromURL(const QString& urlString);
bool nearbyEntitiesAreReadyForPhysics(); bool nearbyEntitiesAreReadyForPhysics();