public void NoDirtyWords() { var censor = new Censor(new []{"helloworld"}); var test = "The dirty word is not here"; var correct = "The dirty word is not here"; var result = censor.CensorText(test); Assert.IsFalse(censor.HasCensoredWord(test), "The text is not dirty, but returned true"); Assert.AreEqual(result, correct, "All words were not censored correctly"); }
public void DirtyWordsWithSpaces() { var test = "The dirty word hello world and Hello World"; var censor = new Censor(new [] { "hello world" }); var correct = "The dirty word *********** and ***********"; var result = censor.CensorText(test); Assert.IsTrue(censor.HasCensoredWord(test), "The text is dirty, but returned false"); Assert.AreEqual(result, correct, "All words were not filtered"); }
public void NoDirtyWords() { var censor = new Censor(new [] { "helloworld" }); var test = "The dirty word is not here"; var correct = "The dirty word is not here"; var result = censor.CensorText(test); Assert.IsFalse(censor.HasCensoredWord(test), "The text is not dirty, but returned true"); Assert.AreEqual(result, correct, "All words were not censored correctly"); }
public void DirtyWordsWithSpaces() { var test = "The dirty word hello world and Hello World"; var censor = new Censor(new []{"hello world"}); var correct = "The dirty word *********** and ***********"; var result = censor.CensorText(test); Assert.IsTrue(censor.HasCensoredWord(test), "The text is dirty, but returned false"); Assert.AreEqual(result, correct, "All words were not filtered"); }
public async Task <string> Get() { try { var tweets = new List <Tweet>(); var tweetsObj = cache.GetValue("tweets"); if (tweetsObj != null) { tweets = tweetsObj as List <Tweet>; } if (tweets == null) { tweets = new List <Tweet>(); } if (tweets.Count > 0) { return(Newtonsoft.Json.JsonConvert.SerializeObject(tweets)); } var auth = new ApplicationOnlyAuthorizer() { CredentialStore = new InMemoryCredentialStore { ConsumerKey = ConfigurationManager.AppSettings["TwitterConsumerKey"], ConsumerSecret = ConfigurationManager.AppSettings["TwitterConsumerSecret"], }, }; await auth.AuthorizeAsync(); var twitterContext = new TwitterContext(auth); var queryResponse = await (from tweet in twitterContext.Search where tweet.Type == SearchType.Search && (tweet.Query == "#devspace") && tweet.Count == 100 select tweet).SingleOrDefaultAsync(); if (queryResponse == null || queryResponse.Statuses == null) { return(string.Empty); } tweets = (from tweet in queryResponse.Statuses where tweet.RetweetedStatus.StatusID == 0 && !tweet.PossiblySensitive && !censor.HasCensoredWord(tweet.Text) select new Tweet { TweetedImage = tweet.Entities?.MediaEntities.Count > 0 ? tweet.Entities?.MediaEntities?[0].MediaUrlHttps ?? string.Empty : string.Empty, ScreenName = tweet.User?.ScreenNameResponse ?? string.Empty, Text = tweet.Text, Name = tweet.User.Name, CreatedDate = tweet.CreatedAt, Url = string.Format("https://twitter.com/{0}/status/{1}", tweet.User.ScreenNameResponse, tweet.StatusID), Image = (tweet.RetweetedStatus != null && tweet.RetweetedStatus.User != null ? tweet.RetweetedStatus.User.ProfileImageUrl.Replace("http://", "https://") : tweet.User.ProfileImageUrl.Replace("http://", "https://")) }).Take(15).ToList(); cache.Add("tweets", tweets, DateTimeOffset.UtcNow.AddMinutes(1)); return(Newtonsoft.Json.JsonConvert.SerializeObject(tweets)); } catch (Exception ex) { Debug.WriteLine(ex); } return(string.Empty); }
public async Task <string> Get() { try { var tweets = new List <Tweet>(); var tweetsObj = cache.GetValue("tweets"); if (tweetsObj != null) { tweets = tweetsObj as List <Tweet>; } if (tweets == null) { tweets = new List <Tweet>(); } if (tweets.Count > 0) { return(Newtonsoft.Json.JsonConvert.SerializeObject(tweets)); } var auth = new ApplicationOnlyAuthorizer() { CredentialStore = new InMemoryCredentialStore { ConsumerKey = ConfigurationManager.AppSettings["TwitterConsumerKey"], ConsumerSecret = ConfigurationManager.AppSettings["TwitterConsumerSecret"], }, }; await auth.AuthorizeAsync(); var twitterContext = new TwitterContext(auth); // Find tweets by user //var user = // await // (from u in twitterContext.User // where u.Type == UserType.Lookup // && u.ScreenNameList == FeatureFlags.TwitterHandle.Replace("@", "") // select u).ToListAsync(); //if (user != null) //{ // tweets.AddRange(from s in user // where s.Status != null // select new Tweet // { // TweetedImage = s.Status.Entities?.MediaEntities.Count > 0 ? s.Status.Entities?.MediaEntities?[0].MediaUrlHttps ?? string.Empty : string.Empty, // ScreenName = s.ScreenNameResponse ?? string.Empty, // Text = s.Status.Text, // Name = s.Status.User.Name, // CreatedDate = s.Status.CreatedAt, // Url = string.Format("https://twitter.com/{0}/status/{1}", s.Status.User.ScreenNameResponse, s.Status.StatusID), // Image = (s.Status.RetweetedStatus != null && s.Status.RetweetedStatus.User != null ? // s.Status.RetweetedStatus.User.ProfileImageUrl.Replace("http://", "https://") : s.Status.User.ProfileImageUrl.Replace("http://", "https://")) // }); //} var queryResponse = await (from tweet in twitterContext.Search where tweet.Type == SearchType.Search && (tweet.Query == $"{FeatureFlags.TwitterHashtag} OR {FeatureFlags.TwitterHandle}") && tweet.Count == 100 select tweet).SingleOrDefaultAsync(); if (queryResponse?.Statuses != null) { tweets.AddRange( (from tweet in queryResponse.Statuses where tweet.RetweetedStatus.StatusID == 0 && !tweet.PossiblySensitive && !censor.HasCensoredWord(tweet.Text) select new Tweet { TweetedImage = tweet.Entities?.MediaEntities.Count > 0 ? tweet.Entities?.MediaEntities?[0].MediaUrlHttps ?? string.Empty : string.Empty, ScreenName = tweet.User?.ScreenNameResponse ?? string.Empty, Text = tweet.Text, Name = tweet.User.Name, CreatedDate = tweet.CreatedAt, Url = string.Format("https://twitter.com/{0}/status/{1}", tweet.User.ScreenNameResponse, tweet.StatusID), Image = (tweet.RetweetedStatus != null && tweet.RetweetedStatus.User != null ? tweet.RetweetedStatus.User.ProfileImageUrl.Replace("http://", "https://") : tweet.User.ProfileImageUrl.Replace("http://", "https://")) }).Take(15).ToList()); } tweets = tweets.OrderByDescending(t => t.CreatedDate).ToList(); cache.Add("tweets", tweets, DateTimeOffset.UtcNow.AddMinutes(1)); return(Newtonsoft.Json.JsonConvert.SerializeObject(tweets)); } catch (Exception e) { //return e.ToString(); } return(string.Empty); }
public static int Main(string[] args) { Console.WriteLine("Hello World!"); var path = args[0]; var censoredWords = args[1]; if (string.IsNullOrWhiteSpace(path)) { Console.WriteLine($"Wrong path was send as argument."); return(-1); } if (string.IsNullOrWhiteSpace(censoredWords)) { Console.WriteLine("No censored words were given"); return(-1); } var directoryInfo = new DirectoryInfo(path); if (!directoryInfo.Exists) { return(-1); } var censorResults = new List <CensoredResult>(); var censor = new Censor(censoredWords.Split(",")); foreach (var file in directoryInfo.EnumerateFiles("*.md", SearchOption.AllDirectories)) { try { using (var stream = file.OpenText()) { int lineNumber = 0; string line; while ((line = stream.ReadLine()) != null) { lineNumber++; if (censor.HasCensoredWord(line)) { var censoredResult = new CensoredResult(); censoredResult.FileName = file.FullName; censoredResult.LineNumber = lineNumber; censoredResult.CensoredLine = censor.CensorText(line); censorResults.Add(censoredResult); } } } } catch { continue; } } if (censorResults.Count > 0) { Console.WriteLine($"{censorResults.Count} Censors found"); var jsonString = JsonConvert.SerializeObject(censorResults, Formatting.Indented); Console.WriteLine(jsonString); return(-1); } return(0); }
public async Task <IEnumerable <Tweet> > GetTweets() { var tweets = new List <Tweet>(); var auth = new ApplicationOnlyAuthorizer() { CredentialStore = new InMemoryCredentialStore { ConsumerKey = Clients.Portable.Settings.Current.TwitterApiKey, ConsumerSecret = Clients.Portable.Settings.Current.TwitterApiSecret }, }; await auth.AuthorizeAsync(); var twitterContext = new TwitterContext(auth); var queryResponse = await //twitterContext.Search.W (from tweet in twitterContext.Search where tweet.Type == SearchType.Search && (tweet.Query == "%23CWITC") && tweet.Count == 100 select tweet).SingleOrDefaultAsync(); if (queryResponse == null || queryResponse.Statuses == null) { return(tweets); } tweets = (from tweet in queryResponse.Statuses where tweet.RetweetedStatus.StatusID == 0 && !tweet.PossiblySensitive && !censor.HasCensoredWord(tweet.Text) select new Tweet { TweetedImage = tweet.Entities?.MediaEntities.Count > 0 ? tweet.Entities?.MediaEntities?[0].MediaUrlHttps ?? string.Empty : string.Empty, ScreenName = tweet.User?.ScreenNameResponse ?? string.Empty, Text = tweet.Text, Name = tweet.User.Name, CreatedDate = tweet.CreatedAt, Url = string.Format("https://twitter.com/{0}/status/{1}", tweet.User.ScreenNameResponse, tweet.StatusID), Image = (tweet.RetweetedStatus != null && tweet.RetweetedStatus.User != null ? tweet.RetweetedStatus.User.ProfileImageUrl.Replace("http://", "https://") : tweet.User.ProfileImageUrl.Replace("http://", "https://")) }).Take(15).ToList(); return(tweets); }