static async Task Poll(string tenant) { var config = LogTool.GetConfig().GetSection(tenant); var conn = new ManagementConnector(config); await conn.Connect(); var allUrls = new List <string>(); var checker = new StreamChecker(LogTool.CreateLogger <StreamChecker>(), config, config["TenantId"]); await checker.Connect(); while (true) { var urls = await conn.GetContentUrls(DateTime.Now.AddMinutes(-150)); urls = urls.Except(allUrls).ToArray(); allUrls.AddRange(urls); File.WriteAllLines("urls.log", allUrls); foreach (var url in urls) { await checker.Check(url); } await Task.Delay(TimeSpan.FromMinutes(5)); } }
static async Task Main(string[] args) { Console.WriteLine("Hello World!"); string twitchSecret = Environment.GetEnvironmentVariable("TWITCH_SECRET"); string twitchClientId = Environment.GetEnvironmentVariable("TWITCH_CLIENTID"); string discordToken = Environment.GetEnvironmentVariable("DISCORD_TOKEN"); string discordChannel = Environment.GetEnvironmentVariable("DISCORD_CHANNEL"); string[] streamers = Environment.GetEnvironmentVariable("STREAMERS")?.Split(','); var tw = new TwitchAPI(); tw.Settings.Secret = twitchSecret; tw.Settings.ClientId = twitchClientId; var dsc = new Notifier(discordToken, discordChannel); var streamChecker = new StreamChecker(tw, streamers); try { await foreach (string streamer in streamChecker.WaitForStreamerOnline()) { Console.WriteLine($"{DateTime.Now} streamer {streamer} online"); await dsc.SendNotifyAsync(streamer, $"Запустил свой стрим https://www.twitch.tv/{streamer}"); } } catch (Exception e) { Console.WriteLine(DateTime.Now + e.Message); Console.WriteLine(e.StackTrace); } }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req, ILogger log) { string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var payload = JToken.Parse(requestBody); if (payload is JArray data) { var conf = new ConfigurationBuilder() .AddEnvironmentVariables() .Build(); var tenants = new[] { conf.GetSection("UvA"), conf.GetSection("HvA") }; var tenantId = (string)data[0]["tenantId"]; log.LogInformation($"Received {data.Count} blocks (tenant {tenantId})"); var tenant = tenants.First(t => t["tenantId"] == tenantId); var checker = new StreamChecker(log, tenant, tenantId); await checker.Connect(); foreach (var el in payload) { await checker.Check(el["contentUri"].ToString()); } } else { log.LogInformation("Received message without array"); } return(new OkResult()); }
public string StreamChecker(string[] words, string letter) { var checker = new StreamChecker(words); var result = new System.Text.StringBuilder(letter.Length); foreach (var c in letter) { result.Append(checker.Query(c) ? 'T' : 'F'); } return(result.ToString()); }
public void Test(string inputWordStr, string inputQueryStr, string expectedStr) { var inputWords = inputWordStr.Split(','); var inputQueries = inputQueryStr.Split(',').Select(x => x[0]).ToArray(); var expected = JsonConvert.DeserializeObject <bool[]>(expectedStr); var checker = new StreamChecker(inputWords); for (var i = 0; i < inputQueries.Length; ++i) { checker.Query(inputQueries[i]).Should().Be(expected[i], $"i:{i} query:{inputQueries[i]} expected:{expected[i]}"); } }
static void Main(string[] args) { // ['o','a','a','n'], //['e','t','a','e'], //['i','h','k','r'], //['i','f','l','v'] var chararr = new char[4][] { new char[4] { 'o', 'a', 'a', 'n' }, new char[4] { 'e', 't', 'a', 'e' }, new char[4] { 'i', 'h', 'k', 'r' }, new char[4] { 'i', 'f', 'l', 'v' } }; #region 2-D Array Initialize //var arr = new int[4][] { // new int[2] { 0 , 0 }, // new int[2] { 0 , 1}, // new int[2] { 1 , 2}, // new int[2] { 1 , 2}, // }; #endregion #region Linked List Initialize var head1 = new ListNode(1); head1.next = new ListNode(2); head1.next.next = new ListNode(3); head1.next.next.next = new ListNode(4); head1.next.next.next.next = new ListNode(5); #endregion #region Tree Initialize var root = new TreeNode(1); root.left = new TreeNode(2); root.right = new TreeNode(3); root.left.left = new TreeNode(4); root.left.right = new TreeNode(5); #endregion var sc = new StreamChecker(new string[5] { "ab", "ba", "aaab", "abab", "baa" }); var s1 = sc.Query('b'); var s2 = sc.Query('a'); var s3 = sc.Query('a'); var s4 = sc.Query('a'); var s5 = sc.Query('a'); //[1,2,3,4,5], arr2 = [1,2,5,7,9], arr3 = [1,3,4,5,8] var stack = new Stack <int>(); stack.Push(12); stack.Push(15); stack.Push(24); stack.Push(1); stack.Push(5); var obj = new SnowPack(); var res = obj.Calculate(new int[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }); Console.WriteLine(res); }