public static string ParseFeedUrl(string TextUrl, Domain.Socioboard.Enum.SocialProfileType profiletype, string profileid, long userId, string profileName, string profileImageUrl, Helper.AppSettings _appSettings) { MongoRepository _RssFeedRepository = new MongoRepository("RssFeed", _appSettings); try { XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object xmlDoc.Load(TextUrl); var abc = xmlDoc.DocumentElement.GetElementsByTagName("item"); foreach (XmlElement item in abc) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); try { objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; try { objRssFeeds.Message = item.ChildNodes[9].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } catch (Exception ex) { try { if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http")) { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } else if (item.ChildNodes[2].InnerText.Contains("http")) { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } else { objRssFeeds.Message = item.ChildNodes[2].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } catch { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } try { if (item.ChildNodes[3].Name == "pubDate") { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } else { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } } catch (Exception ex) { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[5].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } objRssFeeds.Title = item.ChildNodes[0].InnerText; if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http")) { try { //objRssFeeds.Image = item.ChildNodes[1].InnerText; // objRssFeeds.Image = getBetween(objRssFeeds.Image, "src=\"", "\""); if (item.ChildNodes[2].Name == "link") { objRssFeeds.Link = item.ChildNodes[2].InnerText; } else { objRssFeeds.Link = item.ChildNodes[1].InnerText; objRssFeeds.Link = getBetween(objRssFeeds.Link, "<a href=\"", "\">"); } if (objRssFeeds.Link == "") { objRssFeeds.Link = item.ChildNodes[1].InnerText; } } catch (Exception ex) { objRssFeeds.Link = item.ChildNodes[2].InnerText; objRssFeeds.Link = getBetween(objRssFeeds.Link, "<a href=\"", "\">"); } } else if (item.ChildNodes[3].InnerText.Contains("www") || item.ChildNodes[3].InnerText.Contains("https")) { try { objRssFeeds.Message = item.ChildNodes[4].InnerText; objRssFeeds.Message = getBetween(objRssFeeds.Message, "<a href=\"", "\">"); } catch (Exception ex) { objRssFeeds.Link = ""; } try { objRssFeeds.Link = item.ChildNodes[3].InnerText; } catch (Exception ex) { objRssFeeds.Link = ""; } } else if (item.ChildNodes[2].InnerText.Contains("https")) { try { objRssFeeds.Link = item.ChildNodes[2].InnerText; } catch (Exception ex) { objRssFeeds.Link = ""; } try { if (item.ChildNodes[7].Name == "description") { objRssFeeds.Message = item.ChildNodes[7].InnerText; } else { objRssFeeds.Message = item.ChildNodes[6].InnerText; //objRssFeeds.Message = getBetween(objRssFeeds.Message, "<a href=\"", "\">"); } } catch (Exception ex) { objRssFeeds.Message = ""; } try { objRssFeeds.Title = item.ChildNodes[1].InnerText; } catch (Exception ex) { objRssFeeds.Message = ""; } try { if (item.ChildNodes[8].Name != "media") { objRssFeeds.Image = item.ChildNodes[8].InnerText; } else { objRssFeeds.Image = ""; } } catch (Exception ex) { objRssFeeds.Message = ""; } } else { objRssFeeds.Link = item.ChildNodes[2].InnerText; // objRssFeeds.Link = getBetween(objRssFeeds.Link, "<a href=\"", "\">"); } objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; var ret = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _RssFeedRepository.Add(objRssFeeds); } } catch (Exception ex) { } } return("ok"); } catch (Exception ex) { return("invalid url"); } }
public static string ParseXMLFeedUrl(string TextUrl, Domain.Socioboard.Enum.SocialProfileType profiletype, string profileid, long userId, string profileName, string profileImageUrl, Domain.Socioboard.Models.RssFeedUrl rssobj, Helper.AppSettings _appSettings) { MongoRepository _RssFeedRepository = new MongoRepository("RssFeed", _appSettings); MongoRepository _RssRepository = new MongoRepository("Rss", _appSettings); var rets = _RssRepository.Find <Domain.Socioboard.Models.Mongo.Rss>(t => t.RssFeedUrl.Equals(TextUrl) && t.ProfileId.Contains(profileid) && t.ProfileType == profiletype && t.UserId.Equals(userId)); var tasks = Task.Run(async() => { return(await rets); }); int counts = tasks.Result.Count; if (counts < 1) { Domain.Socioboard.Models.Mongo.Rss _Rss = new Domain.Socioboard.Models.Mongo.Rss(); _Rss.Id = ObjectId.GenerateNewId(); _Rss.strId = ObjectId.GenerateNewId().ToString(); _Rss.RssFeedUrl = TextUrl; _Rss.ProfileType = profiletype; _Rss.ProfileId = profileid; _Rss.UserId = userId; _Rss.ProfileImageUrl = profileImageUrl; _Rss.ProfileName = profileName; _Rss.rssFeedUrl = rssobj; _Rss.CreatedOn = DateTime.UtcNow.ToString("yyyy/MM/dd HH:mm:ss"); try { _RssRepository.Add(_Rss); } catch (Exception ex) { } } try { XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object xmlDoc.Load(TextUrl); string datevalue = null; string urlvalue = null; var abc = xmlDoc.DocumentElement.GetElementsByTagName("sitemap"); var urls = xmlDoc.DocumentElement.GetElementsByTagName("url"); if (abc.Count != 0) { try { foreach (XmlElement siteval in abc) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); try { urlvalue = siteval.ChildNodes[0].InnerText; } catch (Exception ex) { urlvalue = ""; } try { datevalue = siteval.ChildNodes[1].InnerText; } catch (Exception ex) { datevalue = ""; } DateTime todate = DateTime.Now; DateTime fromDate = DateTime.Now; fromDate = fromDate.AddYears(-1); fromDate = fromDate.AddMonths(5); DateTime dt = Convert.ToDateTime(datevalue); if (dt > fromDate && dt < todate) { xmlDoc.Load(urlvalue); var sitedatalist = xmlDoc.DocumentElement.GetElementsByTagName("url"); foreach (XmlElement item in sitedatalist) { objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; try { objRssFeeds.Link = item.ChildNodes[0].InnerText; // objRssFeeds.Link = getBetween(objRssFeeds.Link, "<a href=\"", "\">"); } catch (Exception ex) { objRssFeeds.Link = ""; } objRssFeeds.PublishingDate = item.ChildNodes[1].InnerText; var ret = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _RssFeedRepository.Add(objRssFeeds); } } } } } catch (Exception ex) { } } else { xmlDoc.Load(TextUrl); var sitedatalist = xmlDoc.DocumentElement.GetElementsByTagName("url"); try { foreach (XmlElement item in sitedatalist) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; try { objRssFeeds.Link = item.ChildNodes[0].InnerText; objRssFeeds.Link = objRssFeeds.Link.Replace("\r", "").Replace("\n", ""); } catch (Exception ex) { } try { objRssFeeds.PublishingDate = item.ChildNodes[1].InnerText; } catch (Exception ex) { } var ret = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _RssFeedRepository.Add(objRssFeeds); } } } catch (Exception ex) { } } return("ok"); } catch (Exception ex) { return("invalid url"); } }
public static string ParseFeedUrl(string TextUrl, Domain.Socioboard.Enum.SocialProfileType profiletype, string profileid, long userId, string profileName, string profileImageUrl) { MongoRepository _RssFeedRepository = new MongoRepository("RssFeed"); try { XmlDocument xmlDoc = new XmlDocument(); // Create an XML document object xmlDoc.Load(TextUrl); var abc = xmlDoc.DocumentElement.GetElementsByTagName("item"); if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Facebook || profiletype == Domain.Socioboard.Enum.SocialProfileType.FacebookFanPage) { Model.DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.Facebookaccounts _Facebookaccounts = dbr.Find <Domain.Socioboard.Models.Facebookaccounts>(t => t.FbUserId == profileid).First(); if (_Facebookaccounts != null) { if (_Facebookaccounts.IsActive) { foreach (XmlElement item in abc) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); try { objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; try { objRssFeeds.Message = item.ChildNodes[9].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } catch (Exception ex) { try { if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http")) { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } else { objRssFeeds.Message = item.ChildNodes[2].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } catch { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } try { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } catch (Exception ex) { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } objRssFeeds.Title = item.ChildNodes[0].InnerText; if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http")) { try { objRssFeeds.Link = item.ChildNodes[1].InnerText; } catch (Exception ex) { objRssFeeds.Link = item.ChildNodes[2].InnerText; } } else { objRssFeeds.Link = item.ChildNodes[2].InnerText; } objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; var ret = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _RssFeedRepository.Add <Domain.Socioboard.Models.Mongo.RssFeed>(objRssFeeds); } } catch (Exception ex) { } if (apiHitsCount < MaxapiHitsCount) { string facebookdata = FacebookComposeMessageRss(objRssFeeds.Message, _Facebookaccounts.AccessToken, _Facebookaccounts.FbUserId, objRssFeeds.Title, objRssFeeds.Link, objRssFeeds.strId); if (!string.IsNullOrEmpty(facebookdata)) { apiHitsCount++; } } else { apiHitsCount = 0; return("ok"); } } _Facebookaccounts.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.Facebookaccounts>(_Facebookaccounts); } } } if (profiletype == Domain.Socioboard.Enum.SocialProfileType.Twitter) { Model.DatabaseRepository dbr = new DatabaseRepository(); Domain.Socioboard.Models.TwitterAccount _TwitterAccount = dbr.Find <Domain.Socioboard.Models.TwitterAccount>(t => t.twitterUserId == profileid).First(); if (_TwitterAccount != null) { if (_TwitterAccount.isActive) { foreach (XmlElement item in abc) { Domain.Socioboard.Models.Mongo.RssFeed objRssFeeds = new Domain.Socioboard.Models.Mongo.RssFeed(); try { objRssFeeds.Id = ObjectId.GenerateNewId(); objRssFeeds.strId = ObjectId.GenerateNewId().ToString(); objRssFeeds.ProfileName = profileName; objRssFeeds.ProfileImageUrl = profileImageUrl; try { objRssFeeds.Message = item.ChildNodes[9].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } catch (Exception ex) { try { if (item.ChildNodes[2].InnerText.Contains("www") && item.ChildNodes[2].InnerText.Contains("http")) { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } else { objRssFeeds.Message = item.ChildNodes[2].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } catch { objRssFeeds.Message = item.ChildNodes[1].InnerText; objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "<.*?>", string.Empty).Replace("[…]", ""); objRssFeeds.Message = Regex.Replace(objRssFeeds.Message, "@<[^>]+>| ", string.Empty); } } try { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[4].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } catch (Exception ex) { objRssFeeds.PublishingDate = DateTime.Parse(item.ChildNodes[3].InnerText).ToString("yyyy/MM/dd HH:mm:ss"); } objRssFeeds.Title = item.ChildNodes[0].InnerText; if (item.ChildNodes[1].InnerText.Contains("www") || item.ChildNodes[1].InnerText.Contains("http")) { try { objRssFeeds.Link = item.ChildNodes[1].InnerText; } catch (Exception ex) { objRssFeeds.Link = item.ChildNodes[2].InnerText; } } else { objRssFeeds.Link = item.ChildNodes[2].InnerText; } objRssFeeds.RssFeedUrl = TextUrl; objRssFeeds.ProfileId = profileid; objRssFeeds.ProfileType = profiletype; objRssFeeds.Status = false; var ret = _RssFeedRepository.Find <Domain.Socioboard.Models.Mongo.RssFeed>(t => t.Link.Equals(objRssFeeds.Link) && t.ProfileId.Equals(profileid) && t.ProfileType.Equals(profiletype)); var task = Task.Run(async() => { return(await ret); }); int count = task.Result.Count; if (count < 1) { _RssFeedRepository.Add <Domain.Socioboard.Models.Mongo.RssFeed>(objRssFeeds); } } catch (Exception ex) { } if (twtapiHitsCount < twtMaxapiHitsCount) { string twitterdata = TwitterComposeMessageRss(objRssFeeds.Message, _TwitterAccount.oAuthToken, _TwitterAccount.oAuthSecret, _TwitterAccount.twitterUserId, _TwitterAccount.twitterScreenName, objRssFeeds.strId); if (!string.IsNullOrEmpty(twitterdata)) { twtapiHitsCount++; } } else { twtapiHitsCount = 0; return("ok"); } } _TwitterAccount.SchedulerUpdate = DateTime.UtcNow; dbr.Update <Domain.Socioboard.Models.TwitterAccount>(_TwitterAccount); } } } return("ok"); } catch (Exception ex) { return("invalid url"); } }