Exemple #1
0
        /// <summary>
        /// Htmlテキストからイラスト情報を取得する
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        private List<Illust> GetIllustsFromHtml(PixivPages page, string text)
        {
            List<Illust> list = new List<Illust>();
            Regex Reg = null;

            switch (page)
            {
                case PixivPages.DailyRanking:
                case PixivPages.WeeklyRanking:
                case PixivPages.MonthlyRanking:
                case PixivPages.R18DailyRanking:
                case PixivPages.R18WeeklyRanking:
                case PixivPages.Favorite:
                case PixivPages.MyPixiv:
                    Reg = new Regex(ConstData.RankingPattan);
                    break;
                case PixivPages.NewIllust:
                case PixivPages.R18NewIllust:
                default:
                    Reg = new Regex(ConstData.NewIllustPattan);
                    break;
            }

            // イラスト情報を取得する
            var matchs = Reg.Match(text);
            while (matchs.Success)
            {
                Illust illust = new Illust();
                illust.Url = ConstData.PixivUrl + matchs.Groups["illust_id"].Value;
                illust.ThumnailImageUrl = matchs.Groups["thumnail"].Value;
                illust.Title = matchs.Groups["title"].Value;
                illust.AuthorPixivID = matchs.Groups["author"].Value;
                illust.ThumnailName = matchs.Groups["thumnailFileName"].Value;

                // リストにイラスト情報を追加
                list.Add(illust);

                // マッチングした次のイラスト情報
                matchs = matchs.NextMatch();
            }

            return list;
        }
Exemple #2
0
        /// <summary>
        /// 特定ページのイラスト情報を取得する
        /// </summary>
        /// <param name="page">ページ種別</param>
        /// <param name="pageCount">ページ数</param>
        /// <returns></returns>
        public List<Illust> GetIllusts(PixivPages page, int pageCount)
        {
#if !PixivAPI
            string pageUrl = string.Format(page.ToUrlFormat(), pageCount);
#else
            string pageUrl = string.Format(page.ToUrlFormat(), pageCount);
            pageUrl = pageUrl + "&" + this.Cookie;
#endif

            // 指定したページからイラスト一覧のテキストを取得する
            string text = GetHtml(pageUrl);

            // 1ページあたりのイラスト数を取得する
            int rankBase = 0;
            switch (page)
            {
                case PixivPages.NewIllust:
                case PixivPages.MyPixiv:
                case PixivPages.R18NewIllust:
                    rankBase = 20;
                    break;
                default:
                    rankBase = 50;
                    break;
            }

            // htmlからイラストのリストを取得する
            List<Illust> list = GetIllustsFromHtml(page, text);
            for (int i=0; i<list.Count; i++)
            {
                list[i].Rank = (rankBase * (pageCount - 1)) + i + 1;
            }

            return list;
        }