private string GetStreamUrl(Data.DBModels.StreamModels.Stream stream) { if (string.IsNullOrEmpty(stream.Url)) { stream.Url = "https://www.twitch.tv/" + stream.StreamName; } return(stream.Url); }
public bool TriggerUpTime(Data.DBModels.StreamModels.Stream stream) { if (stream.UpTimeInterval > 0) { if (stream.Started > stream.LastUpTime) { stream.LastUpTime = stream.Started; } var UpTime = DateTime.Now - stream.LastUpTime; if (UpTime.TotalMinutes > stream.UpTimeInterval) { return(true); } } return(false); }
private async Task NotifyUsers(Data.DBModels.StreamModels.Stream stream, TwitchLib.Api.Helix.Models.Streams.Stream streamdata) { int longDelayCounter = 0; foreach (string username in stream.GetActiveSubscribers()) { longDelayCounter++; if (longDelayCounter == 5) { longDelayCounter = 0; await Task.Delay(2000); } _eventBus.TriggerEvent(EventType.DiscordMessageSendRequested, new MessageArgs() { Message = stream.StreamStartedMessage(streamdata.Title, GetStreamUrl(stream)), RecipientName = username }); await Task.Delay(100); } }
private async Task FillClientIDs() { using (var scope = _scopeFactory.CreateScope()) { var _context = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>(); var Streams = _context.StreamModels; var StreamNameList = Streams.Where(x => string.IsNullOrEmpty(x.UserID)).Select(x => x.StreamName).ToList(); if (StreamNameList.Any()) { var userdata = await api.Helix.Users.GetUsersAsync(logins : StreamNameList); foreach (var user in userdata.Users) { Data.DBModels.StreamModels.Stream stream = Streams.Where(x => x.StreamName.ToLower() == user.Login.ToLower()).FirstOrDefault(); stream.UserID = user.Id; } _context.SaveChanges(); } } }
public TimeSpan GetUpTime(Data.DBModels.StreamModels.Stream stream) { return(DateTime.Now - stream.Started); }