Exemplo n.º 1
0
        public static void Main(string[] args)
        {
            _logger = new FileLogger("streamstats.log", new ConsoleLogger());;

            try
            {
                var discordmodel = JsonConvert.DeserializeObject <DiscordModel>(File.ReadAllText(@"discord.json"));
                var twitchModel  = JsonConvert.DeserializeObject <TwitchClientModel>(File.ReadAllText(@"twitch.json"));

                var announcementDiscordClient = new DiscordClient(discordmodel.AnnouncementWebhookUrl, _logger);
                var statsDiscordClient        = new DiscordClient(discordmodel.StatsWebhookUrl, _logger);
                var twitchClient = new TwitchClient(twitchModel.ClientId, _logger);

                if (!Directory.Exists("data"))
                {
                    Directory.CreateDirectory("data");
                }

                _streamChecker = new StreamChecker(twitchClient, announcementDiscordClient, statsDiscordClient, _logger);

                if (args.Any())
                {
                    if (args.First().ToLower().Equals("-single"))
                    {
                        CheckStreams(_streamChecker);
                        return;
                    }
                }
                else
                {
                    _logger.Log("Starting monitoring streams for stats:");

                    foreach (var line in File.ReadAllLines("twitchusers.txt"))
                    {
                        _logger.Log($"\t{line}");
                    }
                    _logger.Log("Press Q to quit.");
                    CheckStreams(_streamChecker);

                    _timer = new Timer(TimerCallback, null, 60000, Timeout.Infinite);
                    while (Console.ReadKey().Key != ConsoleKey.Q)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.Log(ex);
            }
        }
Exemplo n.º 2
0
        public static void CheckStreams(StreamChecker checker)
        {
            foreach (var line in File.ReadAllLines("twitchusers.txt"))
            {
                _logger.Log($"Checking {line}");
                var filename = Path.Combine("data", $"{line}_info.json");

                var streamInfo = new StreamInfo();

                if (File.Exists(filename))
                {
                    streamInfo = JsonConvert.DeserializeObject <StreamInfo>(File.ReadAllText(filename));
                }
                streamInfo.Name = line;

                streamInfo = checker.CheckStream(streamInfo);

                streamInfo.LastUpdated = DateTime.UtcNow;
                File.WriteAllText(filename, JsonConvert.SerializeObject(streamInfo));
            }
        }