예제 #1
0
 private string GetStreamUrl(Data.DBModels.StreamModels.Stream stream)
 {
     if (string.IsNullOrEmpty(stream.Url))
     {
         stream.Url = "https://www.twitch.tv/" + stream.StreamName;
     }
     return(stream.Url);
 }
예제 #2
0
 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);
 }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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();
                }
            }
        }
예제 #5
0
 public TimeSpan GetUpTime(Data.DBModels.StreamModels.Stream stream)
 {
     return(DateTime.Now - stream.Started);
 }