Skip to content

Commit

Permalink
Исправлена ошибка в GetUserGroups
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniil-Demyanenko committed May 27, 2021
1 parent 082670e commit 32c093a
Showing 1 changed file with 20 additions and 14 deletions.
34 changes: 20 additions & 14 deletions SFFVK_lib/FakeSearcher.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,13 @@ public FakeSearcher(string VK_Token)
/// </summary>
private async Task<GroupResponse> GetUserGroups(int User_id)
{
try
string Json = await client.GetStringAsync($"https://api.vk.com/method/groups.get?user_id={User_id}&v=5.131&access_token={TOKEN}");
var result = JsonSerializer.Deserialize<GroupResponse>(Json);
if (result is not null) return result;
else
{
string Json = await client.GetStringAsync($"https://api.vk.com/method/groups.get?user_id={User_id}&v=5.131&access_token={TOKEN}");
return JsonSerializer.Deserialize<GroupResponse>(Json);
}
catch
{
if (NeedLog) Log($"Не удалось получить список групп пользователя. Возможно они закрыты настройками приватности");
throw new Exception("Не удалось получить список групп пользователя. Возможно они защищены настройками приватности");
if (NeedLog) Log($"!# Не удалось получить список групп пользователя. Возможно они закрыты настройками приватности.");
throw new Exception("Не удалось получить список групп пользователя");
}
}

Expand Down Expand Up @@ -125,7 +123,15 @@ private async Task<List<int>> GetGroupMembers(int Group_id)
public List<UserCounter> InformativePredict(int User_id)
{
var UserStatistics = new Dictionary<int, int>();
GroupResponse UserGroup = GetUserGroups(User_id).Result;
GroupResponse UserGroup;

try { UserGroup = GetUserGroups(User_id).Result; }
catch
{
ShowVKLogErr();
return new List<UserCounter>();
}

UserGroupCount = UserGroup.response.count; //Установим кол-во групп пользователя
UserGroupAnalyzed = 0; // Сбросим счётчик проанализированных групп

Expand All @@ -148,10 +154,10 @@ public List<UserCounter> InformativePredict(int User_id)
foreach (var j in id)
CountUser(ref UserStatistics, j);


}

if (NeedLog) Log($"Найдено {UserStatistics.Count} страниц.\n"+
if (NeedLog) Log($"Найдено {UserStatistics.Count} страниц.\n" +
$"Проанализированно {UserGroupAnalyzed} групп." +
"\nСортировка страниц по убыванию вероятности и нормализация списка.");

Expand Down Expand Up @@ -203,12 +209,12 @@ private List<UserCounter> ToNormalizeList(in Dictionary<int, int> dict)
/// <summary>
/// Ошибка 29 от ВК. Временный запрет некоторых запросов.
/// </summary>
private void ShowVKLogErr()
private void ShowVKLogErr()
{
if (NeedLog) Log("\n#############################################\n"+
if (NeedLog) Log("\n#############################################\n" +
"Видимо, превышен лимит запросов к ВК.\n" +
"Данная ошибка работает как временный бан. Обычно ВК запрещает вызывать определенные методы на время от 4 до 48 часов. " +
"Ускорить время бана вы не сможете, а вот увеличить - сможете!\n"+
"Ускорить время бана вы не сможете, а вот увеличить - сможете!\n" +
"Постарайтесь не пользоваться приложением 8-24 часов.");
}
}
Expand Down

0 comments on commit 32c093a

Please sign in to comment.