Пример #1
0
        public static string ToCulturizedText(CommunitySearchSort sort, Order order)
        {
            var    isAscending = order == Order.Ascending;
            string text;

            switch (sort)
            {
            case CommunitySearchSort.CreatedAt:
                text = isAscending ? "CommunitySearchSort.CreatedAt_Ascending" : "CommunitySearchSort.CreatedAt_Descending"; break;

            case CommunitySearchSort.UpdateAt:
                text = isAscending ? "CommunitySearchSort.UpdateAt_Ascending" : "CommunitySearchSort.UpdateAt_Descending"; break;

            case CommunitySearchSort.CommunityLevel:
                text = isAscending ? "CommunitySearchSort.CommunityLevel_Ascending" : "CommunitySearchSort.CommunityLevel_Descending"; break;

            case CommunitySearchSort.MemberCount:
                text = isAscending ? "CommunitySearchSort.MemberCount_Ascending" : "CommunitySearchSort.MemberCount_Descending"; break;

            case CommunitySearchSort.VideoCount:
                text = isAscending ? "CommunitySearchSort.VideoCount_Ascending" : "CommunitySearchSort.VideoCount_Descending"; break;

            default:
                throw new NotSupportedException();
            }
            return(text.Translate());
        }
Пример #2
0
        public static string ToCulturizedText(CommunitySearchSort sort, Order order)
        {
            var isAscending = order == Order.Ascending;

            switch (sort)
            {
            case CommunitySearchSort.CreatedAt:
                return(isAscending ? "作成が古い順" : "作成が新しい順");

            case CommunitySearchSort.UpdateAt:
                return(isAscending ? "更新が古い順" : "更新が新しい順");

            case CommunitySearchSort.CommunityLevel:
                return(isAscending ? "レベルが小さい順" : "レベルが大きい順");

            case CommunitySearchSort.MemberCount:
                return(isAscending ? "登録メンバーが少ない順" : "登録メンバーが多い順");

            case CommunitySearchSort.VideoCount:
                return(isAscending ? "投稿動画数が少ない順" : "投稿動画数が多い順");

            default:
                throw new NotSupportedException();
            }
        }
Пример #3
0
        public async Task <CommunitySearchResponse> SearchCommunity(
            string keyword
            , uint page
            , CommunitySearchSort sort = CommunitySearchSort.CreatedAt
            , Order order = Order.Descending
            , CommunitySearchMode mode = CommunitySearchMode.Keyword
            )
        {
            if (_HohoemaApp.NiconicoContext == null)
            {
                return(null);
            }

            if (!_HohoemaApp.IsLoggedIn)
            {
                return(null);
            }


            return(await ConnectionRetryUtil.TaskWithRetry(async() =>
            {
                using (var releaser = await _NicoPageAccessLock.LockAsync())
                {
                    return await _HohoemaApp.NiconicoContext.Search.CommunitySearchAsync(keyword, page, sort, order, mode);
                }
            }));
        }
Пример #4
0
 public static Task <CommunitySearchResponse> CommunitySearchAsync(
     NiconicoContext context
     , string keyword
     , uint page
     , CommunitySearchSort sort
     , Order order
     , CommunitySearchMode mode
     )
 {
     return(GetCommunitySearchPageHtmlAsync(context, keyword, page, sort, order, mode)
            .ContinueWith(prevTask => ParseCommunitySearchPageHtml(prevTask.Result)));
 }
Пример #5
0
 public async Task <CommunitySearchResponse> SearchCommunity(
     string keyword
     , uint page
     , CommunitySearchSort sort = CommunitySearchSort.CreatedAt
     , Order order = Order.Descending
     , CommunitySearchMode mode = CommunitySearchMode.Keyword
     )
 {
     return(await ContextActionAsync(async context =>
     {
         return await context.Search.CommunitySearchAsync(keyword, page, sort, order, mode);
     }));
 }
Пример #6
0
        public static Task <string> GetCommunitySearchPageHtmlAsync(
            NiconicoContext context
            , string str
            , uint page
            , CommunitySearchSort sort
            , Order order
            , CommunitySearchMode mode
            )
        {
            var dict = new Dictionary <string, string>();

            dict.Add("__format", "json");

            dict.Add(nameof(page), page.ToString());
            dict.Add(nameof(order), order.ToChar().ToString());
            dict.Add(nameof(sort), sort.ToShortString());
            dict.Add(nameof(mode), mode.ToShortString());

            return(context.GetStringAsync(NiconicoUrls.CommynitySearchPageUrl + str, dict));
        }
        public static string ToShortString(this CommunitySearchSort sort)
        {
            switch (sort)
            {
            case CommunitySearchSort.CreatedAt:
                return("c");

            case CommunitySearchSort.UpdateAt:
                return("u");

            case CommunitySearchSort.CommunityLevel:
                return("l");

            case CommunitySearchSort.VideoCount:
                return("t");

            case CommunitySearchSort.MemberCount:
                return("m");

            default:
                throw new NotSupportedException();
            }
        }
Пример #8
0
        public static void SearchCommunity(this PageManager pageManager, string content, Mntone.Nico2.Order order, CommunitySearchSort sort, CommunitySearchMode mode)
        {
            var payload = new CommunitySearchPagePayloadContent()
            {
                Keyword = content,
                Order   = order,
                Sort    = sort,
                Mode    = mode
            };

            pageManager.OpenPage(HohoemaPageType.SearchResultCommunity, payload.ToParameterString());
        }