public static int?GetUserCurrency(string username) { using Storage storage = new Storage(); ChannelVisitor visitor = storage.Visitors.FirstOrDefault(u => username.ToLower() == u.TwitchUsername.ToLower()); return(visitor?.Currency); }
private void HandleFirstVisitCommand(object sender, OnChatCommandReceivedArgs onChatCommandReceivedArgs) { if (!(sender is TwitchClient senderClient)) { return; } using var storage = new Storage(); ChannelVisitor visitor = storage.Visitors.FirstOrDefault(s => s.TwitchUsername.ToLower() == senderClient.TwitchUsername.ToLower()); if (visitor == null) { return; } LeTwitchBot.TwitchClient.SendHostChannelMessage( $"Hey @{senderClient.TwitchUsername}. Your first visit to @{LeTwitchBot.HostChannelName} was on {visitor.DateAdded:dddd, dd MMMM yyyy}"); }
private async void OnTick(object sender, ElapsedEventArgs e) { try { List <ChatterFormatted> response = await LeTwitchBot.BotAPI.Undocumented.GetChattersAsync(LeTwitchBot.HostChannelName); List <string> usernames = response.Select(s => s.Username).ToList(); GetUsersResponse apiResponse = await LeTwitchBot.BotAPI.Helix.Users.GetUsersAsync(null, usernames, LeTwitchBot.Secrets.HostChannelUserToken); if (apiResponse.Users.Length == 0) { return; } foreach (User u in apiResponse.Users) { await using Storage storage = new Storage(); int userid = int.Parse(u.Id); ChannelVisitor existingVisitor = storage.Visitors.FirstOrDefault(v => v.TwitchID == userid); if (existingVisitor != null) { existingVisitor.Currency += CurrencyPerIteration; } else { ChannelVisitor newVisitor = new ChannelVisitor(userid, u.DisplayName); newVisitor.Currency = CurrencyForNewUsers; await storage.Visitors.AddAsync(newVisitor); } await storage.SaveChangesAsync(); } } catch (Exception) { // ignored } }
private async void OnUserJoined(object sender, OnUserJoinedArgs e) { if (!(sender is TwitchClient senderClient)) { return; } GetUsersResponse resp = await LeTwitchBot.BotAPI.Helix.Users.GetUsersAsync(null, new List <string> { senderClient.TwitchUsername }); if (resp.Users.Length <= 0) { return; } User user = resp.Users[0]; int userid = int.Parse(user.Id); ChannelVisitor existingVisitor; await using (Storage storage = new Storage()) { existingVisitor = storage.Visitors.FirstOrDefault(u => u.TwitchID == userid); if (existingVisitor == null) { Visit newVisit = new Visit { VisitDate = DateTime.Now }; ChannelVisitor newVisitor = new ChannelVisitor { TwitchUsername = user.DisplayName, TwitchID = userid, Visits = new List <Visit> { newVisit }, }; storage.Attach(newVisitor); } else { Visit newVisit = new Visit { Visitor = existingVisitor, VisitDate = DateTime.Now }; storage.Add(newVisit); } await storage.SaveChangesAsync(); } if (existingVisitor == null) { LeTwitchBot.TwitchClient.SendHostChannelMessage($"{senderClient.TwitchUsername} joined the stream for the first time. Welcome!!"); } }