public static void EdulinkSentRequest(object sender, JsonRpcEventArgs e) { Edulink client = (Edulink)sender; Program.LogMsg($"{Edulink.Url}{e.Method}", LogSeverity.Info, $"{e.Username}/Edulink"); }
public async Task OneTime(string username) { if (username.Length != "cheale14".Length && username.EndsWith("14") == false) { await ReplyAsync("Error: username inconsistent with proper naming schemes"); return; } EmbedBuilder builder = new EmbedBuilder() { Title = "Check tutorial", Description = $"Please check the linked tutorial to get better detailed information.", Url = "https://masterlist.uk.ms/wiki/index.php/Bot:EduLink_OTP" }; await ReplyAsync(embed : builder.Build()); TimeSpan duration = TimeSpan.FromMinutes(15); await ReplyAsync($"Please provide your authentication token in your next message\nYou have {duration.TotalMinutes} minutes"); var reply = await NextMessageAsync(timeout : TimeSpan.FromSeconds(duration.TotalSeconds)); if (string.IsNullOrWhiteSpace(reply?.Content)) { await ReplyAsync("Command timed out."); return; } var authToken = reply.Content; await ReplyAsync("Please provide your learner Id"); reply = await NextMessageAsync(timeout : TimeSpan.FromSeconds(duration.TotalSeconds)); if (string.IsNullOrWhiteSpace(reply?.Content)) { await ReplyAsync("Command timed out."); return; } if (int.TryParse(reply.Content, out var id)) { var edulink = new Edulink(username, id, authToken); try { var timetable = edulink.GetTimetable(); var week = timetable.Weeks.OrderByDescending(x => x.Days.Count).First(); foreach (var day in week.Days) { foreach (var lesson in day.Lessons) { var className = lesson?.Class?.Name; if (string.IsNullOrWhiteSpace(className)) { continue; } if (!SelfBotUser.ManualClasses.Contains(className)) { SelfBotUser.ManualClasses.Add(className); } } } Program.Save(); string ss = "Known classes:"; foreach (var c in SelfBotUser.ManualClasses) { ss += $"\n- {c}"; } await ReplyAsync(ss); } catch (Exception ex) { await ReplyAsync("**Error**\n" + ex.Message); Program.LogMsg("EdulinkManualClasses", ex); } } else { await ReplyAsync("Error: learner id must be an integer."); } }