Пример #1
0
        static async Task <RssVideoResponse> Internal_GetRankingRssAsync(RankingGenre genre, RankingTerm term, int page)
        {
            if (page == 0 || page > Constants.MaxPage)
            {
                throw new ArgumentOutOfRangeException($"out of range {nameof(page)}. inside btw from 1 to {Constants.MaxPage} in with tag.");
            }

            var dict = new Dictionary <string, string>()
            {
                { "rss", "2.0" },
                { "lang", "ja-jp" }
            };

            dict.Add(nameof(term), term.GetDescription());
            if (page != 1)
            {
                dict.Add(nameof(page), page.ToString());
            }

            try
            {
                return(await VideoRssContentHelper.GetRssVideoResponseAsync(
                           $"{Constants.NiconicoRankingGenreDomain}{genre.GetDescription()}?{HttpQueryExtention.DictionaryToQuery(dict)}"
                           ));
            }
            catch
            {
                return(new RssVideoResponse()
                {
                    IsOK = false, Items = new List <RssVideoData>()
                });
            }
        }
Пример #2
0
        /// <summary>
        /// 指定ジャンルの「人気のタグ」を取得します。 <br />
        /// RankingGenre.All を指定した場合のみ、常に空のListを返します。(RankingGenre.All は「人気のタグ」を指定できないため)
        /// </summary>
        /// <param name="genre">RankingGenre.All"以外"を指定します。</param>
        /// <remarks></remarks>
        /// <returns></returns>
        public static async Task <List <RankingGenrePickedTag> > GetGenrePickedTagAsync(RankingGenre genre)
        {
            if (genre == RankingGenre.All)
            {
                return(new List <RankingGenrePickedTag>());
            }

            if (genre != RankingGenre.HotTopic)
            {
                return(await Internal_GetPickedTagAsync($"{Constants.NiconicoRankingGenreDomain}{genre.GetDescription()}"));
            }
            else
            {
                return(await Internal_GetPickedTagAsync($"{Constants.NiconicoRankingHotTopicDomain}"));
            }
        }