public StoryMenuDialog(InstaReelFeed reelFeed, InstaStoryItem storyItem, Views.Main.StoryView view)
        {
            StoryItem = storyItem;
            ReelFeed  = reelFeed;
            View      = view;
            InitializeComponent();
            LVMenu.Items.Add(new StoryMenu {
                Text = "Download", Command = StoryMenuCommand.Download
            });
            LVMenu.Items.Add(new StoryMenu {
                Text = "Share Link", Command = StoryMenuCommand.ShareLink
            });

            if (reelFeed.User.IsMine())
            {
                LVMenu.Items.Add(new StoryMenu {
                    Text = "Delete", Command = StoryMenuCommand.Delete
                });
            }
            else
            {
                LVMenu.Items.Add(new StoryMenu {
                    Text = "Report", Command = StoryMenuCommand.Report
                });
            }
            LVMenu.Items.Add(new StoryMenu {
                Text = "Cancel", Command = StoryMenuCommand.Cancel
            });
        }
Beispiel #2
0
        /// <summary>
        ///     Get user story reel feed. Contains user info last story including all story items.
        /// </summary>
        /// <param name="userId">User identifier (PK)</param>
        public async Task <IResult <InstaReelFeed> > GetUserStoryFeedAsync(long userId)
        {
            UserAuthValidator.Validate(_userAuthValidate);
            var feed = new InstaReelFeed();

            try
            {
                var userFeedUri = UriCreator.GetUserReelFeedUri(userId);
                var request     = HttpHelper.GetDefaultRequest(HttpMethod.Get, userFeedUri, _deviceInfo);
                var response    = await _httpRequestProcessor.SendAsync(request);

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

                if (response.StatusCode != HttpStatusCode.OK)
                {
                    return(Result.UnExpectedResponse <InstaReelFeed>(response, json));
                }
                var feedResponse = JsonConvert.DeserializeObject <InstaReelFeedResponse>(json);
                feed = ConvertersFabric.Instance.GetReelFeedConverter(feedResponse).Convert();
                return(Result.Success(feed));
            }
            catch (Exception exception)
            {
                _logger?.LogException(exception);
                return(Result.Fail(exception.Message, feed));
            }
        }
Beispiel #3
0
 public static StoryModel ToStoryModel(this InstaReelFeed model)
 {
     return(new StoryModel
     {
         CanReply = model.CanReply,
         CanReshare = model.CanReshare,
         ExpiringAt = model.ExpiringAt,
         HasBestiesMedia = model.HasBestiesMedia,
         Id = model.Id,
         Items = model.Items,
         LatestReelMedia = model.LatestReelMedia,
         MediaCount = model.MediaCount,
         PrefetchCount = model.PrefetchCount,
         Seen = model.Seen,
         User = model.User,
         Muted = model.Muted,
         Owner = model.Owner,
         ReelType = model.ReelType
     });
 }
Beispiel #4
0
        private void ReelShareImageExTapped(object sender, TappedRoutedEventArgs e)
        {
            try
            {
                if (sender is ImageEx imageEx && imageEx.DataContext is InstaDirectInboxItem data && data != null &&
                    data.ItemType == InstaDirectThreadItemType.ReelShare && data.ReelShareMedia != null)
                {
                    var reel = new InstaReelFeed
                    {
                        CreatedAt = data.ReelShareMedia.Media.TakenAt,
                        Id        = data.ReelShareMedia.Media.Id,
                        User      = data.ReelShareMedia.Media.User.ToUserShortFriendshipFull(),
                        CanReply  = data.ReelShareMedia.Media.CanReply,
                    };
                    reel.Items.Add(data.ReelShareMedia.Media);

                    NavigationService.Navigate(typeof(Main.StoryView), reel);
                }
            }
            catch { }
        }
Beispiel #5
0
 public UsersDialog(InstaStoryItem storyItem, InstaReelFeed reelFeed) : this()
 {
     StoryItem          = storyItem;
     ReelFeed           = reelFeed;
     UsersDialogCommand = UsersDialogCommand.Story;
     try
     {
         IsPrivate = reelFeed.User.IsPrivate;
     }
     catch { }
     try
     {
         if (IsPrivate)
         {
             txtPrivateAccount.Text        = $"Only {reelFeed.User.UserName.ToLower()}'s followers can see this story.";
             PrivateAccountGrid.Visibility = Visibility.Visible;
         }
         else
         {
             PrivateAccountGrid.Visibility = Visibility.Collapsed;
         }
     }
     catch { }
 }
Beispiel #6
0
        private async void LoadPage()
        {
            _ProgressBar.IsIndeterminate = true;
            var p   = PaginationParameters.MaxPagesToLoad(1);
            var res = await AppCore.InstaApi.GetDirectInboxAsync(p);

            p.NextId = res.Value.Inbox.OldestCursor;
            var res2 = await AppCore.InstaApi.GetDirectInboxAsync(p);

            if (res.Info.Message == "login_required")
            {
                //AppCore.InstaApi = null;
                AppCore.SaveUserInfo(null, null, false);
                MainPage.MainFrame.GoBack();
                return;
            }


            //TEST
            var User = AppCore.InstaApi.GetLoggedUser();
            var user = await AppCore.InstaApi.GetUserInfoByUsernameAsync(User.UserName);

            var items = await AppCore.InstaApi.GetUserStoryFeedAsync(user.Value.Pk);

            InstaUserShort You = new InstaUserShort()
            {
                UserName = "******", ProfilePicture = user.Value.ProfilePicUrl, Pk = user.Value.Pk
            };
            InstaReelFeed MyReel = new InstaReelFeed();

            MyReel.User = You;
            //MyReel.Seen = 0;
            MyReel.Items = items.Value.Items;
            //var m = (await AppCore.InstaApi.GetUserTimelineFeedAsync(p));
            //var first = m.Value.Medias.LastOrDefault();
            //var s = await AppCore.InstaApi.GetMediaCommentsAsync(first.InstaIdentifier.ToString(), p);

            //var sss = "";

            //          var ss = await AppCore.InstaApi.GetMediaLikersAsync(first.InstaIdentifier.ToString());

            //var sssds = "";
            var strs = await AppCore.InstaApi.GetStoryFeedAsync();

            if (strs.Value.Items.Exists(x => x.User.Pk == user.Value.Pk))
            {
                //strs.Value.Items.OrderBy(x => x.Seen != 0);
                var MyRemove = strs.Value.Items.FindIndex(x => x.User.Pk == user.Value.Pk);
                MyReel.Seen            = strs.Value.Items[MyRemove].Seen;
                MyReel.LatestReelMedia = strs.Value.Items[MyRemove].LatestReelMedia;
                strs.Value.Items.RemoveAt(MyRemove);
            }

            //

            strs.Value.Items.OrderBy(x => x.Seen_ranked_position != 0);
            strs.Value.Items.Insert(0, MyReel);

            StoriesList.ItemsSource = strs.Value.Items;
            if (HomePageItemssource != null)
            {
                HomePageItemssource.CollectionChanged -= HomePageItemssource_CollectionChanged;
            }

            HomePageItemssource = new GenerateHomePage <InstaMedia>(100000, (count) =>
            {
                //return tres[count];
                return(new InstaMedia());
            });

            HomePageItemssource.CollectionChanged += HomePageItemssource_CollectionChanged;
            //MediasCVS.Source = HomePageItemssource;
            mylist.ItemsSource = HomePageItemssource;

            //await HomePageItemssource.LoadMoreItemsAsync(20);

            //mylist.ItemsSource = res.Value.Medias;

            //mylist.ItemsSource = res.Value.Medias;

            _ProgressBar.IsIndeterminate = false;
            var sv = FindChildOfType <ScrollViewer>(mylist);

            sv.ViewChanged += Sv_ViewChanged;
            //await Task.Delay(2000);
            //DirectFr.Navigate(typeof(DirectsListView));
            //MainPage.MainFrame.Navigate(typeof(DirectsListView));
        }
Beispiel #7
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            if (e.NavigationMode != NavigationMode.Back)
            {
                AppCore.ModerateBack(CloseStories);
            }
            if (e.Parameter is InstaReelFeed)
            {
                this.DataContext = ((InstaReelFeed)e.Parameter);
                AnimationEnter();
                var           i     = ((InstaReelFeed)e.Parameter);
                InstaReelFeed story = null;
                if ((e.Parameter as InstaReelFeed).Items.Count != 0)
                {
                    story = e.Parameter as InstaReelFeed;
                }
                else
                {
                    story = (await AppCore.InstaApi.GetUserStoryFeedAsync(i.User.Pk)).Value;
                }
                foreach (var item in story.Items)
                {
                    item.Play = false;
                }
                Flipviews.ItemsSource = story.Items;
                for (int a = 0; a < Flipviews.Items.Count; a++)
                {
                    switch (story.Items[a].MediaType)
                    {
                    case 1:
                        SecondItemList.Add(6);
                        break;

                    case 2:
                        SecondItemList.Add(story.Items[a].VideoDuration);
                        break;
                    }
                }
                story.Items[0].Play = true;
                //Flipviews.ItemsSource = i.Items;

                //var strs = await AppCore.InstaApi.LiveProcessor.SeenBroadcastAsync(i.Id.ToString(), i.HasBestiesMedia.ToString());
            }
            else
            {
                this.DataContext = ((InstaStory)e.Parameter);
                AnimationEnter();
                var i = ((InstaStory)e.Parameter);
                try
                {
                    var story = await AppCore.InstaApi.GetUserStoryFeedAsync(i.User.Pk);

                    foreach (var item in story.Value.Items)
                    {
                        item.Play = false;
                    }
                    Flipviews.ItemsSource = story.Value.Items;
                    for (int a = 0; a < Flipviews.Items.Count; a++)
                    {
                        switch (story.Value.Items[a].MediaType)
                        {
                        case 1:
                            SecondItemList.Add(6);
                            break;

                        case 2:
                            SecondItemList.Add(story.Value.Items[a].VideoDuration);
                            break;
                        }
                    }
                    story.Value.Items[0].Play = true;
                }
                catch
                {
                    var story = await AppCore.InstaApi.GetUserStoryFeedAsync(i.Owner.Pk);

                    //foreach (var item in story.Items) { item.Play = false; }
                    Flipviews.ItemsSource = story.Value.Items;
                    for (int a = 0; a < Flipviews.Items.Count; a++)
                    {
                        switch (story.Value.Items[a].MediaType)
                        {
                        case 1:
                            SecondItemList.Add(6);
                            break;

                        case 2:
                            SecondItemList.Add(story.Value.Items[a].VideoDuration);
                            break;
                        }
                    }
                }
            }


            if (Flipviews.Items.Count > 0)
            {
                _BarSecond.Maximum = (SecondItemList[0]);
                timer.Tick        += Timer_Tick;
                timer.Start();
            }
        }
Beispiel #8
0
 public StoryMenuDialog(InstaReelFeed reelFeed, InstaStoryItem storyItem, Views.Stories.UserStoryUc view2) : this(reelFeed, storyItem)
 {
     View2 = view2;
 }
Beispiel #9
0
 public StoryMenuDialog(InstaReelFeed reelFeed, InstaStoryItem storyItem, Views.Main.StoryView view) : this(reelFeed, storyItem)
 {
     View = view;
 }