//public static string addtwitterContentfeedsdata(string keyword, string userId, Helper.AppSettings _appSettings ) //{ // //MongoRepository mongorepo = new MongoRepository("ContentFeeds", _appSettings); // MongoRepository mongorepo = new MongoRepository("RssNewsContentsFeeds", _appSettings); // bool output = false; // string timeline = TwitterHashTag.TwitterBoardHashTagSearch(keyword, null); // int i = 0; // if (!string.IsNullOrEmpty(timeline) && !timeline.Equals("[]")) // { // foreach (JObject obj in JArray.Parse(timeline)) // { // RssNewsContentsFeeds contentFeedsDet = new RssNewsContentsFeeds(); // // Domain.Socioboard.Models.Mongo.ContentFeeds contentFeedsDet = new Domain.Socioboard.Models.Mongo.ContentFeeds(); // contentFeedsDet.Id = ObjectId.GenerateNewId(); // i++; // try // { // contentFeedsDet.Link = JArray.Parse(obj["entities"]["expanded_url"].ToString())[0]["url"].ToString(); // //contentFeedsDet = JArray.Parse(obj["entities"]["expanded_url"].ToString())[0]["url"].ToString(); // } // catch // { // try // { // //contentFeedsDet.Link = JArray.Parse(obj["entities"]["urls"].ToString())[0]["expanded_url"].ToString(); // contentFeedsDet.Link = JArray.Parse(obj["entities"]["urls"].ToString())[0]["expanded_url"].ToString(); // } // catch (Exception e) // { // } // } // try // { // //contentFeedsDet.Image = JArray.Parse(obj["extended_entities"]["media"].ToString())[0]["media_url"].ToString(); // contentFeedsDet.Image = JArray.Parse(obj["extended_entities"]["media"].ToString())[0]["media_url"].ToString(); // } // catch // { // try // { // contentFeedsDet.Image = JArray.Parse(obj["entities"]["media"].ToString())[0]["media_url"].ToString(); // } // catch (Exception e) // { // } // } // try // { // contentFeedsDet.Title = obj["text"].ToString(); // //contentFeedsDet.Title = obj["text"].ToString(); // } // catch (Exception e) // { // } // try // { // string Const_TwitterDateTemplate = "ddd MMM dd HH:mm:ss +ffff yyyy"; // contentFeedsDet.PublishingDate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.ParseExact((string)obj["created_at"], Const_TwitterDateTemplate, new System.Globalization.CultureInfo("en-US"))).ToString(); // //contentFeedsDet.CreatedDate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.ParseExact((string)obj["created_at"], Const_TwitterDateTemplate, new System.Globalization.CultureInfo("en-US"))); // } // catch (Exception e) // { // } // contentFeedsDet.UserId = userId; // contentFeedsDet.keywords = keyword; // // var ret = mongorepo.Find<RssNewsContentsFeeds>(t => t.FeedId == contentFeedsDet.FeedId); // var ret = mongorepo.Find<RssNewsContentsFeeds>(t => t.UserId == userId && t.Image == contentFeedsDet.Image); // var task = Task.Run(async () => // { // return await ret; // }); // int count = task.Result.Count; // if (count < 1) // { // try // { // //mongorepo.Add<RssNewsContentsFeeds>(contentFeedsDet);ContentFeeds // mongorepo.Add<RssNewsContentsFeeds>(contentFeedsDet); // } // catch (Exception e) { } // } // else // { // //return "already data present"; // } // } // return "data successfully added"; // } // output = true; // return output.ToString(); //} public static bool addGplusContentfeedsdata(string keywords, string userId, Helper.AppSettings _appSettings) { MongoRepository mongorepo = new MongoRepository("RssNewsContentsFeeds", _appSettings); bool output = false; try { var discoveryResponse = GplusDiscoverySearchHelper.GooglePlus(keywords, _appSettings.GoogleApiKeyForRssFeed); JObject GplusActivities = JObject.Parse(discoveryResponse); foreach (JObject obj in JArray.Parse(GplusActivities["items"].ToString())) { RssNewsContentsFeeds contentGFeedsDet = new RssNewsContentsFeeds(); contentGFeedsDet.Id = ObjectId.GenerateNewId(); try { foreach (JObject att in JArray.Parse(obj["object"]["attachments"].ToString())) { contentGFeedsDet.Image = att["fullImage"]["url"].ToString(); contentGFeedsDet.Link = att["url"].ToString(); contentGFeedsDet.Title = att["displayName"].ToString(); } } catch { } try { contentGFeedsDet.PublishingDate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.Parse(obj["published"].ToString())).ToString(); } catch { } contentGFeedsDet.UserId = userId; contentGFeedsDet.keywords = keywords; var ret = mongorepo.Find <RssNewsContentsFeeds>(t => t.Title == contentGFeedsDet.Title); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { try { mongorepo.Add(contentGFeedsDet); output = true; } catch { } } } return(output); } catch { } return(output); }
public static void addContentfeedsdata(string keyword) { MongoRepository mongorepo = new MongoRepository("RssNewsContentsFeeds"); string timeline = TwitterHashTag.TwitterBoardHashTagSearch(keyword, null); int i = 0; if (!string.IsNullOrEmpty(timeline) && !timeline.Equals("[]")) { foreach (JObject obj in JArray.Parse(timeline)) { RssNewsContentsFeeds contentFeedsDet = new RssNewsContentsFeeds(); contentFeedsDet.Id = ObjectId.GenerateNewId(); i++; try { contentFeedsDet.Link = JArray.Parse(obj["entities"]["expanded_url"].ToString())[0]["url"].ToString(); } catch { try { contentFeedsDet.Link = JArray.Parse(obj["entities"]["urls"].ToString())[0]["expanded_url"].ToString(); } catch (Exception e) { } } try { contentFeedsDet.Image = JArray.Parse(obj["extended_entities"]["media"].ToString())[0]["media_url"].ToString(); } catch { try { contentFeedsDet.Image = JArray.Parse(obj["entities"]["media"].ToString())[0]["media_url"].ToString(); } catch (Exception e) { } } try { contentFeedsDet.Title = obj["text"].ToString(); } catch (Exception e) { } try { string Const_TwitterDateTemplate = "ddd MMM dd HH:mm:ss +ffff yyyy"; contentFeedsDet.PublishingDate = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(DateTime.ParseExact((string)obj["created_at"], Const_TwitterDateTemplate, new System.Globalization.CultureInfo("en-US"))).ToString(); } catch (Exception e) { } contentFeedsDet.keywords = keyword; var ret = mongorepo.Find <RssNewsContentsFeeds>(t => t.Image == contentFeedsDet.Image); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { try { mongorepo.Add <RssNewsContentsFeeds>(contentFeedsDet); } catch (Exception e) { } } else { } } } }
/// <summary> /// news api implementation /// </summary> /// <param name="keywords"></param> /// <param name="userId"></param> /// <param name="logger"></param> /// <param name="env"></param> /// <param name="appSettings"></param> /// <returns></returns> public static async Task <IEnumerable <RssNewsContentsFeeds> > FindUrl(string keywords, string userId, ILogger logger, IHostingEnvironment env, Helper.AppSettings appSettings) { IList <RssNewsContentsFeeds> finalLinkList = new List <RssNewsContentsFeeds>(); try { var rssFeedRepository = new MongoRepository("RssNewsContentsFeeds", appSettings); List <string> keywordCollections = null; if (keywords != null) { keywordCollections = keywords.Split(',').ToList(); } var day = 30; if (DateTime.UtcNow.Day > 1) { day = DateTime.UtcNow.Day - 1; } var newsApiClient = new NewsApiClient(appSettings.NewsApiKey); if (keywordCollections != null) { foreach (var keyword in keywordCollections) { var articlesResponse = newsApiClient.GetEverything(new EverythingRequest { Q = keyword, SortBy = SortBys.PublishedAt, Language = Languages.EN, From = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, day) }); if (articlesResponse.Articles.Count == 0) { logger.LogError(articlesResponse.Error?.ToString()); var temp = await rssFeedRepository.Find <RssNewsContentsFeeds>(x => x.keywords.Contains(keyword)); finalLinkList = temp.Skip(temp.Count - 20).Take(20 / keywordCollections.Count).ToList(); } else { foreach (var item in articlesResponse.Articles) { var rssFeed = new RssNewsContentsFeeds { keywords = keyword, Link = item.Url, Title = item.Title, Image = item.UrlToImage, PublishingDate = item.PublishedAt?.ToString(System.Globalization.CultureInfo.CurrentCulture) }; finalLinkList.Add(rssFeed); } try { await rssFeedRepository.AddList(finalLinkList); } catch (Exception ex) { logger.LogError(ex.StackTrace); } } finalLinkList = finalLinkList.Take(20 / keywordCollections.Count).ToList(); } } } catch (Exception ex) { logger.LogError(ex.StackTrace); } return(finalLinkList.Take(20)); }