예제 #1
0
        private Image <Rgba32> GetProfileInside(IUserInfo shindenUser, User botUser)
        {
            var image = new Image <Rgba32>(325, 272);

            if (botUser.ProfileType == ProfileType.Img && !File.Exists(botUser.StatsReplacementProfileUri))
            {
                botUser.ProfileType = ProfileType.Stats;
            }

            switch (botUser.ProfileType)
            {
            case ProfileType.Stats:
            case ProfileType.StatsWithImg:
                if (shindenUser != null)
                {
                    if (shindenUser?.ListStats?.AnimeStatus != null)
                    {
                        using (var stats = GetRWStats(shindenUser?.ListStats?.AnimeStatus,
                                                      "./Pictures/statsAnime.png", shindenUser.GetMoreSeriesStats(false)))
                        {
                            image.Mutate(x => x.DrawImage(stats, new Point(0, 2), 1));
                        }
                    }
                    if (shindenUser?.ListStats?.MangaStatus != null)
                    {
                        using (var stats = GetRWStats(shindenUser?.ListStats?.MangaStatus,
                                                      "./Pictures/statsManga.png", shindenUser.GetMoreSeriesStats(true)))
                        {
                            image.Mutate(x => x.DrawImage(stats, new Point(0, 142), 1));
                        }
                    }

                    if (botUser.ProfileType == ProfileType.StatsWithImg)
                    {
                        goto case ProfileType.Img;
                    }
                }
                break;

            case ProfileType.Img:
            {
                using (var userBg = Image.Load(botUser.StatsReplacementProfileUri))
                {
                    image.Mutate(x => x.DrawImage(userBg, new Point(0, 0), 1));
                }
            }
            break;
            }

            return(image);
        }
예제 #2
0
        public async Task <Image <Rgba32> > GetSiteStatisticAsync(IUserInfo shindenInfo, Discord.Color color, List <ILastReaded> lastRead = null, List <ILastWatched> lastWatch = null)
        {
            if (color == Discord.Color.Default)
            {
                color = Discord.Color.DarkerGrey;
            }

            var baseImg = new Image <Rgba32>(500, 320);

            baseImg.Mutate(x => x.BackgroundColor(Rgba32.FromHex("#36393e")));

            using (var template = Image.Load("./Pictures/siteStatsBody.png"))
            {
                baseImg.Mutate(x => x.DrawImage(template, new Point(0, 0), 1));
            }

            using (var avatar = await GetSiteStatisticUserBadge(shindenInfo.AvatarUrl, shindenInfo.Name, color.RawValue.ToString("X6")))
            {
                baseImg.Mutate(x => x.DrawImage(avatar, new Point(0, 0), 1));
            }

            using (var image = new Image <Rgba32>(325, 248))
            {
                if (shindenInfo?.ListStats?.AnimeStatus != null)
                {
                    using (var stats = GetRWStats(shindenInfo?.ListStats?.AnimeStatus,
                                                  "./Pictures/statsAnime.png", shindenInfo.GetMoreSeriesStats(false)))
                    {
                        image.Mutate(x => x.DrawImage(stats, new Point(0, 0), 1));
                    }
                }
                if (shindenInfo?.ListStats?.MangaStatus != null)
                {
                    using (var stats = GetRWStats(shindenInfo?.ListStats?.MangaStatus,
                                                  "./Pictures/statsManga.png", shindenInfo.GetMoreSeriesStats(true)))
                    {
                        image.Mutate(x => x.DrawImage(stats, new Point(0, 128), 1));
                    }
                }
                baseImg.Mutate(x => x.DrawImage(image, new Point(5, 71), 1));
            }

            using (var image = await GetLastRWList(lastRead, lastWatch))
            {
                baseImg.Mutate(x => x.DrawImage(image, new Point(330, 69), 1));
            }

            return(baseImg);
        }