public static void checkUpdates()
        {
            SketchfabRequest request = new SketchfabRequest(Urls.latestReleaseCheck);

            request.setCallback(onVersionCheckSuccess);
            getAPI().registerRequest(request);
        }
예제 #2
0
        void handleSearch(string response)
        {
            JSONNode  json  = Utils.JSONParse(response);
            JSONArray array = json["results"].AsArray;

            if (array == null)
            {
                return;
            }

            _prevCursorUrl = json["previous"];
            _nextCursorUrl = json["next"];

            // First model fetch from uid
            foreach (JSONNode node in array)
            {
                if (!isInModels(node["uid"]))
                {
                    // Add model to results
                    SketchfabModel model = new SketchfabModel(node, _defaultThumbnail);
                    model.previewUrl = getThumbnailUrl(node, 768);
                    _sketchfabModels.Add(node["uid"].Value, model);

                    // Request model thumbnail
                    SketchfabRequest request = new SketchfabRequest(getThumbnailUrl(node));
                    request.setCallback(handleThumbnail);
                    _api.registerRequest(request);
                }
            }
            _isFetching = false;
            Refresh();
        }
예제 #3
0
        private void publishModel(string zipPath)
        {
            byte[]  data     = File.ReadAllBytes(zipPath);
            WWWForm postForm = new WWWForm();
            Dictionary <string, string> parameters = buildParameterDictWWW();

            foreach (string param in parameters.Keys)
            {
                postForm.AddField(param, parameters[param]);
            }

            postForm.AddBinaryData("modelFile", data, zipPath, "application /zip");
            postForm.AddField("source", "unity-exporter");

            UnityWebRequest ure = UnityWebRequest.Post(SketchfabPlugin.Urls.postModel, postForm);

            ure.SetRequestHeader("Authorization", _logger.getHeader()["Authorization"]);
            SketchfabRequest request = new SketchfabRequest(ure);

            request.setCallback(onModelPublished);
            request.setProgressCallback(handleUploadCallback);
            request.setFailedCallback(handleUploadError);
            _api.registerRequest(request);
            _uploadRequest = request;
        }
예제 #4
0
        public void requestCanPrivate()
        {
            SketchfabRequest canPrivateRequest = new SketchfabRequest(SketchfabPlugin.Urls.userAccount, getHeader());

            canPrivateRequest.setCallback(onCanPrivate);
            SketchfabPlugin.getAPI().registerRequest(canPrivateRequest);
        }
        public static void retrieveBannerImage()
        {
            SketchfabRequest request = new SketchfabRequest(Urls.bannerUrl);

            request.setCallback(onBannerRetrieved);
            getAPI().registerRequest(request);
        }
예제 #6
0
        // Categories
        void fetchCategories()
        {
            _categories = new Dictionary <string, string>();
            SketchfabRequest request = new SketchfabRequest(SketchfabPlugin.Urls.categoryEndpoint);

            request.setCallback(handleCategories);
            _api.registerRequest(request);
        }
예제 #7
0
        void startSearch(string cursor = "")
        {
            _hasFetchedPreviews = false;
            SketchfabRequest request = new SketchfabRequest(SketchfabPlugin.Urls.searchEndpoint + _lastQuery + cursor);

            request.setCallback(handleSearch);
            _api.registerRequest(request);
        }
예제 #8
0
        void requestArchive()
        {
            SketchfabRequest request = new SketchfabRequest(_archiveUrl);

            request.setCallback(handleArchive);
            request.setProgressCallback(handleDownloadCallback);
            SketchfabPlugin.getAPI().registerRequest(request);
        }
        void requestArchive(string modelUrl)
        {
            SketchfabRequest request = new SketchfabRequest(_currentModel.tempDownloadUrl);

            request.setCallback(handleArchive);
            request.setProgressCallback(handleDownloadCallback);
            SketchfabPlugin.getAPI().registerRequest(request);
        }
예제 #10
0
        public void fetchGLTFModel(string uid, RefreshCallback fetchedCallback, Dictionary <string, string> headers)
        {
            string url = SketchfabPlugin.Urls.modelEndPoint + "/" + uid + "/download";

            _modelRequest = new SketchfabRequest(url, headers);
            _modelRequest.setCallback(handleDownloadAPIResponse);
            _window._browserManager._api.registerRequest(_modelRequest);
        }
        void startSearch(string cursor = "")
        {
            _hasFetchedPreviews = false;
            SketchfabRequest request = new SketchfabRequest(_lastQuery + cursor, SketchfabPlugin.getLogger().getHeader());

            request.setCallback(handleSearch);
            _api.registerRequest(request);
        }
예제 #12
0
        void searchCursor(string cursorUrl)
        {
            _hasFetchedPreviews = false;
            SketchfabRequest request = new SketchfabRequest(cursorUrl, SketchfabPlugin.getLogger().getHeader());

            request.setCallback(handleSearch);
            _api.registerRequest(request);
        }
예제 #13
0
 public void fetchModelInfo(string uid)
 {
     if (_sketchfabModels[uid].licenseJson == null)
     {
         SketchfabRequest request = new SketchfabRequest(SketchfabPlugin.Urls.modelEndPoint + "/" + uid);
         request.setCallback(handleModelData);
         _api.registerRequest(request);
     }
 }
예제 #14
0
        public void requestUserData()
        {
            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Authorization", "Bearer " + EditorPrefs.GetString(accessTokenKey));
            SketchfabRequest request = new SketchfabRequest(SketchfabPlugin.Urls.userMe, headers);

            request.setCallback(handleUserData);
            request.setFailedCallback(logout);
            SketchfabPlugin.getAPI().registerRequest(request);
        }
예제 #15
0
        public void requestAccessToken(string user_name, string user_password)
        {
            List <IMultipartFormSection> formData = new List <IMultipartFormSection>();

            formData.Add(new MultipartFormDataSection("username", user_name));
            formData.Add(new MultipartFormDataSection("password", user_password));

            SketchfabRequest tokenRequest = new SketchfabRequest(SketchfabPlugin.Urls.oauth, formData);

            tokenRequest.setCallback(handleGetToken);
            tokenRequest.setFailedCallback(onLoginFailed);
            SketchfabPlugin.getAPI().registerRequest(tokenRequest);
        }
예제 #16
0
 // Model data
 public void fetchModelPreview()
 {
     if (!_hasFetchedPreviews)
     {
         foreach (SketchfabModel model in _sketchfabModels.Values)
         {
             // Request model thumbnail
             SketchfabRequest request = new SketchfabRequest(model.previewUrl);
             request.setCallback(handleThumbnail);
             _api.registerRequest(request);
         }
     }
     _hasFetchedPreviews = true;
 }
예제 #17
0
        public void requestAvatar(string url)
        {
            string access_token = EditorPrefs.GetString(accessTokenKey);

            if (access_token == null || access_token.Length < 30)
            {
                Debug.Log("Access token is invalid or inexistant");
                return;
            }

            Dictionary <string, string> headers = new Dictionary <string, string>();

            headers.Add("Authorization", "Bearer " + access_token);
            SketchfabRequest request = new SketchfabRequest(url, headers);

            request.setCallback(handleAvatar);
            SketchfabPlugin.getAPI().registerRequest(request);
        }
예제 #18
0
        void handleSearch(string response)
        {
            JSONNode  json  = Utils.JSONParse(response);
            JSONArray array = json["results"].AsArray;

            if (array == null)
            {
                return;
            }

            if (json["cursors"] != null)
            {
                if (json["cursors"]["next"].AsInt == 24)
                {
                    _prevCursor = "";
                }
                else if (_nextCursor != "null" && _nextCursor != "")
                {
                    _prevCursor = int.Parse(_nextCursor) - 24 + "";
                }

                _nextCursor = json["cursors"]["next"];
            }

            // First model fetch from uid
            foreach (JSONNode node in array)
            {
                _resultUids.Add(node["uid"]);
                if (!_sketchfabModels.ContainsKey(node["uid"]))
                {
                    // Add model to results
                    SketchfabModel model = new SketchfabModel(node, _defaultThumbnail);
                    model.previewUrl = getThumbnailUrl(node, 768);
                    _sketchfabModels.Add(node["uid"], model);

                    // Request model thumbnail
                    SketchfabRequest request = new SketchfabRequest(getThumbnailUrl(node));
                    request.setCallback(handleThumbnail);
                    _api.registerRequest(request);
                }
            }
            _isFetching = false;
            Refresh();
        }