예제 #1
0
        public static async Task Run([TimerTrigger("%PostGifsFunctionCron%")] TimerInfo myTimer, ILogger log)
        {
            var connectionString = Environment.GetEnvironmentVariable("TrendingGiphyBotConnectionString");
            var botToken         = Environment.GetEnvironmentVariable("BotToken");
            var hourOffsetString = Environment.GetEnvironmentVariable("HourOffset");
            var hourOffset       = int.Parse(hourOffsetString);
            var now = DateTime.Now.AddHours(-hourOffset);
            var validMinutesString  = Environment.GetEnvironmentVariable("ValidMinutes");
            var validMinutes        = validMinutesString.Split(',', options: StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);
            var validHoursString    = Environment.GetEnvironmentVariable("ValidHours");
            var validHours          = validHoursString.Split(',', options: StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);
            var validHoursAsMinutes = validHours.Select(s => s * 60);
            var allValidMinutes     = validMinutes.Concat(validHoursAsMinutes).ToList();
            var giphyRandomEndpoint = Environment.GetEnvironmentVariable("GiphyRandomEndpoint");
            var warningResponses    = Environment.GetEnvironmentVariable("WarningResponses").Split(',', options: StringSplitOptions.RemoveEmptyEntries).ToList();
            var logWrapper          = new LoggerWrapper(log);

            using (var context = new TrendingGiphyBotContext(connectionString))
                using (var giphyWrapper = new GiphyWrapper())
                    using (var discordWrapper = new DiscordWrapper(botToken))
                    {
                        var gifPostingHelper = new GifPostingHelper(logWrapper, context, giphyWrapper, discordWrapper, warningResponses);
                        var postGifsHelper   = new PostGifsHelper(gifPostingHelper);
                        await postGifsHelper.RunAsync(now, allValidMinutes, giphyRandomEndpoint);
                    }
        }
예제 #2
0
        public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "jobconfigs/{channelid:decimal}")] HttpRequest req, decimal channelId, ILogger log)
        {
            var connectionString = Environment.GetEnvironmentVariable("TrendingGiphyBotConnectionString");
            var logWrapper       = new LoggerWrapper(log);

            using (var context = new TrendingGiphyBotContext(connectionString))
            {
                var getJobConfigHelper = new GetJobConfigHelper(logWrapper, context);
                return(await getJobConfigHelper.RunAsync(channelId));
            }
        }
예제 #3
0
        public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "prefixDictionary")] HttpRequest req, ILogger log)
        {
            var connectionString = Environment.GetEnvironmentVariable("TrendingGiphyBotConnectionString");
            var logWrapper       = new LoggerWrapper(log);

            using (var context = new TrendingGiphyBotContext(connectionString))
            {
                var getPrefixDictionaryHelper = new GetPrefixDictionaryHelper(logWrapper, context);
                return(await getPrefixDictionaryHelper.RunAsync());
            }
        }
예제 #4
0
        public static async Task Run([TimerTrigger("%RefreshGifsFunctionCron%")] TimerInfo myTimer, ILogger log)
        {
            var connectionString = Environment.GetEnvironmentVariable("TrendingGiphyBotConnectionString");
            var trendingEndpoint = Environment.GetEnvironmentVariable("GiphyTrendingEndpoint");
            var logWrapper       = new LoggerWrapper(log);

            using (var giphyWrapper = new GiphyWrapper())
                using (var context = new TrendingGiphyBotContext(connectionString))
                {
                    var refreshGifsHelper = new RefreshGifsHelper(logWrapper, giphyWrapper, context);
                    await refreshGifsHelper.RunAsync(trendingEndpoint);
                }
        }
        public static async Task Run([TimerTrigger("%DeleteOldUrlHistoriesFunctionCron%")] TimerInfo myTimer, ILogger log)
        {
            var connectionString             = Environment.GetEnvironmentVariable("TrendingGiphyBotConnectionString");
            var urlHistoriesMaxDaysOldString = Environment.GetEnvironmentVariable("UrlHistoriesMaxDaysOld");
            var urlHistoriesMaxDaysOld       = int.Parse(urlHistoriesMaxDaysOldString);
            var oldestDate = DateTime.Now.AddDays(-urlHistoriesMaxDaysOld);
            var logWrapper = new LoggerWrapper(log);

            using (var context = new TrendingGiphyBotContext(connectionString))
            {
                var deleteOldUrlHistoriesHelper = new DeleteOldUrlHistoriesHelper(logWrapper, context);
                await deleteOldUrlHistoriesHelper.RunAsync(oldestDate);
            }
        }