コード例 #1
0
        public static void GooglePlusSearch()
        {
            DatabaseRepository dbr           = new DatabaseRepository();
            List <Discovery>   lst_discovery = dbr.Find <Discovery>(t => t.SearchKeyword != "").ToList();
            MongoRepository    mongoreppo    = new MongoRepository("AdvanceSerachData");

            List <Domain.Socioboard.Models.Mongo.AdvanceSerachData> GplusAdvanceSearch = new List <Domain.Socioboard.Models.Mongo.AdvanceSerachData>();

            foreach (var itemdis in lst_discovery)
            {
                string profileid = string.Empty;
                try
                {
                    //string searchResultObj = GplusDiscoverySearchHelper.GooglePlus(keyword);

                    JObject GplusActivities = JObject.Parse(GooglePlus(itemdis.SearchKeyword));

                    foreach (JObject gobj in JArray.Parse(GplusActivities["items"].ToString()))
                    {
                        Domain.Socioboard.Models.Mongo.AdvanceSerachData gpadvanceSearch = new Domain.Socioboard.Models.Mongo.AdvanceSerachData();
                        try
                        {
                            gpadvanceSearch.postUrl = gobj["url"].ToString();
                        }
                        catch { }
                        try
                        {
                            gpadvanceSearch.ImageUrl = gobj["object"]["attachments"][0]["fullImage"]["url"].ToString();
                        }
                        catch
                        {
                        }
                        try
                        {
                            gpadvanceSearch.title = gobj["title"].ToString();
                        }
                        catch
                        {
                        }
                        try
                        {
                            gpadvanceSearch.postId = gobj["actor"]["id"].ToString();
                        }
                        catch
                        {
                        }
                        try
                        {
                            gpadvanceSearch.userName = gobj["actor"]["displayName"].ToString();
                        }
                        catch
                        {
                        }
                        try
                        {
                            // gpadvanceSearch.postedTime = DateTime.Parse(gobj["published"].ToString());
                            gpadvanceSearch.postedTime = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(Convert.ToDateTime(gobj["published"].ToString()));
                        }
                        catch
                        {
                        }



                        //gpadvanceSearch.postedTime = DateTime.Parse(gobj["published"].ToString());


                        //gpadvanceSearch.postdescription = gobj["actor"]["displayName"].ToString();


                        // gpadvanceSearch.ImageUrl

                        int count = mongoreppo.Counts <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(t => t.postUrl == gpadvanceSearch.postUrl);
                        if (count == 0)
                        {
                            mongoreppo.Add <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(gpadvanceSearch);
                        }
                        else
                        {
                        }
                    }
                }
                catch { }
            }
        }
コード例 #2
0
        private static void fetchdata(Discovery itemdis)
        {
            MongoRepository mongoreppo = new MongoRepository("AdvanceSerachData");

            try
            {
                string youtubesearchurl = "https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=15&order=relevance&q=" + itemdis.SearchKeyword + "&key=AIzaSyBmQ1X1UBnKi3V78EkLuh7UHk5odrGfp5M";
                string response         = WebRequst(youtubesearchurl);
                var    Jdata            = Newtonsoft.Json.Linq.JObject.Parse(response);

                foreach (var item in Jdata["items"])
                {
                    Domain.Socioboard.Models.Mongo.AdvanceSerachData _AdvanceSerachData = new Domain.Socioboard.Models.Mongo.AdvanceSerachData();
                    _AdvanceSerachData.Id          = ObjectId.GenerateNewId();
                    _AdvanceSerachData.strId       = ObjectId.GenerateNewId().ToString();
                    _AdvanceSerachData.domainType  = "https://www.youtube.com/";
                    _AdvanceSerachData.postType    = Domain.Socioboard.Enum.AdvanceSearchpostType.video;
                    _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.youtube;
                    try
                    {
                        _AdvanceSerachData.userName = item["snippet"]["channelTitle"].ToString();
                    }
                    catch (Exception ex)
                    {
                        _AdvanceSerachData.userName = "";
                    }
                    try
                    {
                        _AdvanceSerachData.postId = item["id"]["videoId"].ToString();
                    }
                    catch (Exception ex)
                    {
                        _AdvanceSerachData.postId = "";
                    }
                    try
                    {
                        _AdvanceSerachData.title = item["snippet"]["title"].ToString();
                    }
                    catch (Exception ex)
                    {
                        _AdvanceSerachData.title = "";
                    }
                    try
                    {
                        _AdvanceSerachData.videourl = "https://www.youtube.com/watch?v=" + _AdvanceSerachData.postId;
                        long    fbengagementCount = TwitterAdvanceSearch.fbShareCount(_AdvanceSerachData.videourl);
                        long    redditShare       = TwitterAdvanceSearch.redditShareCount(_AdvanceSerachData.videourl);
                        string  datacount         = TwitterAdvanceSearch.getdonreachdatafromUrl("https://free.donreach.com/shares?providers=facebook,twitter,google,pinterest,linkedin,reddit&url=" + _AdvanceSerachData.videourl);
                        JObject shareData         = JObject.Parse(datacount);
                        long    pinshare          = Convert.ToInt32(shareData["shares"]["pinterest"].ToString());
                        long    linshare          = Convert.ToInt32(shareData["shares"]["linkedin"].ToString());
                        long    gplusshare        = Convert.ToInt32(shareData["shares"]["google"].ToString());
                        long    twittershare      = Convert.ToInt32(shareData["shares"]["twitter"].ToString());
                        _AdvanceSerachData.postUrl           = _AdvanceSerachData.videourl;
                        _AdvanceSerachData.pinShareCount     = pinshare;
                        _AdvanceSerachData.gplusShareCount   = gplusshare;
                        _AdvanceSerachData.linShareCount     = linshare;
                        _AdvanceSerachData.twtShareCount     = twittershare;
                        _AdvanceSerachData.redditShareCount  = redditShare;
                        _AdvanceSerachData.fbengagementCount = fbengagementCount;
                        _AdvanceSerachData.totalShareCount   = Convert.ToInt64(pinshare + gplusshare + linshare + twittershare + redditShare + fbengagementCount);
                    }
                    catch (Exception ex)
                    {
                        _AdvanceSerachData.videourl = "";
                    }
                    try
                    {
                        _AdvanceSerachData.postdescription = item["snippet"]["description"].ToString();
                    }
                    catch (Exception ex)
                    {
                        _AdvanceSerachData.postdescription = "";
                    }
                    try
                    {
                        _AdvanceSerachData.postedTime = SBHelper.ConvertToUnixTimestamp((DateTime.Parse(item["snippet"]["publishedAt"].ToString())));
                    }
                    catch (Exception ex)
                    {
                        _AdvanceSerachData.postedTime = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
                    }
                    int count = mongoreppo.Counts <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(t => t.postUrl == _AdvanceSerachData.postUrl);
                    if (count == 0)
                    {
                        mongoreppo.Add <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(_AdvanceSerachData);
                    }
                    else
                    {
                        var update = Builders <Domain.Socioboard.Models.Mongo.AdvanceSerachData> .Update.Set(t => t.linShareCount, _AdvanceSerachData.linShareCount).Set(t => t.pinShareCount, _AdvanceSerachData.pinShareCount)
                                     .Set(t => t.redditShareCount, _AdvanceSerachData.redditShareCount)
                                     .Set(t => t.twtShareCount, _AdvanceSerachData.twtShareCount)
                                     .Set(t => t.gplusShareCount, _AdvanceSerachData.gplusShareCount)
                                     .Set(t => t.fbengagementCount, _AdvanceSerachData.fbengagementCount)
                                     .Set(t => t.totalShareCount, _AdvanceSerachData.totalShareCount);

                        mongoreppo.Update <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(update, t => t.postUrl == _AdvanceSerachData.postUrl);
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }
コード例 #3
0
        public static void getingTweetFromURL(string URL)
        {
            try
            {
                Domain.Socioboard.Models.Mongo.AdvanceSerachData _AdvanceSerachData = new Domain.Socioboard.Models.Mongo.AdvanceSerachData();
                Like   obj_Like = new Like();
                string pagesource = string.Empty;
                string min_position = string.Empty;
                string max_position = string.Empty;
                string paginationURL = string.Empty;
                string HomePagedata = string.Empty, screenName = string.Empty;
                int    i          = 0;
                string domainType = "https://twitter.com/";
startAgain:
                if (i == 0)
                {
                    HomePagedata = getHtmlfromUrl(URL);
                    try
                    {
                        min_position = getBetween(HomePagedata, "data-min-position=\"", "\"");
                    }
                    catch { };
                    i++;
                }
                else
                {
                    string tempURL = URL + "-";
                    screenName    = getBetween(URL, "https://twitter.com/", "-");
                    paginationURL = "https://twitter.com/i/profiles/show/" + screenName + "/timeline?include_available_features=1&include_entities=1&last_note_ts=1435159522&max_position=" + min_position + " ";
                    HomePagedata  = getHtmlfromUrl(paginationURL);
                    try
                    {
                        min_position = getBetween(HomePagedata, "data-min-position=\"", "\"");
                        if (string.IsNullOrEmpty(min_position))
                        {
                            min_position = getBetween(HomePagedata, "min_position\":\"", "\"");
                        }
                    }
                    catch { };

                    string  datahkj = string.Empty;
                    JObject Abc     = JObject.Parse(HomePagedata);
                    foreach (object data in Abc)
                    {
                        datahkj = data.ToString();
                        if (datahkj.Contains("js-stream-item stream-item stream-item expanding-stream-item") || datahkj.Contains("ProfileTweet u-textBreak js-tweet js-stream-tweet js-actionable-tweet") || datahkj.Contains("tweet js-stream-tweet js-actionable-tweet js-profile-popup-actionable"))
                        {
                            break;
                        }
                    }
                    HomePagedata = datahkj;
                }
                if (!string.IsNullOrEmpty(HomePagedata))
                {
                    string   dataHomepage = HomePagedata;
                    string[] spilitMain   = Regex.Split(dataHomepage, "tweet js-stream-tweet js-actionable-tweet js-profile-popup-actionable dismissible-content");

                    foreach (string mainData in spilitMain)
                    {
                        if (mainData.Contains("<!DOCTYPE html>"))
                        {
                            continue;
                        }
                        if (mainData.Contains("min_position"))
                        {
                            continue;
                        }
                        string Tweetid = string.Empty, TweeterUserId = string.Empty, TweeterUserScreanName = string.Empty, text = string.Empty;
                        string profileImageurl = string.Empty;
                        string postUrl         = string.Empty;
                        string videoUrl        = string.Empty;
                        long   postedTime      = 0;
                        try
                        {
                            if (mainData.Contains("items_html"))
                            {
                                continue;
                            }
                            if (mainData.Contains("data-tweet-id="))
                            {
                                #region ReplayCount Retweet Count Like Count
                                // Replay Count / Retweet Count / Like count
                                string[] spilitGettingCount = Regex.Split(mainData, "data-aria-label-part>");
                                if (spilitGettingCount.Count() == 6)
                                {
                                    spilitGettingCount = spilitGettingCount.Skip(3).ToArray();
                                }

                                string repliesCount = string.Empty, likesCount = string.Empty, retweetCount = string.Empty;
                                foreach (string loopspilitGettingCount in spilitGettingCount)
                                {
                                    try
                                    {
                                        string getFirstNumber = loopspilitGettingCount.Substring(0, 1);
                                        if (!NumberHelper.ValidateNumber(getFirstNumber))
                                        {
                                            continue;
                                        }
                                        if ((loopspilitGettingCount.Contains("replies")) && (!loopspilitGettingCount.Contains("retweets")) && (!loopspilitGettingCount.Contains("likes")))
                                        {
                                            string temploopspilitGettingCount = "-" + loopspilitGettingCount;
                                            repliesCount = getBetween(temploopspilitGettingCount, "-", "replies").Trim();
                                            if (repliesCount.Contains(","))
                                            {
                                                repliesCount = repliesCount.Replace(",", "");
                                            }
                                            _AdvanceSerachData.repliesCount = Convert.ToInt32(repliesCount);
                                        }
                                        else if ((loopspilitGettingCount.Contains("retweets")) && (!loopspilitGettingCount.Contains("replies")) && (!loopspilitGettingCount.Contains("likes")))
                                        {
                                            string temploopspilitGettingCount = "-" + loopspilitGettingCount;
                                            retweetCount = getBetween(temploopspilitGettingCount, "-", "retweets").Trim();
                                            if (retweetCount.Contains(","))
                                            {
                                                retweetCount = retweetCount.Replace(",", "");
                                            }
                                            _AdvanceSerachData.retweetCount = Convert.ToInt32(retweetCount);
                                        }
                                        else if ((loopspilitGettingCount.Contains("likes")))
                                        {
                                            string temploopspilitGettingCount = "-" + loopspilitGettingCount;
                                            likesCount = getBetween(temploopspilitGettingCount, "-", "likes").Trim();
                                            if (likesCount.Contains(","))
                                            {
                                                likesCount = likesCount.Replace(",", "");
                                            }
                                            _AdvanceSerachData.likeCount = Convert.ToInt32(likesCount);
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                }
                                string getSpecifiedDate = string.Empty;
                                string skipORnot        = string.Empty;
                                if (obj_Like.IsFilterByIgnoreTweetsSpecifyDay)
                                {
                                    try
                                    {
                                        getSpecifiedDate = getBetween(mainData, "tweet-timestamp js-permalink js-nav js-tooltip", "data");
                                        getSpecifiedDate = getBetween(getSpecifiedDate, "title=\"", "\"").Trim();
                                        if (getSpecifiedDate.Contains("-"))
                                        {
                                            getSpecifiedDate = getSpecifiedDate.Replace("-", "");
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                }
                                if (!string.IsNullOrEmpty(getSpecifiedDate))
                                {
                                    try
                                    {
                                        DateTime dt_LastTweetDate = DateTime.Parse(getSpecifiedDate);

                                        DateTime dt_Now        = DateTime.Now;
                                        TimeSpan dt_Difference = dt_Now.Subtract(dt_LastTweetDate);

                                        if (dt_Difference.Days > Convert.ToInt32(obj_Like.NoSpecifyDay))
                                        {
                                            skipORnot = "continue";
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                }

                                int finalComments = 0;
                                try
                                {
                                    if (NumberHelper.ValidateNumber(repliesCount))
                                    {
                                        finalComments = Convert.ToInt32(repliesCount);
                                    }
                                }
                                catch (Exception ex)
                                {
                                }
                                int finalLikes = 0;
                                try
                                {
                                    if (NumberHelper.ValidateNumber(likesCount))
                                    {
                                        finalLikes = Convert.ToInt32(likesCount);
                                    }
                                }
                                catch (Exception ex)
                                {
                                }
                                int finalRetweets = 0;
                                try
                                {
                                    if (NumberHelper.ValidateNumber(retweetCount))
                                    {
                                        finalRetweets = Convert.ToInt32(retweetCount);
                                    }
                                }
                                catch (Exception ex)
                                {
                                }
                                if (obj_Like.IsFilterByComments)
                                {
                                    if (obj_Like.MinComments <= finalComments && obj_Like.MaxComments >= finalComments)
                                    {
                                    }
                                    else
                                    {
                                        skipORnot = "continue";
                                    }
                                }
                                if (obj_Like.IsFilterByLikes)
                                {
                                    if (obj_Like.MinLike <= finalLikes && obj_Like.MaxLike >= finalLikes)
                                    {
                                    }
                                    else
                                    {
                                        skipORnot = "continue";
                                    }
                                }
                                if (obj_Like.IsFilterByRetweets)
                                {
                                    if (obj_Like.MinRetweets <= finalRetweets && obj_Like.MaxRetweets >= finalRetweets)
                                    {
                                    }
                                    else
                                    {
                                        skipORnot = "continue";
                                    }
                                }
                                if (skipORnot == "continue")
                                {
                                    continue;
                                }
                                #endregion
                                //videoUrl
                                string postType = string.Empty;
                                try
                                {
                                    string videorrl = getBetween(mainData, "data-card-url=\"", "\"");
                                    videoUrl = videorrl;
                                    _AdvanceSerachData.videourl = videoUrl;
                                    if (!string.IsNullOrEmpty(videoUrl))
                                    {
                                        _AdvanceSerachData.postType = Domain.Socioboard.Enum.AdvanceSearchpostType.video;
                                    }
                                    else
                                    {
                                        _AdvanceSerachData.postType = Domain.Socioboard.Enum.AdvanceSearchpostType.content;
                                    }
                                }
                                catch (Exception)
                                {
                                }
                                try
                                {
                                    string time = getBetween(mainData, "data-time=\"", "\"");
                                    postedTime = Convert.ToInt32(time);
                                    _AdvanceSerachData.postedTime = postedTime;
                                }
                                catch (Exception)
                                {
                                }


                                //profileImageUrl
                                try
                                {
                                    string prfurl = getBetween(mainData, "avatar js-action-profile-avatar", "alt=");
                                    profileImageurl             = getBetween(prfurl, "src=\"", "\"");
                                    _AdvanceSerachData.ImageUrl = profileImageurl;
                                }
                                catch (Exception)
                                {
                                }
                                //postUrl
                                try
                                {
                                    string posturl = getBetween(mainData, "data-permalink-path=\"", "data-conversation-id").Replace("\"", "");
                                    postUrl = "https://twitter.com" + posturl;
                                    long fbengagementCount = fbShareCount(postUrl);
                                    long redditShare       = redditShareCount(postUrl);


                                    //https://api.donreach.com/shares?providers=facebook,google,twitter&url=
                                    //https://free.donreach.com/shares?providers=facebook,twitter,google,pinterest,linkedin,reddit&url=
                                    //string datacount = getdonreachdatafromUrl("https://api.donreach.com/shares?providers=facebook,google,twitter&url=" + postUrl);
                                    // JObject shareData = JObject.Parse(datacount);
                                    // long pinshare = Convert.ToInt32(shareData["shares"]["pinterest"].ToString());
                                    // long linshare = Convert.ToInt32(shareData["shares"]["linkedin"].ToString());
                                    //long gplusshare = Convert.ToInt32(shareData["shares"]["google"].ToString());
                                    // long twittershare = Convert.ToInt32(shareData["shares"]["twitter"].ToString());

                                    long pinshare     = pinShareCount(postUrl);
                                    long linshare     = linShareCount(postUrl);
                                    long twittershare = 0;
                                    long gplusshare   = GetPlusOnes(postUrl);


                                    _AdvanceSerachData.postUrl           = postUrl;
                                    _AdvanceSerachData.pinShareCount     = pinshare;
                                    _AdvanceSerachData.gplusShareCount   = gplusshare;
                                    _AdvanceSerachData.linShareCount     = linshare;
                                    _AdvanceSerachData.twtShareCount     = twittershare;
                                    _AdvanceSerachData.redditShareCount  = redditShare;
                                    _AdvanceSerachData.fbengagementCount = fbengagementCount;
                                    _AdvanceSerachData.totalShareCount   = Convert.ToInt64(pinshare + gplusshare + linshare + twittershare + redditShare + fbengagementCount);
                                    _AdvanceSerachData.networkType       = Domain.Socioboard.Enum.NetworkType.twitter;
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.Message);
                                }

                                ///Tweet ID
                                try
                                {
                                    int    startindex = mainData.IndexOf("data-item-id=\\\"");
                                    string start      = mainData.Substring(startindex).Replace("data-item-id=\\\"", "");
                                    int    endindex   = start.IndexOf("\\\"");
                                    string end        = start.Substring(0, endindex);
                                    Tweetid = end;
                                    _AdvanceSerachData.postId = Tweetid;
                                }
                                catch (Exception ex)
                                {
                                    int    startindex = mainData.IndexOf("data-item-id=\"");
                                    string start      = mainData.Substring(startindex).Replace("data-item-id=\"", "");
                                    int    endindex   = start.IndexOf("\"");
                                    string end        = start.Substring(0, endindex);
                                    Tweetid = end;
                                    _AdvanceSerachData.postId = Tweetid;
                                }

                                ///Tweet User Screen name
                                try
                                {
                                    int    startindex = mainData.IndexOf("data-screen-name=\\\"");
                                    string start      = mainData.Substring(startindex).Replace("data-screen-name=\\\"", "");
                                    int    endindex   = start.IndexOf("\\\"");
                                    string end        = start.Substring(0, endindex);
                                    TweeterUserScreanName       = end;
                                    _AdvanceSerachData.userName = TweeterUserScreanName;
                                    string  contactUrl       = "https://api.fullcontact.com/v2/person.json?twitter=" + _AdvanceSerachData.userName + "&apiKey=" + AppSetting.fullcontactserachapikey;
                                    string  contactSerachDat = getHtmlfromUrl(contactUrl);
                                    JObject contactData      = JObject.Parse(contactSerachDat);
                                    foreach (var item in contactData["socialProfiles"])
                                    {
                                        if (item["type"].ToString() == "linkedin")
                                        {
                                            try
                                            {
                                                _AdvanceSerachData.linkedindescription = item["bio"].ToString();
                                            }
                                            catch (Exception)
                                            {
                                            }
                                            try
                                            {
                                                _AdvanceSerachData.linkedinprofileurl = item["url"].ToString();
                                            }
                                            catch (Exception)
                                            {
                                            }
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    int    startindex = mainData.IndexOf("data-screen-name=\"");
                                    string start      = mainData.Substring(startindex).Replace("data-screen-name=\"", "");
                                    int    endindex   = start.IndexOf("\"");
                                    string end        = start.Substring(0, endindex);
                                    TweeterUserScreanName       = end;
                                    _AdvanceSerachData.userName = TweeterUserScreanName;
                                    string contactUrl       = "https://api.fullcontact.com/v2/person.json?twitter=" + _AdvanceSerachData.userName + "&apiKey=" + AppSetting.fullcontactserachapikey;
                                    string contactSerachDat = getHtmlfromUrl(contactUrl);

                                    if (!string.IsNullOrEmpty(contactSerachDat) && contactSerachDat.Contains("socialProfiles"))
                                    {
                                        JObject contactData = JObject.Parse(contactSerachDat);
                                        foreach (var item in contactData["socialProfiles"])
                                        {
                                            if (item["type"].ToString() == "linkedin")
                                            {
                                                try
                                                {
                                                    _AdvanceSerachData.linkedindescription = item["bio"].ToString();
                                                }
                                                catch (Exception)
                                                {
                                                }
                                                try
                                                {
                                                    _AdvanceSerachData.linkedinprofileurl = item["url"].ToString();
                                                }
                                                catch (Exception)
                                                {
                                                }
                                            }
                                        }
                                    }
                                }

                                ///Tweet User User-id
                                try
                                {
                                    int    startindex = mainData.IndexOf("data-user-id=\\\"");
                                    string start      = mainData.Substring(startindex).Replace("data-user-id=\\\"", "");
                                    int    endindex   = start.IndexOf("\\\"");
                                    string end        = start.Substring(0, endindex);
                                    TweeterUserId = end;
                                }
                                catch (Exception ex)
                                {
                                    int    startindex = mainData.IndexOf("data-user-id=\"");
                                    string start      = mainData.Substring(startindex).Replace("data-user-id=\"", "");
                                    int    endindex   = start.IndexOf("\"");
                                    string end        = start.Substring(0, endindex);
                                    TweeterUserId = end;
                                }

                                //// Tweet Text

                                string tempmaintextData  = getBetween(mainData, "js-tweet-text-container", "</p>");
                                string return_Cut_String = string.Empty;
                                int    flag         = 1;
                                string maintextData = getBetween(tempmaintextData, "data-aria-label-part=\"0\"", "a href");
                                if (string.IsNullOrEmpty(maintextData))
                                {
                                    tempmaintextData = tempmaintextData + "-";
                                    maintextData     = getBetween(tempmaintextData, "data-aria-label-part=\"0\"", "-");
                                }
                                return_Cut_String = "<" + maintextData + ">";
                                if ((!maintextData.Contains("<")) || (!maintextData.Contains(">")))
                                {
                                    return_Cut_String = maintextData + "< >";
                                }

                                while (flag > 0)
                                {
                                    try
                                    {
                                        string start_String = "<";
                                        string end_string   = ">";
                                        if (return_Cut_String.Contains(start_String) && return_Cut_String.Contains(end_string))
                                        {
                                            try
                                            {
                                                int    start_Length          = return_Cut_String.IndexOf(start_String, 0);// + start.Length;
                                                int    end_Length            = return_Cut_String.IndexOf(end_string, start_Length) + 1;
                                                string TEMPreturn_Cut_String = return_Cut_String.Substring(start_Length, end_Length - start_Length);
                                                return_Cut_String = return_Cut_String.Replace(TEMPreturn_Cut_String, "");
                                            }
                                            catch (Exception ex)
                                            {
                                            }
                                        }
                                        if (!return_Cut_String.Contains(start_String) || !return_Cut_String.Contains(end_string))
                                        {
                                            if (return_Cut_String.Contains("\n"))
                                            {
                                                return_Cut_String = return_Cut_String.Replace("\n", "");
                                            }

                                            text = return_Cut_String;
                                            if (text.Contains("&#39;"))
                                            {
                                                text = text.Replace("&#39;", "");
                                            }
                                            break;
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                    }
                                }
                                if (text.Length > 140)
                                {
                                    text = text.Substring(0, 140);
                                }
                                _AdvanceSerachData.postdescription = text;
                                _AdvanceSerachData.Id         = ObjectId.GenerateNewId();
                                _AdvanceSerachData.strId      = ObjectId.GenerateNewId().ToString();
                                _AdvanceSerachData.domainType = domainType;
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                        MongoRepository mongoreppo = new MongoRepository("AdvanceSerachData");
                        int             count      = mongoreppo.Counts <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(t => t.postUrl == _AdvanceSerachData.postUrl);
                        if (count == 0)
                        {
                            mongoreppo.Add <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(_AdvanceSerachData);
                        }
                        else
                        {
                            var update = Builders <Domain.Socioboard.Models.Mongo.AdvanceSerachData> .Update.Set(t => t.likeCount, _AdvanceSerachData.likeCount).Set(t => t.linShareCount, _AdvanceSerachData.linShareCount).Set(t => t.pinShareCount, _AdvanceSerachData.pinShareCount)
                                         .Set(t => t.redditShareCount, _AdvanceSerachData.redditShareCount)
                                         .Set(t => t.repliesCount, _AdvanceSerachData.repliesCount)
                                         .Set(t => t.retweetCount, _AdvanceSerachData.retweetCount)
                                         .Set(t => t.twtShareCount, _AdvanceSerachData.twtShareCount)
                                         .Set(t => t.gplusShareCount, _AdvanceSerachData.gplusShareCount)
                                         .Set(t => t.fbengagementCount, _AdvanceSerachData.fbengagementCount)
                                         .Set(t => t.totalShareCount, _AdvanceSerachData.totalShareCount);

                            mongoreppo.Update <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(update, t => t.postUrl == _AdvanceSerachData.postUrl);
                        }
                    }
                }
                goto startAgain;
            }
            catch (Exception ex)
            {
            }
        }
コード例 #4
0
        private static void fetchsourcedata(JToken item)
        {
            try
            {
                string sourceid    = item["id"].ToString();
                string domainUrl   = item["url"].ToString();
                string category    = item["category"].ToString();
                string newsdataurl = "https://newsapi.org/v1/articles?source=" + sourceid + "&sortBy=latest&apiKey=" + AppSetting.newsapikey;
                string newdatas    = getHtmlfromUrl(newsdataurl);
                if (string.IsNullOrEmpty(newdatas))
                {
                    newsdataurl = "https://newsapi.org/v1/articles?source=" + sourceid + "&sortBy=top&apiKey=" + AppSetting.newsapikey;
                    newdatas    = getHtmlfromUrl(newsdataurl);
                }
                JObject newsdata = JObject.Parse(newdatas);
                foreach (var item_newsdata in newsdata["articles"])
                {
                    try
                    {
                        MongoRepository mongoreppo = new MongoRepository("AdvanceSerachData");
                        Domain.Socioboard.Models.Mongo.AdvanceSerachData _AdvanceSerachData = new Domain.Socioboard.Models.Mongo.AdvanceSerachData();
                        _AdvanceSerachData.Id         = ObjectId.GenerateNewId();
                        _AdvanceSerachData.strId      = ObjectId.GenerateNewId().ToString();
                        _AdvanceSerachData.domainType = domainUrl;
                        _AdvanceSerachData.postType   = Domain.Socioboard.Enum.AdvanceSearchpostType.trending;
                        if (category == "general")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.general;
                        }
                        if (category == "technology")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.technology;
                        }
                        if (category == "sport")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.sport;
                        }
                        if (category == "business")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.business;
                        }
                        if (category == "politics")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.politics;
                        }
                        if (category == "entertainment")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.entertainment;
                        }
                        if (category == "gaming")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.gaming;
                        }
                        if (category == "music")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.music;
                        }
                        if (category == "science-and-nature")
                        {
                            _AdvanceSerachData.networkType = Domain.Socioboard.Enum.NetworkType.science_and_nature;
                        }
                        try
                        {
                            _AdvanceSerachData.postUrl  = item_newsdata["url"].ToString();
                            _AdvanceSerachData.ImageUrl = item_newsdata["urlToImage"].ToString();
                            long fbengagementCount = TwitterAdvanceSearch.fbShareCount(_AdvanceSerachData.postUrl);
                            long redditShare       = TwitterAdvanceSearch.redditShareCount(_AdvanceSerachData.postUrl);

                            // string datacount = TwitterAdvanceSearch.getdonreachdatafromUrl("https://free.donreach.com/shares?providers=facebook,twitter,google,pinterest,linkedin,reddit&url=" + _AdvanceSerachData.postUrl);
                            // JObject shareData = JObject.Parse(datacount);
                            //long pinshare = Convert.ToInt32(shareData["shares"]["pinterest"].ToString());
                            //long linshare = Convert.ToInt32(shareData["shares"]["linkedin"].ToString());
                            //long gplusshare = Convert.ToInt32(shareData["shares"]["google"].ToString());
                            //long twittershare = Convert.ToInt32(shareData["shares"]["twitter"].ToString());

                            long pinshare     = TwitterAdvanceSearch.pinShareCount(_AdvanceSerachData.postUrl);
                            long linshare     = TwitterAdvanceSearch.linShareCount(_AdvanceSerachData.postUrl);
                            long twittershare = 0;
                            long gplusshare   = TwitterAdvanceSearch.GetPlusOnes(_AdvanceSerachData.postUrl);


                            _AdvanceSerachData.pinShareCount     = pinshare;
                            _AdvanceSerachData.gplusShareCount   = gplusshare;
                            _AdvanceSerachData.linShareCount     = linshare;
                            _AdvanceSerachData.twtShareCount     = twittershare;
                            _AdvanceSerachData.redditShareCount  = redditShare;
                            _AdvanceSerachData.fbengagementCount = fbengagementCount;
                            _AdvanceSerachData.totalShareCount   = Convert.ToInt64(pinshare + gplusshare + linshare + twittershare + redditShare + fbengagementCount);
                        }
                        catch { }
                        try
                        {
                            _AdvanceSerachData.title = item_newsdata["title"].ToString();
                        }
                        catch { }
                        try
                        {
                            _AdvanceSerachData.postdescription = item_newsdata["description"].ToString();
                        }
                        catch { }
                        try
                        {
                            _AdvanceSerachData.userName = item_newsdata["author"].ToString();
                        }
                        catch { }
                        try
                        {
                            _AdvanceSerachData.postedTime = Domain.Socioboard.Helpers.SBHelper.ConvertToUnixTimestamp(new DateTime(1970, 1, 1).AddSeconds(Convert.ToInt64(item_newsdata["publishedAt"].ToString())));

                            _AdvanceSerachData.publishDate = item_newsdata["publishedAt"].ToString();
                        }
                        catch
                        {
                            _AdvanceSerachData.postedTime  = SBHelper.ConvertToUnixTimestamp(DateTime.UtcNow);
                            _AdvanceSerachData.publishDate = DateTime.Now.ToString(CultureInfo.InvariantCulture);
                        }
                        int count = mongoreppo.Counts <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(t => t.postUrl == _AdvanceSerachData.postUrl);
                        if (count == 0)
                        {
                            mongoreppo.Add <Domain.Socioboard.Models.Mongo.AdvanceSerachData>(_AdvanceSerachData);
                        }
                        else
                        {
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }