diff --git a/GanjooRazor/Pages/Index.cshtml.cs b/GanjooRazor/Pages/Index.cshtml.cs index 056d2932..25885555 100644 --- a/GanjooRazor/Pages/Index.cshtml.cs +++ b/GanjooRazor/Pages/Index.cshtml.cs @@ -1283,7 +1283,7 @@ namespace GanjooRazor.Pages } - public async Task OnGetCategoryWordCountsAsync(int catId, int poetId) + public async Task OnGetCategoryWordCountsAsync(int catId, int poetId, bool remStopWords = false) { var wordSumsResponse = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/wordsums/{catId}"); @@ -1296,14 +1296,223 @@ namespace GanjooRazor.Pages { return new BadRequestObjectResult(JsonConvert.DeserializeObject("شمارش واژگان انجام نشده.")); } - var wordCountsResponse = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/wordcounts/{catId}?PageNumber=1&PageSize=100"); - + int pageSize = remStopWords ? 200 : 100; + var wordCountsResponse = await _httpClient.GetAsync($"{APIRoot.Url}/api/ganjoor/wordcounts/{catId}?PageNumber=1&PageSize={pageSize}"); if (!wordCountsResponse.IsSuccessStatusCode) { return new BadRequestObjectResult(JsonConvert.DeserializeObject(await wordCountsResponse.Content.ReadAsStringAsync())); } + var wordCounts = JsonConvert.DeserializeObject(await wordCountsResponse.Content.ReadAsStringAsync()); + if (remStopWords) + { + string[] stopWords = + [ + "و", + "از", + "که", + "به", + "در", + "را", + "تو", + "ز", + "بر", + "آن", + "است", + "من", + "می", + "این", + "او", + "چون", + "دل", + "بود", + "ای", + "تا", + "چو", + "هر", + "با", + "ما", + "چه", + "سر", + "شد", + "بی", + "خود", + "گفت", + "نیست", + "جان", + "نه", + "همه", + "گر", + "کند", + "اگر", + "کرد", + "باشد", + "هم", + "دست", + "مرا", + "روی", + "شود", + "یک", + "دو", + "وی", + "عشق", + "چشم", + "جهان", + "اندر", + "الله", + "خویش", + "آب", + "گل", + "پیش", + "آمد", + "کار", + "دارد", + "روز", + "باز", + "کن", + "دیده", + "یا", + "یکی", + "همی", + "راه", + "پس", + "خاک", + "آید", + "باد", + "کس", + "خون", + "غم", + "ایشان", + "جز", + "شب", + "کرده", + "نمی", + "کز", + "سخن", + "کسی", + "پر", + "آتش", + "هست", + "ام", + "عالم", + "هیچ", + "حق", + "کی", + "صد", + "بهر", + "شاه", + "فی", + "چنین", + "لب", + "ترا", + "ره", + "سوی", + "بس", + "پای", + "ها", + "اند", + "تن", + "ی", + "گردد", + "ملک", + "داد", + "خوش", + "علی", + "میان", + "دم", + "زمین", + "زلف", + "چنان", + "کنم", + "نبود", + "یار", + "گشت", + "دیگر", + "باید", + "دگر", + "درد", + "خانه", + "چند", + "تر", + "جای", + "همچو", + "بار", + "ماه", + "خلق", + "نفس", + "دوست", + "شده", + "لا", + "دین", + "زین", + "نام", + "دور", + "مهر", + "بد", + "زان", + "پی", + "نور", + "گرد", + "رخ", + "مگر", + "آنکه", + "نظر", + "حال", + "رفت", + "دلم", + "کنی", + "اهل", + "فلک", + "تیغ", + "برد", + "بدان", + "ست", + "ازین", + "عقل", + "دید", + "مرد", + "وز", + "زبان", + "زیر", + "گوید", + "هزار", + "خدا", + "آفتاب", + "کجا", + "عمر", + "دهد", + "پرده", + "گه", + "حسن", + "درین", + "چرخ", + "آخر", + "دارم", + "خواهد", + "خورشید", + "نیز", + "بیرون", + "خواب", + "های", + "بنده", + "چرا", + "راست", + "کان", + "برون", + "خدای", + "رو", + "جمله", + "قال", + "نباشد", + "زر", + "علم", + "شمع", + "سرو", + ]; + wordCounts = wordCounts.Where(w => stopWords.Contains(w.Word)).Take(100).ToArray(); + } + return new PartialViewResult() { ViewName = "_CategoryWordsCountPartial",