Exemplo n.º 1
0
        public static async Task <Illustration> IllustrationInfo(string id)
        {
            SingleWorkResponse.Illust response;
            try
            {
                response = (await HttpClientFactory.AppApiService.GetSingle(id)).IllustInfo;
            }
            catch (ApiException e)
            {
                ExceptionDumper.WriteException(e);
                return(null);
            }
            catch (Exception)
            {
                return(null);
            }

            var illust = new Illustration
            {
                Bookmark = (int)response.TotalBookmarks,
                Id       = response.Id.ToString(),
                IsLiked  = response.IsBookmarked,
                IsManga  = response.PageCount != 1,
                IsUgoira = response.Type == "ugoira",
                Origin   = response.ImageUrls.Original ?? response.MetaSinglePage.OriginalImageUrl,
                Large    = response.ImageUrls.Large,
                Tags     = response.Tags.Select(t => new Tag {
                    Name = t.Name, TranslatedName = t.TranslatedName
                }),
                Thumbnail   = response.ImageUrls.Medium,
                Title       = response.Title,
                UserName    = response.User.Name,
                UserId      = response.User.Id.ToString(),
                ViewCount   = (int)response.TotalView,
                Comments    = (int)response.TotalComments,
                Resolution  = $"{response.Width}x{response.Height}",
                PublishDate = response.CreateDate,
            };

            if (illust.IsManga && response.MetaPages != null)
            {
                illust.MangaMetadata = response.MetaPages.Select(p =>
                {
                    var page       = (Illustration)illust.Clone();
                    page.Thumbnail = p.ImageUrls.Medium;
                    page.Origin    = p.ImageUrls.Original;
                    page.Large     = p.ImageUrls.Large;
                    return(page);
                }).ToArray();
                illust.PageCount = illust.MangaMetadata.Length;

                foreach (var illustration in illust.MangaMetadata)
                {
                    illustration.MangaMetadata = illust.MangaMetadata;
                }
            }

            return(illust);
        }
        /// <summary>
        /// Test methods exposed by the EntityHelper class.
        /// </summary>
        private void Step_20_TestEntityHelper_Generated()
        {
            using (TransactionManager tm = CreateTransaction())
            {
                mock = CreateMockInstance(tm);

                Illustration entity = mock.Copy() as Illustration;
                entity = (Illustration)mock.Clone();
                Assert.IsTrue(Illustration.ValueEquals(entity, mock), "Clone is not working");
            }
        }
Exemplo n.º 3
0
        public static async Task <Illustration> IllustrationInfo(string id)
        {
            IllustResponse.Response response;
            try
            {
                response = (await HttpClientFactory.PublicApiService.GetSingle(id)).ToResponse[0];
            }
            catch (Exception)
            {
                return(null);
            }

            var illust = new Illustration
            {
                Bookmark  = (int)(response.Stats.FavoritedCount.Private + response.Stats.FavoritedCount.Public),
                Id        = response.Id.ToString(),
                IsLiked   = response.FavoriteId != 0,
                IsManga   = response.IsManga,
                IsUgoira  = response.Type == "ugoira",
                Origin    = response.ImageUrls.Large,
                Tags      = response.Tags.ToArray(),
                Thumbnail = response.ImageUrls.Px480Mw ?? response.ImageUrls.Medium,
                Title     = response.Title,
                Type      = Illustration.IllustType.Parse(response),
                UserName  = response.User.Name,
                UserId    = response.User.Id.ToString()
            };

            if (illust.IsManga)
            {
                illust.MangaMetadata = response.Metadata.Pages.Select(p =>
                {
                    var page     = (Illustration)illust.Clone();
                    page.IsManga = false;
                    page.Origin  = p.ImageUrls.Large;
                    return(page);
                }).ToArray();
            }

            return(illust);
        }