Beispiel #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);
        }
Beispiel #2
0
        // Utils //
        private IMediaCharacteristics IterateMedia(IMediaCharacteristics m, InstaSharp.Models.Media item)
        {
            m.Attribution = _mappers[MapperTypes.Attribution].Map <Attribution>(item.Attribution);


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

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

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

            if (item.GetType() == typeof(List <UserInPhoto>)) /// TODO Check if this works/necesssary
            {
                foreach (var u in m.UsersInPhoto)
                {
                    m.UsersInPhoto.Add(_mappers[MapperTypes.UserInPhoto].Map <UserInPhoto>(u));
                }
            }
            if (item.Type == "video")
            {
                m.Videos = _mappers[MapperTypes.Video].Map <Video>(item.Videos);
                m.Videos.LowResolution      = _mappers[MapperTypes.Resolution].Map <Resolution>(item.Videos.LowResolution);
                m.Videos.StandardResolution = _mappers[MapperTypes.Resolution].Map <Resolution>(item.Videos.StandardResolution);
            }
            return(m);
        }
Beispiel #3
0
        public async Task <List <IMediaCharacteristics> > MyFeed()
        {
            List <IMediaCharacteristics> list = null;

            InstaSharp.Models.Responses.OAuthResponse resp = GetOAuthResp();

            Users usersEndPoint = new Users(_configService.GetMediaConfig, resp);

            var feed = await usersEndPoint.RecentSelf();

            var            key        = "instagram_" + feed.Data[0].Id;
            DateTimeOffset expiration = DateTimeOffset.Now.AddMinutes(20);

            if (!_cacheService.Contains(key))
            {
                if (feed != null && feed.Data != null)
                {
                    list = new List <IMediaCharacteristics>();
                    foreach (var item in feed.Data)
                    {
                        IMediaCharacteristics m = _mappers[MapperTypes.Media].Map <IMediaCharacteristics>(item);
                        m = IterateMedia(m, item);
                        list.Add(m);
                    }
                }

                if (key != null)
                {
                    _cacheService.Add(key, list, expiration);
                }

                return(list);
            }


            list = _cacheService.Get <List <IMediaCharacteristics> >(key);
            return(list);
        }