示例#1
0
        public void SetUploadItem(List <StorageUploadItem> uploadItems, string caption)
        {
            try
            {
                if (!string.IsNullOrEmpty(caption))
                {
                    caption = caption.Replace("\r", "\n");
                }
                if (uploadItems.Count == 0)
                {
                    return;
                }
                for (int i = 0; i < uploadItems.Count; i++)
                {
                    uploadItems[i].Caption = caption;
                }

                if (uploadItems.Count == 1)
                {
                    var uploader = new Uploader();
                    uploader.UploadFile(uploadItems[0]);
                }
                else
                {
                    for (int i = 0; i < uploadItems.Count; i++)
                    {
                        uploadItems[i].IsAlbum = true;

                        var up       = uploadItems[i];
                        var uploader = new Uploader();
                        uploader.OnUploadCompleted += StorageUploadOnUploadCompleted;
                        uploader.UploadFile(up);
                        Uploads.Add(uploader);
                    }
                }

                AppUploadHelper.Uploaders.Add(this);
            }
            catch { }
        }
示例#2
0
        private async void ConfigureAlbum()
        {
            try
            {
                MainPage.Current?.ShowMediaUploadingUc();
                var instaUri        = InstagramApiSharp.Helpers.UriCreator.GetMediaAlbumConfigureUri();
                var clientSidecarId = Uploader.GenerateUploadId();
                var childrenArray   = new JArray();

                foreach (var album in Uploads)
                {
                    childrenArray.Add(album.GetMediaConfigure());
                }
                var retryContext = Uploader.GetRetryContext();
                var _user        = InstaApi.GetLoggedUser();
                var _deviceInfo  = InstaApi.GetCurrentDevice();
                //{"date_time_digitalized", DateTime.UtcNow.ToString("yyyy:MM:dd+hh:mm:ss")},
                //{"date_time_original", DateTime.UtcNow.ToString("yyyy:MM:dd+hh:mm:ss")},
                //{"is_suggested_venue", "false"},

                var _httpRequestProcessor = InstaApi.HttpRequestProcessor;
                var data = new JObject
                {
                    { "_uuid", _deviceInfo.DeviceGuid.ToString() },
                    { "_uid", _user.LoggedInUser.Pk.ToString() },
                    { "_csrftoken", _user.CsrfToken },
                    { "caption", Uploads[0].UploadItem.Caption ?? "" },
                    { "client_sidecar_id", clientSidecarId },
                    { "upload_id", clientSidecarId },
                    { "timezone_offset", InstaApi.GetTimezoneOffset().ToString() },
                    { "source_type", "4" },
                    { "device_id", _deviceInfo.DeviceId },
                    { "creation_logger_session_id", Guid.NewGuid().ToString() },
                    {
                        "device", new JObject
                        {
                            { "manufacturer", _deviceInfo.HardwareManufacturer },
                            { "model", _deviceInfo.DeviceModelIdentifier },
                            { "android_release", _deviceInfo.AndroidVer.VersionNumber },
                            { "android_version", int.Parse(_deviceInfo.AndroidVer.APILevel) }
                        }
                    },
                    { "children_metadata", childrenArray },
                };
                if (Uploads[0].UploadItem.DisableComments)
                {
                    data.Add("disable_comments", "1");
                }
                if (Uploads[0].UploadItem.Location != null)
                {
                    data.Add("location", Uploads[0].UploadItem.Location.GetJson());
                    data.Add("date_time_digitalized", DateTime.Now.ToString("yyyy:dd:MM+h:mm:ss"));
                }
                var request  = InstaApi.HttpHelper.GetSignedRequest(HttpMethod.Post, instaUri, _deviceInfo, data);
                var response = await _httpRequestProcessor.SendAsync(request);

                var json = await response.Content.ReadAsStringAsync();

                MainPage.Current?.HideMediaUploadingUc();

                var mediaResponse = JsonConvert.DeserializeObject <InstaMediaAlbumResponse>(json);
                var converter     = ConvertersFabric.Instance.GetSingleMediaFromAlbumConverter(mediaResponse);
                try
                {
                    var obj = converter.Convert();
                    if (obj != null)
                    {
                        Main.MainView.Current?.MainVM.PostsGenerator.Items.Insert(0, new InstaPost
                        {
                            Media = obj,
                            Type  = InstagramApiSharp.Enums.InstaFeedsType.Media
                        });
                        ShowNotify($"Your Album uploaded successfully...", 3500);
                        var up = Uploads[0];
                        NotificationHelper.ShowNotify(up.UploadItem.Caption?.Truncate(50), up.NotifyFile?.Path, "Album uploaded");
                    }
                }
                catch { }
                //RemoveThis();

                MainPage.Current?.HideMediaUploadingUc();
            }
            catch (Exception ex) { ex.PrintException("ConfigureAlbum"); }
        }