public async Task <IActionResult> WebhookReceivedYT()
        {
            string body       = new StreamReader(Request.Body).ReadToEnd();
            var    bodyStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(body));
            var    headers    = Request.Headers;

            await Program.MopsLog(new LogMessage(LogSeverity.Verbose, "", $"Received a YT webhook message\n" + body));

            try
            {
                var data = ConvertAtomToSyndication(bodyStream);
                MopsBot.Data.Tracker.YoutubeTracker tracker = StaticBase.Trackers[Data.Tracker.BaseTracker.TrackerType.Youtube].GetTrackers()[data.ChannelId] as MopsBot.Data.Tracker.YoutubeTracker;
                await tracker.CheckInfoAsync(data);
            }
            catch (Exception e)
            {
                await Program.MopsLog(new LogMessage(LogSeverity.Error, "", $" error by Youtube Webhook.", e));
            }

            return(new OkResult());
        }
        public async Task <IActionResult> ReplyChallengeYT()
        {
            Dictionary <string, string[]> parameters = Request.Query.ToDictionary(x => x.Key, x => x.Value.ToArray());

            if (parameters.ContainsKey("hub.challenge"))
            {
                await Program.MopsLog(new LogMessage(LogSeverity.Verbose, "", $"Received a YT challenge, containing {string.Join("\n", parameters.Select(x => x.Key + ": " + string.Join(", ", x.Value)))}"));

                var channel = parameters["hub.topic"].FirstOrDefault().Split("channel_id=").LastOrDefault();
                if (!parameters["hub.mode"].FirstOrDefault().Contains("unsubscribe"))
                {
                    MopsBot.Data.Tracker.YoutubeTracker tracker = StaticBase.Trackers[Data.Tracker.BaseTracker.TrackerType.Youtube].GetTrackers()[channel] as MopsBot.Data.Tracker.YoutubeTracker;
                    tracker.WebhookExpire = DateTime.Now.AddDays(4);
                    await tracker.UpdateTracker();
                }
                return(new OkObjectResult(parameters["hub.challenge"].FirstOrDefault()));
            }
            else
            {
                return(new BadRequestResult());
            }
        }