public InstaCommentShort Convert() { if (SourceObject == null) { return(null); } var shortComment = new InstaCommentShort { CommentLikeCount = SourceObject.CommentLikeCount, ContentType = (InstaContentType)Enum.Parse(typeof(InstaContentType), SourceObject.ContentType, true), CreatedAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.CreatedAt), CreatedAtUtc = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.CreatedAtUtc), Pk = SourceObject.Pk, Status = SourceObject.Status, Text = SourceObject.Text, Type = SourceObject.Type, User = InstaConvertersFabric.Instance.GetUserShortConverter(SourceObject.User).Convert(), HasLikedComment = SourceObject.HasLikedComment, MediaId = SourceObject.MediaId, ParentCommentId = SourceObject.ParentCommentId }; return(shortComment); }
public InstaRecentActivityFeed Convert() { var activityStory = new InstaRecentActivityFeed { Pk = SourceObject.Pk, Type = SourceObject.Type, ProfileId = SourceObject.Args.ProfileId, ProfileImage = SourceObject.Args.ProfileImage, Text = SourceObject.Args.Text, RichText = SourceObject.Args.RichText, TimeStamp = InstaDateTimeHelper.UnixTimestampToDateTime( (long)System.Convert.ToDouble(SourceObject.Args.TimeStamp, new NumberFormatInfo { NumberDecimalSeparator = "." })) }; if (SourceObject.Args.Links != null) { foreach (var instaLinkResponse in SourceObject.Args.Links) { activityStory.Links.Add( new InstaLink { Start = instaLinkResponse.Start, End = instaLinkResponse.End, Id = instaLinkResponse.Id, Type = instaLinkResponse.Type }); } } if (SourceObject.Args.InlineFollow != null) { activityStory.InlineFollow = new InstaInlineFollow { IsFollowing = SourceObject.Args.InlineFollow.IsFollowing, IsOutgoingRequest = SourceObject.Args.InlineFollow.IsOutgoingRequest }; if (SourceObject.Args.InlineFollow.UserInfo != null) { activityStory.InlineFollow.User = InstaConvertersFabric.Instance.GetUserShortConverter(SourceObject.Args.InlineFollow.UserInfo) .Convert(); } } if (SourceObject.Args.Media != null) { foreach (var media in SourceObject.Args.Media) { activityStory.Medias.Add( new InstaActivityMedia { Id = media.Id, Image = media.Image }); } } return(activityStory); }
/// <summary> /// Searches for specific location by provided geo-data or search query. /// </summary> /// <param name="latitude">Latitude</param> /// <param name="longitude">Longitude</param> /// <param name="query">Search query</param> /// <returns> /// List of locations (short format) /// </returns> public async Task <IResult <LocationShortList> > SearchLocationAsync(double latitude, double longitude, string query) { logger.LogDebug("SearchLocationAsync {0} {1} {2}", latitude, longitude, query); InstaUserAuthValidator.Validate(userAuthValidate); try { var uri = InstaUriCreator.GetLocationSearchUri(); var fields = new Dictionary <string, string> { { "_uuid", deviceInfo.DeviceGuid.ToString() }, { "_uid", user.LoggedInUser.Pk.ToString() }, { "_csrftoken", user.CsrfToken }, { "latitude", latitude.ToString(CultureInfo.InvariantCulture) }, { "longitude", longitude.ToString(CultureInfo.InvariantCulture) }, { "rank_token", user.RankToken } }; if (!string.IsNullOrEmpty(query)) { fields.Add("search_query", query); } else { fields.Add("timestamp", InstaDateTimeHelper.GetUnixTimestampSeconds().ToString()); } if (!Uri.TryCreate(uri, fields.AsQueryString(), out var newuri)) { return(Result.Fail <LocationShortList>("Unable to create uri for location search")); } var request = httpHelper.GetDefaultRequest(HttpMethod.Get, newuri, deviceInfo); var response = await httpRequestProcessor.SendAsync(request).ConfigureAwait(false); var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false); if (response.StatusCode != HttpStatusCode.OK) { return(Result.UnExpectedResponse <LocationShortList>(response, json)); } var locations = JsonConvert.DeserializeObject <LocationSearchResponse>(json); var converter = InstaConvertersFabric.Instance.GetLocationsSearchConverter(locations); return(Result.Success(converter.Convert())); } catch (HttpRequestException httpException) { logger?.LogError(httpException, "Error"); return(Result.Fail(httpException, default(LocationShortList), ResponseType.NetworkProblem)); } catch (Exception exception) { logger?.LogError(exception, "Error"); return(Result.Fail <LocationShortList>(exception)); } }
public InstaComment Convert() { var comment = new InstaComment { BitFlags = SourceObject.BitFlags, ContentType = (InstaContentType)Enum.Parse(typeof(InstaContentType), SourceObject.ContentType, true), CreatedAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.CreatedAt), CreatedAtUtc = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.CreatedAtUtc), LikesCount = SourceObject.LikesCount, Pk = SourceObject.Pk, Status = SourceObject.Status, Text = SourceObject.Text, Type = SourceObject.Type, UserId = SourceObject.UserId, User = InstaConvertersFabric.Instance.GetUserShortConverter(SourceObject.User).Convert(), DidReportAsSpam = SourceObject.DidReportAsSpam, ChildCommentCount = SourceObject.ChildCommentCount, HasLikedComment = SourceObject.HasLikedComment, HasMoreHeadChildComments = SourceObject.HasMoreHeadChildComments, HasMoreTailChildComments = SourceObject.HasMoreTailChildComments }; if (SourceObject.OtherPreviewUsers != null && SourceObject.OtherPreviewUsers.Any()) { if (comment.OtherPreviewUsers == null) { comment.OtherPreviewUsers = new List <UserShortDescription>(); } foreach (var user in SourceObject.OtherPreviewUsers) { comment.OtherPreviewUsers.Add(InstaConvertersFabric.Instance.GetUserShortConverter(user).Convert()); } } if (SourceObject.PreviewChildComments != null && SourceObject.PreviewChildComments.Any()) { if (comment.PreviewChildComments == null) { comment.PreviewChildComments = new List <InstaCommentShort>(); } foreach (var cm in SourceObject.PreviewChildComments) { comment.PreviewChildComments.Add(InstaConvertersFabric.Instance.GetCommentShortConverter(cm).Convert()); } } return(comment); }
public InstaAccountDetails Convert() { if (SourceObject == null) { throw new ArgumentNullException("Source object"); } var details = new InstaAccountDetails { DateJoined = InstaDateTimeHelper.FromUnixTimeSeconds(SourceObject.DateJoined ?? 0) }; if (SourceObject.FormerUsernameInfo != null) { details.HasFormerUsernames = SourceObject.FormerUsernameInfo.HasFormerUsernames ?? false; } if (SourceObject.SharedFollowerAccountsInfo != null) { details.HasSharedFollowerAccounts = SourceObject.SharedFollowerAccountsInfo.HasSharedFollowerAccounts ?? false; } if (SourceObject.AdsInfo != null) { try { details.AdsInfo = InstaConvertersFabric.Instance.GetAdsInfoConverter(SourceObject.AdsInfo).Convert(); } catch { } } if (SourceObject.PrimaryCountryInfo != null) { try { details.PrimaryCountryInfo = InstaConvertersFabric.Instance .GetPrimaryCountryInfoConverter(SourceObject.PrimaryCountryInfo) .Convert(); } catch { } } return(details); }
public Caption Convert() { var caption = new Caption { Pk = SourceObject.Pk, CreatedAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.CreatedAtUnixLike), CreatedAtUtc = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.CreatedAtUtcUnixLike), MediaId = SourceObject.MediaId, Text = SourceObject.Text, User = InstaConvertersFabric.Instance.GetUserShortConverter(SourceObject.User).Convert(), UserId = SourceObject.UserId }; return(caption); }
public InstaDiscoverSearches Convert() { if (SourceObject == null) { throw new ArgumentNullException("Source object"); } var searches = new InstaDiscoverSearches { ClientTime = InstaDateTimeHelper.FromUnixTimeSeconds(SourceObject.ClientTime ?? 0), Position = SourceObject.Position, User = InstaConvertersFabric.Instance.GetUserConverter(SourceObject.User).Convert() }; return(searches); }
public InstaReelFeed Convert() { if (SourceObject == null) { throw new ArgumentNullException("Source object"); } var reelFeed = new InstaReelFeed { CanReply = SourceObject.CanReply, ExpiringAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject?.ExpiringAt ?? 0), HasBestiesMedia = SourceObject.HasBestiesMedia, Id = SourceObject.Id, LatestReelMedia = SourceObject.LatestReelMedia ?? 0, PrefetchCount = SourceObject.PrefetchCount, Seen = SourceObject.Seen ?? 0, User = InstaConvertersFabric.Instance.GetUserShortFriendshipFullConverter(SourceObject.User).Convert() }; try { if (!string.IsNullOrEmpty(SourceObject.CanReshare)) { reelFeed.CanReshare = bool.Parse(SourceObject.CanReshare); } } catch { } if (SourceObject.Items != null && SourceObject.Items.Any()) { foreach (var item in SourceObject.Items) { try { reelFeed.Items.Add(InstaConvertersFabric.Instance.GetStoryItemConverter(item).Convert()); } catch { } } } return(reelFeed); }
public InstaDirectInboxItem Convert() { var threadItem = new InstaDirectInboxItem { ClientContext = SourceObject.ClientContext, ItemId = SourceObject.ItemId }; threadItem.TimeStamp = InstaDateTimeHelper.UnixTimestampMilisecondsToDateTime(SourceObject.TimeStamp); threadItem.UserId = SourceObject.UserId; var truncatedItemType = SourceObject.ItemType.Trim().Replace("_", ""); if (Enum.TryParse(truncatedItemType, true, out InstaDirectThreadItemType type)) { threadItem.ItemType = type; } if (threadItem.ItemType == InstaDirectThreadItemType.Link && SourceObject.Link != null) { threadItem.Text = SourceObject.Link.Text; try { threadItem.LinkMedia = new InstaWebLink { Text = SourceObject.Link.Text }; if (SourceObject.Link.LinkContext != null) { threadItem.LinkMedia.LinkContext = new InstaWebLinkContext(); if (!string.IsNullOrEmpty(SourceObject.Link.LinkContext.LinkImageUrl)) { threadItem.LinkMedia.LinkContext.LinkImageUrl = SourceObject.Link.LinkContext.LinkImageUrl; } if (!string.IsNullOrEmpty(SourceObject.Link.LinkContext.LinkSummary)) { threadItem.LinkMedia.LinkContext.LinkSummary = SourceObject.Link.LinkContext.LinkSummary; } if (!string.IsNullOrEmpty(SourceObject.Link.LinkContext.LinkTitle)) { threadItem.LinkMedia.LinkContext.LinkTitle = SourceObject.Link.LinkContext.LinkTitle; } if (!string.IsNullOrEmpty(SourceObject.Link.LinkContext.LinkUrl)) { threadItem.LinkMedia.LinkContext.LinkUrl = SourceObject.Link.LinkContext.LinkUrl; } } } catch { } } else if (threadItem.ItemType == InstaDirectThreadItemType.Like) { threadItem.Text = SourceObject.Like; } else if (threadItem.ItemType == InstaDirectThreadItemType.Media && SourceObject.Media != null) { var converter = InstaConvertersFabric.Instance.GetInboxMediaConverter(SourceObject.Media); threadItem.Media = converter.Convert(); } else if (threadItem.ItemType == InstaDirectThreadItemType.MediaShare && SourceObject.MediaShare != null) { var converter = InstaConvertersFabric.Instance.GetSingleMediaConverter(SourceObject.MediaShare); threadItem.MediaShare = converter.Convert(); } else if (threadItem.ItemType == InstaDirectThreadItemType.StoryShare && SourceObject.StoryShare != null) { threadItem.StoryShare = new InstaStoryShare { IsReelPersisted = SourceObject.StoryShare.IsReelPersisted, ReelType = SourceObject.StoryShare.ReelType, Text = SourceObject.StoryShare.Text, IsLinked = SourceObject.StoryShare.IsLinked, Message = SourceObject.StoryShare.Message, Title = SourceObject.StoryShare.Title }; if (SourceObject.StoryShare.Media != null) { var converter = InstaConvertersFabric.Instance.GetSingleMediaConverter(SourceObject.StoryShare.Media); threadItem.StoryShare.Media = converter.Convert(); } } else if (threadItem.ItemType == InstaDirectThreadItemType.Text) { threadItem.Text = SourceObject.Text; } else if (threadItem.ItemType == InstaDirectThreadItemType.RavenMedia && SourceObject.RavenMedia != null) { var converter = InstaConvertersFabric.Instance.GetVisualMediaConverter(SourceObject.RavenMedia); threadItem.RavenMedia = converter.Convert(); threadItem.RavenSeenUserIds = SourceObject.RavenSeenUserIds; if (!string.IsNullOrEmpty(SourceObject.RavenViewMode)) { threadItem.RavenViewMode = (InstaViewMode)Enum.Parse(typeof(InstaViewMode), SourceObject.RavenViewMode, true); } threadItem.RavenReplayChainCount = SourceObject.RavenReplayChainCount ?? 0; threadItem.RavenSeenCount = SourceObject.RavenSeenCount; if (SourceObject.RavenExpiringMediaActionSummary != null) { var ravenType = SourceObject.RavenExpiringMediaActionSummary.Type.ToLower() == "raven_delivered" ? InstaRavenType.Delivered : InstaRavenType.Opened; threadItem.RavenExpiringMediaActionSummary = new InstaRavenMediaActionSummary { Count = SourceObject.RavenExpiringMediaActionSummary.Count, Type = ravenType }; if (!string.IsNullOrEmpty(SourceObject.RavenExpiringMediaActionSummary.TimeStamp)) { threadItem.RavenExpiringMediaActionSummary.ExpireTime = InstaDateTimeHelper.UnixTimestampMilisecondsToDateTime( SourceObject.RavenExpiringMediaActionSummary.TimeStamp); } } } // VisualMedia is updated RavenMedia for v61 and newer else if (threadItem.ItemType == InstaDirectThreadItemType.RavenMedia && SourceObject.VisualMedia != null) { threadItem.VisualMedia = InstaConvertersFabric.Instance .GetVisualMediaContainerConverter(SourceObject.VisualMedia) .Convert(); } else if (threadItem.ItemType == InstaDirectThreadItemType.ActionLog && SourceObject.ActionLogMedia != null) { threadItem.ActionLog = new InstaActionLog { Description = SourceObject.ActionLogMedia.Description }; } else if (threadItem.ItemType == InstaDirectThreadItemType.Profile && SourceObject.ProfileMedia != null) { var converter = InstaConvertersFabric.Instance.GetUserShortConverter(SourceObject.ProfileMedia); threadItem.ProfileMedia = converter.Convert(); if (SourceObject.ProfileMediasPreview != null && SourceObject.ProfileMediasPreview.Any()) { try { var previewMedias = new List <InstaMedia>(); foreach (var item in SourceObject.ProfileMediasPreview) { previewMedias.Add(InstaConvertersFabric.Instance.GetSingleMediaConverter(item).Convert()); } threadItem.ProfileMediasPreview = previewMedias; } catch { } } } else if (threadItem.ItemType == InstaDirectThreadItemType.Placeholder && SourceObject.Placeholder != null) { threadItem.Placeholder = new InstaPlaceholder { IsLinked = SourceObject.Placeholder.IsLinked, Message = SourceObject.Placeholder.Message }; } else if (threadItem.ItemType == InstaDirectThreadItemType.Location && SourceObject.LocationMedia != null) { try { threadItem.LocationMedia = new Classes.Models.Location.Location(); if (!string.IsNullOrEmpty(SourceObject.LocationMedia.Address)) { threadItem.LocationMedia.Address = SourceObject.LocationMedia.Address; } if (!string.IsNullOrEmpty(SourceObject.LocationMedia.City)) { threadItem.LocationMedia.City = SourceObject.LocationMedia.City; } if (!string.IsNullOrEmpty(SourceObject.LocationMedia.ExternalId)) { threadItem.LocationMedia.ExternalId = SourceObject.LocationMedia.ExternalId; } if (!string.IsNullOrEmpty(SourceObject.LocationMedia.ExternalIdSource)) { threadItem.LocationMedia.ExternalSource = SourceObject.LocationMedia.ExternalIdSource; } if (!string.IsNullOrEmpty(SourceObject.LocationMedia.ShortName)) { threadItem.LocationMedia.ShortName = SourceObject.LocationMedia.ShortName; } if (!string.IsNullOrEmpty(SourceObject.LocationMedia.Name)) { threadItem.LocationMedia.Name = SourceObject.LocationMedia.Name; } threadItem.LocationMedia.FacebookPlacesId = SourceObject.LocationMedia.FacebookPlacesId; threadItem.LocationMedia.Lat = SourceObject.LocationMedia.Lat; threadItem.LocationMedia.Lng = SourceObject.LocationMedia.Lng; } catch { } } else if (threadItem.ItemType == InstaDirectThreadItemType.FelixShare && SourceObject.FelixShareMedia != null && SourceObject.FelixShareMedia.Video != null) { try { threadItem.FelixShareMedia = InstaConvertersFabric.Instance .GetSingleMediaConverter(SourceObject.FelixShareMedia.Video) .Convert(); } catch { } } else if (threadItem.ItemType == InstaDirectThreadItemType.ReelShare && SourceObject.ReelShareMedia != null) { try { threadItem.ReelShareMedia = InstaConvertersFabric.Instance .GetReelShareConverter(SourceObject.ReelShareMedia) .Convert(); } catch { } } else if (threadItem.ItemType == InstaDirectThreadItemType.VoiceMedia && SourceObject.VoiceMedia != null) { try { threadItem.VoiceMedia = InstaConvertersFabric.Instance.GetVoiceMediaConverter(SourceObject.VoiceMedia) .Convert(); } catch { } } else if (threadItem.ItemType == InstaDirectThreadItemType.AnimatedMedia && SourceObject.AnimatedMedia != null) { try { threadItem.AnimatedMedia = InstaConvertersFabric.Instance .GetAnimatedImageConverter(SourceObject.AnimatedMedia) .Convert(); } catch { } } else if (threadItem.ItemType == InstaDirectThreadItemType.Hashtag && SourceObject.HashtagMedia != null) { try { threadItem.HashtagMedia = InstaConvertersFabric.Instance .GetDirectHashtagConverter(SourceObject.HashtagMedia) .Convert(); } catch { } } else if (threadItem.ItemType == InstaDirectThreadItemType.LiveViewerInvite && SourceObject.LiveViewerInvite != null) { try { threadItem.LiveViewerInvite = InstaConvertersFabric.Instance .GetDirectBroadcastConverter(SourceObject.LiveViewerInvite) .Convert(); } catch { } } return(threadItem); }
public InstaMedia Convert() { if (SourceObject == null) { throw new ArgumentNullException("Source object"); } var media = new InstaMedia { Identifier = SourceObject.Media.Identifier, Code = SourceObject.Media.Code, Pk = SourceObject.Media.Pk, ClientCacheKey = SourceObject.Media.ClientCacheKey, CommentsCount = SourceObject.Media.CommentsCount, DeviceTimeStamp = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.Media.DeviceTimeStampUnixLike), HasLiked = SourceObject.Media.HasLiked, PhotoOfYou = SourceObject.Media.PhotoOfYou, TrackingToken = SourceObject.Media.TrackingToken, TakenAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.Media.TakenAtUnixLike), Height = SourceObject.Media.Height, LikesCount = SourceObject.Media.LikesCount, MediaType = SourceObject.Media.MediaType, FilterType = SourceObject.Media.FilterType, Width = SourceObject.Media.Width, HasAudio = SourceObject.Media.HasAudio, ViewCount = int.Parse(SourceObject.Media.ViewCount.ToString(CultureInfo.InvariantCulture)), IsCommentsDisabled = SourceObject.Media.IsCommentsDisabled }; if (SourceObject.Media.CarouselMedia != null) { media.Carousel = InstaConvertersFabric.Instance.GetCarouselConverter(SourceObject.Media.CarouselMedia) .Convert(); } if (SourceObject.Media.User != null) { media.User = InstaConvertersFabric.Instance.GetUserConverter(SourceObject.Media.User).Convert(); } if (SourceObject.Media.Caption != null) { media.Caption = InstaConvertersFabric.Instance.GetCaptionConverter(SourceObject.Media.Caption).Convert(); } if (SourceObject.Media.NextMaxId != null) { media.NextMaxId = SourceObject.Media.NextMaxId; } if (SourceObject.Media.Likers != null && SourceObject.Media.Likers?.Count > 0) { foreach (var liker in SourceObject.Media.Likers) { media.Likers.Add(InstaConvertersFabric.Instance.GetUserShortConverter(liker).Convert()); } } if (SourceObject.Media.UserTagList?.In != null && SourceObject.Media.UserTagList?.In?.Count > 0) { foreach (var tag in SourceObject.Media.UserTagList.In) { media.UserTags.Add(InstaConvertersFabric.Instance.GetUserTagConverter(tag).Convert()); } } if (SourceObject.Media.PreviewComments != null) { foreach (var comment in SourceObject.Media.PreviewComments) { media.PreviewComments.Add(InstaConvertersFabric.Instance.GetCommentConverter(comment).Convert()); } } if (SourceObject.Media.Location != null) { media.Location = InstaConvertersFabric.Instance.GetLocationConverter(SourceObject.Media.Location).Convert(); } if (SourceObject.Media.Images?.Candidates == null) { return(media); } foreach (var image in SourceObject.Media.Images.Candidates) { media.Images.Add(new InstaImage(image.Url, int.Parse(image.Width), int.Parse(image.Height))); } if (SourceObject.Media.Videos == null) { return(media); } foreach (var video in SourceObject.Media.Videos) { media.Videos.Add( new InstaVideo( video.Url, int.Parse(video.Width), int.Parse(video.Height), video.Type)); } return(media); }
public InstaStoryItem Convert() { if (SourceObject == null) { throw new ArgumentNullException("Source object"); } var instaStory = new InstaStoryItem { CanViewerSave = SourceObject.CanViewerSave, CaptionIsEdited = SourceObject.CaptionIsEdited, CaptionPosition = SourceObject.CaptionPosition, Code = SourceObject.Code, CommentCount = SourceObject.CommentCount, ExpiringAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.ExpiringAt), FilterType = SourceObject.FilterType, HasAudio = SourceObject.HasAudio ?? false, HasLiked = SourceObject.HasLiked, HasMoreComments = SourceObject.HasMoreComments, Id = SourceObject.Id, IsReelMedia = SourceObject.IsReelMedia, LikeCount = SourceObject.LikeCount, MaxNumVisiblePreviewComments = SourceObject.MaxNumVisiblePreviewComments, MediaType = SourceObject.MediaType, OriginalHeight = SourceObject.OriginalHeight, OriginalWidth = SourceObject.OriginalWidth, PhotoOfYou = SourceObject.PhotoOfYou, Pk = SourceObject.Pk, TakenAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.TakenAt), ImportedTakenAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.ImportedTakenAt ?? 0), VideoDuration = SourceObject.VideoDuration ?? 0, AdAction = SourceObject.AdAction, SupportsReelReactions = SourceObject.SupportsReelReactions, ShowOneTapTooltip = SourceObject.ShowOneTapTooltip, LinkText = SourceObject.LinkText, CanReshare = SourceObject.CanReshare, CommentLikesEnabled = SourceObject.CommentLikesEnabled, CommentThreadingEnabled = SourceObject.CommentThreadingEnabled, NumberOfQualities = SourceObject.NumberOfQualities ?? 0, TimezoneOffset = SourceObject.TimezoneOffset ?? 0, VideoDashManifest = SourceObject.VideoDashManifest, StoryIsSavedToArchive = SourceObject.StoryIsSavedToArchive ?? false, ViewerCount = SourceObject.ViewerCount ?? 0, TotalViewerCount = SourceObject.TotalViewerCount ?? 0, ViewerCursor = SourceObject.ViewerCursor, HasSharedToFb = SourceObject.HasSharedToFb ?? 0 }; if (SourceObject.User != null) { instaStory.User = InstaConvertersFabric.Instance.GetUserShortConverter(SourceObject.User).Convert(); } if (SourceObject.Caption != null) { instaStory.Caption = InstaConvertersFabric.Instance.GetCaptionConverter(SourceObject.Caption).Convert(); } if (SourceObject.Images?.Candidates != null) { foreach (var image in SourceObject.Images.Candidates) { instaStory.ImageList.Add( new InstaImage( image.Url, int.Parse(image.Width), int.Parse(image.Height))); } } if (SourceObject.VideoVersions != null && SourceObject.VideoVersions.Any()) { foreach (var video in SourceObject.VideoVersions) { instaStory.VideoList.Add( new InstaVideo( video.Url, int.Parse(video.Width), int.Parse(video.Height), video.Type)); } } if (SourceObject.ReelMentions != null && SourceObject.ReelMentions.Any()) { foreach (var mention in SourceObject.ReelMentions) { instaStory.ReelMentions.Add(InstaConvertersFabric.Instance.GetMentionConverter(mention).Convert()); } } if (SourceObject.StoryHashtags != null && SourceObject.StoryHashtags.Any()) { foreach (var hashtag in SourceObject.StoryHashtags) { instaStory.StoryHashtags.Add(InstaConvertersFabric.Instance.GetMentionConverter(hashtag).Convert()); } } if (SourceObject.StoryLocations != null && SourceObject.StoryLocations.Any()) { foreach (var location in SourceObject.StoryLocations) { instaStory.StoryLocations.Add(InstaConvertersFabric.Instance.GetStoryLocationConverter(location) .Convert()); } } if (SourceObject.StoryFeedMedia != null && SourceObject.StoryFeedMedia.Any()) { foreach (var storyFeed in SourceObject.StoryFeedMedia) { instaStory.StoryFeedMedia.Add(InstaConvertersFabric.Instance.GetStoryFeedMediaConverter(storyFeed) .Convert()); } } if (SourceObject.StoryCta != null && SourceObject.StoryCta.Any()) { foreach (var cta in SourceObject.StoryCta) { if (cta.Links != null && cta.Links.Any()) { foreach (var link in cta.Links) { instaStory.StoryCta.Add(InstaConvertersFabric.Instance.GetStoryCtaConverter(link).Convert()); } } } } if (SourceObject.StoryPolls?.Count > 0) { foreach (var poll in SourceObject.StoryPolls) { instaStory.StoryPolls.Add(InstaConvertersFabric.Instance.GetStoryPollItemConverter(poll).Convert()); } } if (SourceObject.StorySliders?.Count > 0) { foreach (var slider in SourceObject.StorySliders) { instaStory.StorySliders.Add(InstaConvertersFabric.Instance.GetStorySliderItemConverter(slider) .Convert()); } } if (SourceObject.StoryQuestions?.Count > 0) { foreach (var question in SourceObject.StoryQuestions) { instaStory.StoryQuestions.Add(InstaConvertersFabric.Instance.GetStoryQuestionItemConverter(question) .Convert()); } } if (SourceObject.StoryPollVoters?.Count > 0) { foreach (var voter in SourceObject.StoryPollVoters) { instaStory.StoryPollVoters.Add(InstaConvertersFabric.Instance.GetStoryPollVoterInfoItemConverter(voter) .Convert()); } } if (SourceObject.Viewers?.Count > 0) { foreach (var viewer in SourceObject.Viewers) { instaStory.Viewers.Add(InstaConvertersFabric.Instance.GetUserShortConverter(viewer).Convert()); } } if (SourceObject.Likers?.Count > 0) { foreach (var liker in SourceObject.Likers) { instaStory.Likers.Add(InstaConvertersFabric.Instance.GetUserShortConverter(liker).Convert()); } } if (SourceObject.PreviewComments?.Count > 0) { foreach (var comment in SourceObject.PreviewComments) { instaStory.PreviewComments.Add(InstaConvertersFabric.Instance.GetCommentConverter(comment).Convert()); } } if (SourceObject.StorySliderVoters?.Count > 0) { foreach (var voter in SourceObject.StorySliderVoters) { instaStory.StorySliderVoters.Add(InstaConvertersFabric.Instance .GetStorySliderVoterInfoItemConverter(voter) .Convert()); } } if (SourceObject.StoryQuestionsResponderInfos?.Count > 0) { foreach (var responderInfo in SourceObject.StoryQuestionsResponderInfos) { instaStory.StoryQuestionsResponderInfos.Add( InstaConvertersFabric.Instance.GetStoryQuestionInfoConverter(responderInfo).Convert()); } } if (SourceObject.Countdowns?.Count > 0) { foreach (var countdown in SourceObject.Countdowns) { instaStory.Countdowns.Add(InstaConvertersFabric.Instance.GetStoryCountdownItemConverter(countdown) .Convert()); } } return(instaStory); }
public InstaMedia Convert() { if (SourceObject == null) { throw new ArgumentNullException("Source object"); } var media = new InstaMedia { Identifier = SourceObject.Identifier, Code = SourceObject.Code, Pk = SourceObject.Pk, ClientCacheKey = SourceObject.ClientCacheKey, CommentsCount = SourceObject.CommentsCount, HasLiked = SourceObject.HasLiked, PhotoOfYou = SourceObject.PhotoOfYou, TrackingToken = SourceObject.TrackingToken, TakenAtUnix = long.Parse(string.IsNullOrEmpty(SourceObject.TakenAtUnixLike) ? "0" : SourceObject.TakenAtUnixLike), Height = SourceObject.Height, LikesCount = SourceObject.LikesCount, MediaType = SourceObject.MediaType, FilterType = SourceObject.FilterType, Width = SourceObject.Width, HasAudio = SourceObject.HasAudio, ViewCount = int.Parse(SourceObject.ViewCount.ToString(CultureInfo.InvariantCulture)), IsCommentsDisabled = SourceObject.IsCommentsDisabled, // new properties> CanViewerReshare = SourceObject.CanViewerReshare, CanViewerSave = SourceObject.CanViewerSave, CanViewMorePreviewComments = SourceObject.CanViewMorePreviewComments, CommentLikesEnabled = SourceObject.CommentLikesEnabled, MaxNumVisiblePreviewComments = SourceObject.MaxNumVisiblePreviewComments, HasMoreComments = SourceObject.HasMoreComments, CommentThreadingEnabled = SourceObject.CommentThreadingEnabled, Title = SourceObject.Title, ProductType = SourceObject.ProductType, NearlyCompleteCopyrightMatch = SourceObject.NearlyCompleteCopyrightMatch ?? false, NumberOfQualities = SourceObject.NumberOfQualities ?? 0, VideoDuration = SourceObject.VideoDuration ?? 0, HasViewerSaved = SourceObject.HasViewerSaved, DirectReplyToAuthorEnabled = SourceObject.DirectReplyToAuthorEnabled ?? false }; if (!string.IsNullOrEmpty(SourceObject.TakenAtUnixLike)) { media.TakenAt = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.TakenAtUnixLike); } if (!string.IsNullOrEmpty(SourceObject.DeviceTimeStampUnixLike)) { media.DeviceTimeStamp = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.DeviceTimeStampUnixLike); } if (SourceObject.CarouselMedia != null) { media.Carousel = InstaConvertersFabric.Instance.GetCarouselConverter(SourceObject.CarouselMedia).Convert(); } if (SourceObject.User != null) { media.User = InstaConvertersFabric.Instance.GetUserConverter(SourceObject.User).Convert(); } if (SourceObject.Caption != null) { media.Caption = InstaConvertersFabric.Instance.GetCaptionConverter(SourceObject.Caption).Convert(); } if (SourceObject.NextMaxId != null) { media.NextMaxId = SourceObject.NextMaxId; } if (SourceObject.Likers?.Count > 0) { foreach (var liker in SourceObject.Likers) { media.Likers.Add(InstaConvertersFabric.Instance.GetUserShortConverter(liker).Convert()); } } if (SourceObject.UserTagList?.In?.Count > 0) { foreach (var tag in SourceObject.UserTagList.In) { media.UserTags.Add(InstaConvertersFabric.Instance.GetUserTagConverter(tag).Convert()); } } if (SourceObject.ProductTags?.In?.Count > 0) { foreach (var tag in SourceObject.ProductTags.In) { media.ProductTags.Add(InstaConvertersFabric.Instance.GetProductTagContainerConverter(tag).Convert()); } } if (SourceObject.PreviewComments?.Count > 0) { foreach (var comment in SourceObject.PreviewComments) { media.PreviewComments.Add(InstaConvertersFabric.Instance.GetCommentConverter(comment).Convert()); } } if (SourceObject.Location != null) { media.Location = InstaConvertersFabric.Instance.GetLocationConverter(SourceObject.Location).Convert(); } if (SourceObject.Images?.Candidates == null) { return(media); } foreach (var image in SourceObject.Images.Candidates) { media.Images.Add(new InstaImage(image.Url, int.Parse(image.Width), int.Parse(image.Height))); } if (SourceObject.Videos == null) { return(media); } foreach (var video in SourceObject.Videos) { media.Videos.Add( new InstaVideo( video.Url, int.Parse(video.Width), int.Parse(video.Height), video.Type)); } return(media); }
public InstaFullMediaInsights Convert() { var fullMediaInsights = new InstaFullMediaInsights { CommentCount = SourceObject.CommentCount ?? 0, DisplayUrl = SourceObject.DisplayUrl, Id = SourceObject.Id, LikeCount = SourceObject.LikeCount ?? 0, SaveCount = SourceObject.SaveCount ?? 0 }; if (SourceObject.CreationTime != null) { fullMediaInsights.CreationTime = InstaDateTimeHelper.UnixTimestampToDateTime(SourceObject.CreationTime.ToString()); } if (SourceObject.InstagramMediaType != null) { try { fullMediaInsights.MediaType = (InstaMediaType)Enum.Parse(typeof(InstaMediaType), SourceObject.InstagramMediaType, true); } catch { } } var inlineInsights = SourceObject.InlineInsightsNode; if (SourceObject.InlineInsightsNode != null) { var node = new InstaFullMediaInsightsMetrics { State = inlineInsights.State }; if (inlineInsights.Metrics != null) { node.ImpressionCount = inlineInsights.Metrics.ImpressionCount ?? 0; node.OwnerAccountFollowsCount = inlineInsights.Metrics.OwnerAccountFollowsCount ?? 0; node.OwnerProfileViewsCount = inlineInsights.Metrics.OwnerProfileViewsCount ?? 0; node.ReachCount = inlineInsights.Metrics.ReachCount ?? 0; if (inlineInsights.Metrics.Reach != null) { try { var reach = new InstaFullMediaInsightsNodeItem { Value = inlineInsights.Metrics.Reach.Value ?? 0 }; foreach (var item in inlineInsights.Metrics.Reach.FollowStatus.Nodes) { var convertedItem = InstaConvertersFabric.Instance.GetInsightsDataNodeConverter(item) .Convert(); reach.Items.Add(convertedItem); } node.Reach = reach; } catch { } } if (inlineInsights.Metrics.Impressions != null) { try { var impressions = new InstaFullMediaInsightsNodeItem { Value = inlineInsights.Metrics.Impressions.Value ?? 0 }; foreach (var item in inlineInsights.Metrics.Impressions.Surfaces.Nodes) { var convertedItem = InstaConvertersFabric.Instance.GetInsightsDataNodeConverter(item) .Convert(); impressions.Items.Add(convertedItem); } node.Impressions = impressions; } catch { } } if (inlineInsights.Metrics.ProfileActions != null) { try { var profileActions = new InstaFullMediaInsightsNodeItem { Value = inlineInsights.Metrics.ProfileActions.Actions.Value ?? 0 }; foreach (var item in inlineInsights.Metrics.ProfileActions.Actions.Nodes) { var convertedItem = InstaConvertersFabric.Instance.GetInsightsDataNodeConverter(item) .Convert(); profileActions.Items.Add(convertedItem); } node.ProfileActions = profileActions; } catch { } } } fullMediaInsights.InlineInsightsNode = node; } return(fullMediaInsights); }
public InstaDirectInboxThread Convert() { var thread = new InstaDirectInboxThread { Canonical = SourceObject.Canonical, HasNewer = SourceObject.HasNewer, HasOlder = SourceObject.HasOlder, IsSpam = SourceObject.IsSpam, Muted = SourceObject.Muted, Named = SourceObject.Named, Pending = SourceObject.Pending, VieweId = SourceObject.VieweId, LastActivity = InstaDateTimeHelper.UnixTimestampMilisecondsToDateTime(SourceObject.LastActivity), ThreadId = SourceObject.ThreadId, OldestCursor = SourceObject.OldestCursor, IsGroup = SourceObject.IsGroup, IsPin = SourceObject.IsPin, ValuedRequest = SourceObject.ValuedRequest, PendingScore = SourceObject.PendingScore ?? 0, VcMuted = SourceObject.VcMuted, ReshareReceiveCount = SourceObject.ReshareReceiveCount, ReshareSendCount = SourceObject.ReshareSendCount, ExpiringMediaReceiveCount = SourceObject.ExpiringMediaReceiveCount, ExpiringMediaSendCount = SourceObject.ExpiringMediaSendCount, NewestCursor = SourceObject.NewestCursor, ThreadType = SourceObject.ThreadType, Title = SourceObject.Title, MentionsMuted = SourceObject.MentionsMuted ?? false }; if (SourceObject.Inviter != null) { var userConverter = InstaConvertersFabric.Instance.GetUserShortConverter(SourceObject.Inviter); thread.Inviter = userConverter.Convert(); } if (SourceObject.Items != null && SourceObject.Items.Count > 0) { thread.Items = new List <InstaDirectInboxItem>(); foreach (var item in SourceObject.Items) { var converter = InstaConvertersFabric.Instance.GetDirectThreadItemConverter(item); thread.Items.Add(converter.Convert()); } } if (SourceObject.LastPermanentItem != null) { var converter = InstaConvertersFabric.Instance.GetDirectThreadItemConverter(SourceObject.LastPermanentItem); thread.LastPermanentItem = converter.Convert(); } if (SourceObject.Users != null && SourceObject.Users.Count > 0) { foreach (var user in SourceObject.Users) { var converter = InstaConvertersFabric.Instance.GetUserShortFriendshipConverter(user); thread.Users.Add(converter.Convert()); } } if (SourceObject.LeftUsers != null && SourceObject.LeftUsers.Count > 0) { foreach (var user in SourceObject.LeftUsers) { var converter = InstaConvertersFabric.Instance.GetUserShortFriendshipConverter(user); thread.LeftUsers.Add(converter.Convert()); } } if (SourceObject.LastSeenAt != null && SourceObject.LastSeenAt != null) { try { var lastSeenJson = System.Convert.ToString(SourceObject.LastSeenAt); var obj = JsonConvert.DeserializeObject <InstaLastSeenAtResponse>(lastSeenJson); thread.LastSeenAt = new List <InstaLastSeen>(); foreach (var extraItem in obj.Extras) { var convertedLastSeen = JsonConvert.DeserializeObject <InstaLastSeenItemResponse>( extraItem.Value.ToString(Formatting.None)); var lastSeen = new InstaLastSeen { Pk = long.Parse(extraItem.Key), ItemId = convertedLastSeen.ItemId }; if (convertedLastSeen.TimestampPrivate != null) { lastSeen.SeenTime = InstaDateTimeHelper.UnixTimestampMilisecondsToDateTime(convertedLastSeen.TimestampPrivate); } thread.LastSeenAt.Add(lastSeen); } } catch { } } try { if (thread.LastActivity > thread.LastSeenAt[0].SeenTime) { thread.HasUnreadMessage = true; } } catch { thread.HasUnreadMessage = false; } return(thread); }