private static void GetMusicReviews() { //Get a list of different content types with a count for each var op = new OpenPlatformSearch(); var results = op.Search(new ContentSearchParameters { Count = 100, Filters = new List<string> {"/global/albumreview" } }); var types = results.Results .Select(c => c.TaggedWith.Where(t => t.Type == "keyword")) .SelectMany(i => i) .Distinct(new TagComparer()); foreach (var item in types) { Console.WriteLine(item.Name); } var typeCounts = results.Results .Where(c => c.TaggedWith.Any(t => t.Type == "keyword" && t.Name.Contains("music"))) .GroupBy(c => (c.TaggedWith.First(t => t.Name.Contains("music")).Name)) .Select(c => new { ContentType = c.Key, Count = c.Count() }); foreach (var typeCount in typeCounts) { Console.WriteLine("Type: " + typeCount.ContentType + " Count: " + typeCount.Count); } var authorCounts = results.Results .GroupBy(c => (c.Byline)) .Select(c => new { ContentType = c.Key, Count = c.Count() }); foreach (var typeCount in authorCounts) { Console.WriteLine("Type: " + typeCount.ContentType + " Count: " + typeCount.Count); } }
public void TestGetReviewType_with_real_data() { //http://content.guardianapis.com/stage/2010/nov/24/the-invisible-man-review //http://content.guardianapis.com/stage/2010/nov/24/hunt-for-the-scroobious-pip-review //http://content.guardianapis.com/tv-and-radio/2010/nov/24/arise-black-man-peter-tosh-review //http://content.guardianapis.com/tv-and-radio/2010/nov/23/how-roald-dahl-shaped-pop-review //http://content.guardianapis.com/technology/gamesblog/2010/nov/22/we-sing-robbie-williams-review //http://content.guardianapis.com/tv-and-radio/2010/nov/22/tv-review-any-human-heart //load some reviews from a text file using a fake var op = new OpenPlatformSearch(new ApiService("Reviews2.json"), "", ""); var results = op.ContentSearch(new ContentSearchParameters()); results.Results.Count().ShouldBe(50); var content = results.Results .Where(c => c.ApiUrl == "http://content.guardianapis.com/stage/2010/nov/24/the-invisible-man-review").First(); content.GetReviewType().ShouldBe(ReviewTypes.Theatre); content = results.Results .Where(c => c.ApiUrl == "http://content.guardianapis.com/technology/gamesblog/2010/nov/22/we-sing-robbie-williams-review").First(); content.GetReviewType().ShouldBe(ReviewTypes.Game); content = results.Results .Where(c => c.ApiUrl == "http://content.guardianapis.com/tv-and-radio/2010/nov/24/arise-black-man-peter-tosh-review").First(); content.GetReviewType().ShouldBe(ReviewTypes.TvAndRadio); //var multiples = results.Results.Where(c => converter.GetReviewTypesFromTag(c).Count > 1); //foreach (var multiple in multiples) //{ // System.Diagnostics.Debug.WriteLine(multiple.ApiUrl); //} //var count = multiples.Count(); }
public void can_get_correct_number_of_reviews() { var op = new OpenPlatformSearch(new ApiService("ReviewsWithAllFields.json"), "", ""); var rf = new ReviewFetcher(op); var reviews = rf.FetchReviews(); reviews.Count().ShouldBe(50); }
protected static void GetItem() { //Get an item by Id var op = new OpenPlatformSearch(); var item = op.Item(353757375); Console.WriteLine("author name: " + item.Byline); if(item.Type == "article") Console.WriteLine(item.TypeSpecific.Body); }
public void Can_insert_Content() { SessionManager.CreateSchema(); var op = new OpenPlatformSearch(new ApiService("ReviewsWithAllFields.json"), "", ""); var fetcher = new ReviewFetcher(op); var reviews = fetcher.FetchReviews(); var repository = new QueryRepository<Review>(); var nulls = reviews.Where(r => r.ReviewType == null).ToList(); repository.SaveMany(reviews); }
public void Can_get_and_insert_live_Content() { SessionManager.CreateSchema(); var op = new OpenPlatformSearch(); var fetcher = new ReviewFetcher(op); var reviews = fetcher.FetchReviews(); var repository = new QueryRepository<Review>(); var nulls = reviews.Where(r => r.ReviewType == null).ToList(); repository.SaveMany(reviews); }
public void Test_Item_Search() { var op = new OpenPlatformSearch(new ApiService("Json\\Article.json")); var item = op.Item("tv-and-radio/2010/apr/10/charlie-brooker-mad-men-screenburn"); Assert.AreEqual("tv-and-radio/2010/apr/10/charlie-brooker-mad-men-screenburn", item.Id); //Assert.AreEqual("article", item.Type); Assert.AreEqual("Charlie Brooker", item.Fields.Byline); Assert.AreEqual(8, item.Tags.Count()); Assert.AreEqual(2010, item.WebPublicationDate.Year); }
public void Test_Tag_Search() { var op = new OpenPlatformSearch(new ApiService("Json\\Tags.json")); var item = op.Tags(new TagSearchParameters()); Assert.IsNotNull(item.Results); Assert.AreEqual(10, item.Results.Count()); var second = item.Results[1]; Assert.AreEqual("Dick Vinegar", second.WebTitle); Assert.AreEqual("contributor", second.Type); Assert.AreEqual("profile/dick-vinegar", second.Id); Assert.AreEqual("http://content.guardianapis.com/profile/dick-vinegar", second.ApiUrl); Assert.AreEqual("http://www.guardian.co.uk/profile/dick-vinegar", second.WebUrl); }
private static void GetDistinctItemTypes() { //Get a list of different content types with a count for each var op = new OpenPlatformSearch(); var results = op.Search(new ContentSearchParameters {Count = 100}); var typeCounts = results.Results .GroupBy(c => c.Type) .Select(c => new {ContentType = c.Key, Count = c.Count()}); foreach(var typeCount in typeCounts) { Console.WriteLine("Type: " + typeCount.ContentType + " Count: " + typeCount.Count); } }
protected static void SimpleSearch() { //A simple content search var op = new OpenPlatformSearch(); var results = op.Search(new ContentSearchParameters { Query = "Nina Nastasia", Count = 20, }); Console.WriteLine("Number of results: " + results.Count); foreach (var item in results.Results) { Console.WriteLine(item.Headline); } }
public static SearchResults GetMusicContentForLastNDays(double numberOfDays) { var op = new OpenPlatformSearch(); var date = DateTime.Today.AddDays(-numberOfDays); var results = op.Search(new ContentSearchParameters { After = date, Count = 100, //there will be fewer results than this, we just want to bring them all back Filters = new List<string> { "/music" } }); return results; }
public void Test_Search() { var op = new OpenPlatformSearch(new ApiService("Json\\ContentSearch.json")); var results = op.ContentSearch(new ContentSearchParameters { Query = "Nina Nastasia", PageSize = 20 }); Assert.AreEqual(10, results.Results.Count()); var article = results.Results[0]; Assert.AreEqual(2004, article.WebPublicationDate.Year); var video = results.Results[7]; }
protected static void SearchWithFilters() { //A content search with filters var op = new OpenPlatformSearch(); var parameters = new ContentSearchParameters { Query = "prince", Count = 20, Filters = new List<string>{"music"} }; var results = op.Search(parameters); Console.WriteLine("Number of results: " + results.Count); foreach (var item in results.Results) { Console.WriteLine(item.Headline); } }
public ActionResult Results(ContentSearchParameters parameters) { OpenPlatformSearch op = new OpenPlatformSearch(); var results = op.Search(parameters); return View(results); }
public ReviewFetcher(OpenPlatformSearch contentApi) { _contentApi = contentApi; }
public void Can_get_and_insert_live_Content() { var session = NHibernateSession.GetDefaultSessionFactory().OpenSession(); new SchemaExport(_configuration).Create(false, true); //add the enumerations foreach (MusicTypes i in Enumeration.GetAll<MusicTypes>()) { session.Save(i); } foreach (ReviewTypes i in Enumeration.GetAll<ReviewTypes>()) { session.Save(i); } //add a user var u = new User {ClaimedIdentifier = "test", Email = "*****@*****.**"}; u.ExcludedReviewTypes.Add(ReviewTypes.Game); session.SaveOrUpdate(u); //session.Flush(); var op = new OpenPlatformSearch(); var fetcher = new ReviewFetcher(op); var reviews = fetcher.FetchReviews(); var repository = new QueryRepository<Review>(); var nulls = reviews.Where(r => r.ReviewType == null).ToList(); nulls.Count.ShouldBe(0); repository.SaveMany(reviews); repository.DbContext.CommitChanges(); }
private static void GetMusicReviewsByDate() { //Get a list of authors with a count for each var op = new OpenPlatformSearch(); var results = op.Search(new ContentSearchParameters { Count = 100, Filters = new List<string> { "/global/albumreview" } }); var byDate = results.Results .GroupBy(c => c.PublicationDate) .Select(c => new { date = c.Key, Count = c.Count() }); foreach (var item in byDate) { Console.WriteLine("Date: " + item.date + " Day: " + item.date.DayOfWeek + " Count: " + item.Count); } }