public async Task <ImageCollatorOutputs> FunctionHandler(ImageCollatorInputs input, ILambdaContext context) { this.context = context; Log("Collation: " + input.collation); Log("Accounts: " + string.Join(",", input.accounts)); Log("Period: " + input.period); Log("Filter: " + input.filter); Log("Group: " + input.group); var collation = EnumHelper.EnsureArgument <Collations>(input.collation, "collation"); var twitterApiKey = GetEnv("TWITTER_CONSUMER_KEY"); var twitterApiKeySecret = GetEnv("TWITTER_CONSUMER_KEY_SECRET"); var twitterAccessToken = GetEnv("TWITTER_ACCESS_TOKEN"); var twitterAccessTokenSecret = GetEnv("TWITTER_ACCESS_TOKEN_SECRET"); var githubToken = GetEnv("GITHUB_TOKEN", collation == Collations.github); var githubOwner = GetEnv("GITHUB_OWNER", collation == Collations.github); var githubRepository = GetEnv("GITHUB_REPOSITORY", collation == Collations.github); var bucket = GetEnv("AWS_S3_BUCKET", collation == Collations.s3); var filter = EnumHelper.EnsureArgument <Filters>(input.filter, "filter"); var dates = PeriodHelper.ParsePeriod(input.period); var start = dates[0]; var end = dates[1]; var keywords = await KeywordsHelper.FindKeywordsAsync(input.keywords_list, input.keywords_list_url); var inspector = new TwitterInspector( twitterApiKey, twitterApiKeySecret, twitterAccessToken, twitterAccessTokenSecret, filter, context.Logger.LogLine, keywords); ICollator collator = CollatorFactory.Create(collation, Log, input.group, bucket, githubToken, githubOwner, githubRepository); collator.Verbose = true; var outputs = new ImageCollatorOutputs(); foreach (var account in input.accounts) { var medias = await inspector.FilterTimelineAsync(account, start, end); var summary = await collator.CollateAsync(medias); outputs.summaries += summary.Summaries; outputs.files += summary.Files; outputs.errors.AddRange(summary.Errors); } return(outputs); }
public static string GetCurrentBundleVersion() { String value = KeywordsHelper.GetKeywordValue("BundleVersion", PerformanceMode.ApplicationState); if (value == null || value.Length <= 0) { value = "1.0.0"; KeywordsHelper.SetKeywordValue("BundleVersion", value); } return(value); }
public static string CleanUpPlaceHolders(string body, int lastCount) { var maxCount = KeywordsHelper.GetKeywordValue("MaxPlaceHoldersCount").IntParse(); for (var xCount = lastCount + 1; xCount < maxCount; xCount++) { var placeHolder = string.Format("[PLACEHOLDER{0}]", xCount); body = body.Replace(placeHolder, string.Empty); } return(body); }
private async Task OnRemoveFileKeywordCommand(string keyword) { var confirmDialog = new ConfirmDialog(Strings.YOU_ARE_ABOUT_TO_DELETE_THIS_ITEM_ARE_YOU_SURE); var result = await confirmDialog.OpenAsync(); if (result) { _logger.Info("Removing file keyword"); KeywordsHelper.RemoveKeyword(KeywordType.File, keyword); } RaisePropertyChanged(nameof(Keywords)); }
public Preset CreateExistingPreset(string targetDir) { _logger.Debug("Creating existing preset"); var keywords = KeywordsHelper.GetKeywords(); var enbFiles = Directory.EnumerateFiles(targetDir, "*.*", SearchOption.TopDirectoryOnly) .Where(x => KeywordsHelper.MatchesKeyword(keywords.Files, Path.GetFileName(x))).ToList(); var enbDirs = Directory.EnumerateDirectories(targetDir, "*", SearchOption.AllDirectories) .Where(x => KeywordsHelper.MatchesKeyword(keywords.Directories, x.Replace(targetDir, ""))); foreach (var dir in enbDirs) { // If directory is empty, add it if (Directory.GetFiles(dir).Length == 0) { enbFiles.Add(dir); } var files = Directory.GetFiles(dir, "*", SearchOption.AllDirectories); foreach (var file in files) { if (enbFiles.Any(x => x == file)) { continue; } enbFiles.Add(file); } } var preset = new Preset() { Files = enbFiles }; return(preset); }
private async Task OnAddKeywordCommand(object keywordType) { var inputDialog = new InputDialog(Strings.ENTER_A_NEW_NAME); var result = await inputDialog.OpenAsync(); if (result) { _logger.Info("Adding folder keyword"); try { KeywordsHelper.AddKeyword((KeywordType)keywordType, inputDialog.Value); } catch (IdenticalNameException ex) { _logger.Debug(ex.Message); await new MessageDialog(Strings.AN_ITEM_WITH_THIS_NAME_ALREADY_EXISTS).OpenAsync(); } } RaisePropertyChanged(nameof(Keywords)); }
public static string EmailTemplateFile(string name) { return(HttpRuntime.AppDomainAppPath + KeywordsHelper.GetKeywordValue(name)); }
internal static void SetBundleVersion(String version) { KeywordsHelper.SetKeywordValue("BundleVersion", version); KeywordsHelper.SetKeywordValue("BundleVersion", version, PerformanceMode.ApplicationState); }
public KeywordsService(IKeywordsDbService keywordsService) { keywordsHelper = new KeywordsHelper(); this.keywordsService = keywordsService; }
static async Task Main(string[] args) { var environment = GetArg(args, 0, "environment").Trim().ToLower(); var username = GetArg(args, 1, "username").Trim().ToLower(); var periodStr = GetArg(args, 2, "period").Trim().ToLower(); var filterStr = GetArg(args, 3, "filter").Trim().ToLower(); var collationStr = GetArg(args, 4, "collation").Trim().ToLower(); var group = GetArg(args, 5, "group").Trim().ToLower(); var keywordsList = new string[0]; var keywordsListUrl = GetArg(args, 6, "keywords-list-url", false)?.Trim().ToLower(); // TODO: permit the user to provide a keywords list from a local file if they like Console.WriteLine("Environment: " + environment); Console.WriteLine("Username: "******"Filter: " + filterStr); Console.WriteLine("Period: " + periodStr); var dates = PeriodHelper.ParsePeriod(periodStr); var start = dates[0]; var end = dates[1]; Console.WriteLine("↳ Start: " + start.ToShortDateString()); Console.WriteLine("↳ End: " + end.ToShortDateString()); var filter = EnumHelper.EnsureArgument <Filters>(filterStr, "filter"); var collation = EnumHelper.EnsureArgument <Collations>(collationStr, "collation"); var envFile = ".env." + environment; DotNetEnv.Env.Load(envFile); var twitterApiKey = GetEnv("TWITTER_CONSUMER_KEY"); var twitterApiKeySecret = GetEnv("TWITTER_CONSUMER_KEY_SECRET"); var twitterAccessToken = GetEnv("TWITTER_ACCESS_TOKEN"); var twitterAccessTokenSecret = GetEnv("TWITTER_ACCESS_TOKEN_SECRET"); var bucket = GetEnv("AWS_S3_BUCKET", collation == Collations.s3); var githubToken = GetEnv("GITHUB_TOKEN", collation == Collations.github); var githubOwner = GetEnv("GITHUB_OWNER", collation == Collations.github); var githubRepository = GetEnv("GITHUB_REPOSITORY", collation == Collations.github); var keywords = filter == Filters.keywords ? await KeywordsHelper.FindKeywordsAsync(keywordsList, keywordsListUrl) : null; var inspector = new TwitterInspector( twitterApiKey, twitterApiKeySecret, twitterAccessToken, twitterAccessTokenSecret, filter, Console.WriteLine, keywords); var found = await inspector.FilterTimelineAsync(username, start, end); var collator = CollatorFactory.Create( collation, Console.WriteLine, group, s3bucket: bucket, githubToken: githubToken, githubOwner: githubOwner, githubRepository: githubRepository); collator.Verbose = true; var result = await collator.CollateAsync(found); Console.WriteLine(string.Format("Summaries: {0}", result.Summaries)); Console.WriteLine(string.Format("Files: {0}", result.Files)); Console.WriteLine(string.Format("Errors:\n{0}", string.Join('\n', result.Errors))); }