public async Task LastRecent(CommandContext commandContext, params string[] args) { ulong discordId = commandContext.Member.Id; if (wavMembers.GetMember(discordId) is null) wavMembers.CreateMember(discordId); string choosedServer = args.FirstOrDefault() ?? "-bancho"; WAVMemberOsuProfileInfo userInfo = wavMembers.GetOsuProfileInfo(discordId, choosedServer); if (userInfo is null) { await commandContext.RespondAsync($"Не удалось найти ваш osu! профиль сервера `{choosedServer}`. Добавьте свой профиль через команду `osuset`"); return; } switch (choosedServer) { case "-gatari": GScore gscore = gapi.GetUserRecentScores(userInfo.Id, 0, 1, true).First(); GUser guser = null; if (!gapi.TryGetUser(userInfo.Id, ref guser)) { await commandContext.RespondAsync("Не удалось найти такого пользователя на Gatari."); return; } DiscordEmbed gscoreEmbed = utils.GatariScoreToEmbed(gscore, guser); await commandContext.RespondAsync(embed: gscoreEmbed); break; case "-bancho": Score score = api.GetUserRecentScores(userInfo.Id, true, 0, 1).First(); User user = null; if (!api.TryGetUser(userInfo.Id, ref user)) { await commandContext.RespondAsync("Не удалось найти такого пользователя на Gatari."); return; } DiscordEmbed scoreEmbed = utils.BanchoScoreToEmbed(score, user); await commandContext.RespondAsync(embed: scoreEmbed); break; default: await commandContext.RespondAsync($"Сервер `{choosedServer}` не поддерживается."); break; } }
static void Main(string[] args) { Settings settings; using (StreamReader sr = new StreamReader("credentials.json")) settings = JsonConvert.DeserializeObject <Settings>(sr.ReadToEnd()); BanchoApi api = new BanchoApi(settings.ClientId, settings.Secret); Console.WriteLine(api.ReloadToken()); List <Score> scores = api.GetUserRecentScores(6885792, false, 0, 5); //while (true) //{ // Console.Write("Напишите название сервера, с которого нужно получать скоры (bancho, gatari) -> "); // string input = Console.ReadLine(); // switch (input) // { // case "bancho": // BanchoApi api = new BanchoApi(settings.ClientId, settings.Secret); // Console.WriteLine(api.ReloadToken()); // while (true) // { // Console.Write("Введите ID пользователя -> "); // int user = 0; // if (int.TryParse(Console.ReadLine(), out user)) // { // var scores = api.GetUserBestScores(user, 5); // double avg_pp = 0; // Console.WriteLine(); // if (scores is null) // { // Console.WriteLine("Не удалось получить скоры. Проверьте ID"); // continue; // } // foreach (var score in scores) // { // Console.WriteLine($"{score.pp} pp : {score.beatmapset.artist} - {score.beatmapset.title}"); // avg_pp += score.pp ?? 0; // } // Console.WriteLine(new string('=', 20)); // Console.WriteLine($"{avg_pp / 5} pp\n"); // } // } // break; // case "gatari": // GatariApi gapi = new GatariApi(); // while (true) // { // Console.Write("Введите ID пользователя -> "); // int user = 0; // if (int.TryParse(Console.ReadLine(), out user)) // { // var scores = gapi.GetUserBestScores(user, 5); // double avg_pp = 0; // Console.WriteLine(); // if (scores is null) // { // Console.WriteLine("Не удалось получить скоры. Проверьте ID"); // continue; // } // foreach (var score in scores) // { // Console.WriteLine($"{score.pp} pp : {score.beatmap.song_name}"); // avg_pp += score.pp ?? 0; // } // Console.WriteLine(new string('=', 20)); // Console.WriteLine($"{avg_pp / 5} pp\n"); // } // } // break; // default: // Console.WriteLine("Не удалось распознать сервер"); // break; // } //} //User users = null; //var bm = api.GetBeatmap(2201460); //api.GetUserRecentScores(6885792, true, 3, 10); //Console.WriteLine(users); #region Get best scores //List<Score> scores = api.GetUserBestScores(9604150, 100); ///Console.WriteLine($"Scores count: {scores.Count}"); //string scores_s = JsonConvert.SerializeObject(scores); //using (StreamWriter sw = new StreamWriter("best_scores_mindblock.json")) // sw.Write(scores_s); //Console.ReadKey(); #endregion #region Bancho tracker //DateTime last_score = DateTime.Now; //while (true) //{ // List<WAV_Osu_NetApi.Models.Bancho.Score> new_scores = new List<WAV_Osu_NetApi.Models.Bancho.Score>(); // List<WAV_Osu_NetApi.Models.Bancho.Score> available_scores = api.GetUserRecentScores("6885792", true, 10); // DateTime latest_score = last_score; // foreach (var score in available_scores) // if (score.created_at > last_score) // { // new_scores.Add(score); // if (latest_score < score.created_at) // latest_score = score.created_at; // } // if (new_scores.Count != 0) // { // Console.WriteLine(); // foreach (var score in new_scores) // { // Console.WriteLine($"Title: {score.beatmapset.title} [{score.beatmap.version}]"); // Console.WriteLine($"Artist: {score.beatmapset.artist}"); // Console.WriteLine($"{score.rank}, {score.accuracy}%, {score.pp}, {score.statistics.count_300}, {score.statistics.count_100}, {score.statistics.count_50}, {score.statistics.count_miss}"); // Console.WriteLine(); // } // last_score = latest_score; // } // else // { // Console.Write("."); // } // Thread.Sleep(10000); //} #endregion #region Gatari tracker /* * DateTime last_score = DateTime.Now - TimeSpan.FromDays(3); * while (true) * { * List<WAV_Osu_NetApi.Models.Gatari.Score> new_scores = new List<WAV_Osu_NetApi.Models.Gatari.Score>(); * List<WAV_Osu_NetApi.Models.Gatari.Score> available_scores = api.GetUserRecentScores(21129, true, 3); * * //Console.WriteLine(available_scores.Last().time); * * DateTime latest_score = last_score; * foreach (var score in available_scores) * if (score.time > last_score) * { * new_scores.Add(score); * if (latest_score < score.time) * latest_score = score.time; * } * * if (new_scores.Count != 0) * { * Console.WriteLine(); * foreach (var score in new_scores) * { * Console.WriteLine($"Title: {score.beatmap.song_name}"); * Console.WriteLine($"{score.ranking}, {score.accuracy}%, {score.pp}, {score.count_300}, {score.count_100}, {score.count_50}, {score.count_miss}"); * Console.WriteLine(); * } * * last_score = latest_score; * } * else * { * Console.Write("."); * } * * Thread.Sleep(10000); * } */ #endregion #region Bancho search //var bms = api.Search("Oznei Haman wa Mou Iranai [jump training]", WAV_Osu_NetApi.Bancho.QuerryParams.MapType.Any); //foreach (var bm in bms) // Console.WriteLine($"{bm.title}\n{bm.artist}"); #endregion #region Bancho TryGetUsr //User validUser = null, invalidUser; //api.TryGetUser(9604150, ref validUser); //api.TryGetUser(687687654, out invalidUser); //Console.WriteLine(validUser); //Console.WriteLine(invalidUser); #endregion #region Bancho Get Beatmapset //Beatmapset bm = api.GetBeatmapset(372510); #endregion //api.TryRetrieveBeatmap(1114721); }