Esempio n. 1
0
        public async Task <IMediaCharacteristics> GetMedia(string mediaId)
        {
            IMediaCharacteristics media = null;

            InstaSharp.Models.Responses.OAuthResponse resp = GetOAuthResp();
            InstaSharp.Models.Responses.MediaResponse m    = null;
            var mEndPoint = new InstaSharp.Endpoints.Media(_configService.GetMediaConfig, resp);

            m = await mEndPoint.Get(mediaId);

            if (m != null && m.Data != null)
            {
                media = _mappers[MapperTypes.Media].Map <IMediaCharacteristics>(m.Data);
                #region Map Insta Media to Imedia
                if (m.Data.Attribution != null)
                {
                    media.Attribution = _mappers[MapperTypes.Attribution].Map <Attribution>(m.Data.Attribution);
                }

                media.Caption = _mappers[MapperTypes.Caption].Map <Caption>(m.Data.Caption);
                if (m.Data.Caption != null)
                {
                    media.Caption.From = _mappers[MapperTypes.UserInfo].Map <UserInfo>(m.Data.Caption.From);
                }
                media.Comments = _mappers[MapperTypes.Comments].Map <Domain.Media.Comments>(m.Data.Comments);

                media.Images                    = _mappers[MapperTypes.Image].Map <Domain.Media.Image>(m.Data.Images);
                media.Images.Thumbnail          = _mappers[MapperTypes.Resolution].Map <Domain.Media.Resolution>(m.Data.Images.Thumbnail);
                media.Images.LowResolution      = _mappers[MapperTypes.Resolution].Map <Domain.Media.Resolution>(m.Data.Images.LowResolution);
                media.Images.StandardResolution = _mappers[MapperTypes.Resolution].Map <Resolution>(m.Data.Images.StandardResolution);
                media.Likes = _mappers[MapperTypes.Likes].Map <Domain.Media.Likes>(m.Data.Likes);
                if (m.Data.Location != null)
                {
                    media.Location = _mappers[MapperTypes.Location].Map <Domain.Media.Location>(m.Data.Location);
                }

                media.User = _mappers[MapperTypes.UserInfo].Map <UserInfo>(m.Data.User);

                if (m.Data.GetType() == typeof(List <UserInPhoto>)) /// TODO Check if this works/necesssary
                {
                    foreach (var u in m.Data.UsersInPhoto)
                    {
                        media.UsersInPhoto.Add(_mappers[MapperTypes.UserInPhoto].Map <UserInPhoto>(u));
                    }
                }
                if (m.Data.Type == "video")
                {
                    media.Videos = _mappers[MapperTypes.Video].Map <Video>(m.Data.Videos);
                    media.Videos.LowResolution      = _mappers[MapperTypes.Resolution].Map <Resolution>(m.Data.Videos.LowResolution);
                    media.Videos.StandardResolution = _mappers[MapperTypes.Resolution].Map <Resolution>(m.Data.Videos.StandardResolution);
                }
                #endregion
            }
            return(media);
        }
Esempio n. 2
0
        public override async Task ExecuteAsync(string generator, WebHookHandlerContext context)
        {
            // Convert the incoming data to a collection of InstagramNotifications
            var notifications = context.GetDataOrDefault<InstagramNotificationCollection>();

            // Get the config used by InstaSharp client
            InstagramConfig config = Dependencies.InstagramConfig;

            // Access media references in notifications
            foreach (var notification in notifications)
            {
                // If we have an access token then get the media using InstaSharp.
                OAuthResponse auth;
                if (Dependencies.Tokens.TryGetValue(notification.UserId, out auth))
                {
                    var media = new Media(config, auth);
                    MediaResponse mediaResponse = await media.Get(notification.Data.MediaId);
                }
            }
        }
Esempio n. 3
0
        public async Task<ActionResult> FullInfo()
        {
            var oAuthResponse = Session["FRED.AuthInfo"] as OAuthResponse;

            if (oAuthResponse == null)
            {
                return RedirectToAction("Login");
            }
            var locations = new Endpoints.Media(config, oAuthResponse);
            var geo = new InstaSharp.Endpoints.Geographies(config, oAuthResponse);
            var start = DateTime.Now - TimeSpan.FromDays(1);
            var end = DateTime.Now;
            var posts = new List<WallElement>();
            return View(posts);
        }