コード例 #1
0
        public static bool Get_Tagged_RepinCount(ref int RepinCount, ref CMS_BoardModels board, string pinId = "")
        {
            string data    = string.Empty;
            var    urlOrg  = Commons.HostApiPinDetail;
            var    objJson = new
            {
                options = new
                {
                    field_set_key   = "detailed",
                    id              = pinId,
                    is_landing_page = false,
                },
                context = new
                {
                },
            };
            string input = JsonConvert.SerializeObject(objJson);

            urlOrg = Commons.HostApiPinDetail + "/pin/" + pinId + "/";
            string[] pattern      = new string[] { "\n", "\r", "\t" };
            string[] replacements = new string[] { "", "", "" };
            data = Preg_replace(input, pattern, replacements);
            var timestamp = GetTimestamp(DateTime.Now);
            var url       = urlOrg + "&data=" + data + "&_=" + timestamp;

            RepinCount = getRePinCount(url, pinId, ref board);
            return(false);
        }
コード例 #2
0
        // GET: Admin/CMSBoard
        public ActionResult Index()
        {
            CMS_BoardModels       model  = new CMS_BoardModels();
            List <SelectListItem> lstAcc = new List <SelectListItem>();
            var lstAccount = _facAcc.GetList();

            if (lstAccount != null && lstAccount.Any())
            {
                lstAccount.ForEach(o =>
                {
                    lstAcc.Add(new SelectListItem
                    {
                        Value = o.Id,
                        Text  = o.Account
                    });
                });
            }
            ViewBag.ListAccount = lstAcc;
            //try
            //{
            //    List<CMS_BoardModels> models = new List<CMS_BoardModels>();
            //    CrawlerBoardHelper._Cookies = "G_ENABLED_IDPS=google; _b=\"ATW1MZ0GSMJI46hOmoQ3MpWpXe6+rP8fkEoLnaSC6XQ7dd54Cm+VLWXBJOy2qLRza8E=\"; _auth=1; csrftoken=g9vz7YbodrSvIMzOaDUOcDLGNhdKJP1v; _pinterest_sess=\"TWc9PSZsVVROcGxoeVNLOE1TK2h6UVlDcU1JS0JqMkxIb2M3Vi9OMzYvMEZydnEzOGdKYzh3M0tsN3hKRndUeVBzK1RmQXhsUmNVTkRpN0h4S21HTHRpeWRHd2ZSVGlHMWhoenBVZTFDYWdZdFBKK3lNOFlrSkt3MmVmOE1qUGJ6cmFtbitqQzZTSDJKenRhM0JpTmhGU1pRaFZ6NXc0MlVkcTlZdDJIYnlsenNvMlYrMmlkam5VVEVPTnhEQmxHcUxWNTFUTWc4amxQVnpBOEtWM29TVTV1K0JWK3pjNFpseXVTNGhTNTN4NUQ4QTRvdUYwdWo4ZzJDdFpjRE1PazdTVFJwcVM2UnVGVzl5U2lXZldic2xlUVdMdFBqK3hTTXJqazl2R21ibjYyMFhUYkYxR2xRMjk4ZG9ZKzI4ck85TGVaUUNVMzVDZUk3R285eHk0bnEyVmEwSkNLMmp2ZjlGSWtGbzJ6QXV6Y0NnU0FHZm9vQ292RklwRE5tSGZtSkRPTHEreU81VnkvbkZoUXA5SXRkRmNLNXkxUktPNXhFVDlBNHpJSkZ3T1dmSUdqaElJbmFOS2pIcVpFam44WjlicEU2T3NqbnRGUkx3UkVsRzA5RDI3SGI4NFVrK3c4S2FjaU9UbCtvOHJDVU9JU2JjNndOK2lLWkVlQ1lpcHhDOXdIY2FSY1Z4NXNtR1dqV1g0aTA0WURzSEtOOWdHcFpld2t2ZGxscTh6RDY2SHpYVFFiM2JFU0FYNzZndkJ0OTliY2MyRHhTWGVsWDFHQkd6NXlZbnVzQkkyOHJxNEdyQWhoVDRJaXAzQTBhNGJMbUJ1RXRwUTNIZDlKZi9UcFBrQm5ZRlpsRlJFY3NuUnJFYUdEZEQvYUlOVXUyNGUvaURiQXQ1ZDZKZU9DMXJtV3NWakdyazdLSnZrMndiWE1uSmM5UncrN0hvTWwwN1g4azFUVUM2R21LUFN5Z1IvSVhxSmVPYm81QWo5R1VVRDdycUJxWnpsZWFvcVpCOHVpK3JnVmYwTHlNU0hRNEJwak1EYkVTMS8yRnd3VlBYNXlDNmI5Y2s2clFxa3hLcFJmODFjT0s3RXk0dEJuWTl4ZTdWU1BBJkF4Tm5NSWQ0UUo3RW9nSzJkUWVDaXJ1a1JOTT0=\"; _ga=GA1.2.729252838.1528255220; cm_sub=none; sessionFunnelEventLogged=1; bei=false";
            //    CrawlerBoardHelper.Get_Tagged_Board(ref models, "Footballs", 2, null);
            //}
            //catch(Exception ex)
            //{
            //    NSLog.Logger.Error("CMSBoard_Index", ex);
            //}
            return(View(model));
        }
コード例 #3
0
        public static int getRePinCount(string url, string pinId, ref CMS_BoardModels board)
        {
            var _Repin_Count = 0;

            try
            {
                Uri uri            = new Uri(url);
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
                httpWebRequest.Headers["X-Requested-With"] = "XMLHttpRequest";
                //httpWebRequest.Headers["Cookie"] = "_auth=1; csrftoken=dMWi2a6L1DTFUHmyqem0oGrDmteiaETw; _pinterest_sess=\"TWc9PSZsSlA1dUF4QWlRWGRYVGR6Qm9mN3pwczUyUDk4ZDYvckduSjl4N3ZSRHlsU1VmWkhBTUsrMU9KNkxjS3pyUk1zREdDL2Rmb2VuT1dwRDhSTmxTOE1Ja0FjOUtreTJVc0o0SmthQ2xhN3lRa3BQVnRMcUF5dlN0Z255Syt4am56VnQvYVQwT0JyejBCSlk4YzFyQ0pEekZwNSs0YjZnMTBseEIvRkU0Um1XeWthZ1cvNGxpdDVyTEdrSHRzWFVLN244T25TaGVoYy93TGVSRjVxNzl5dnlZV1A5L3NlNnc5MWE4djl0ZjNoeEhqTTNuaGduRnZ2VkF1RTd6V1V3VnBCT3cyMksxMHJIdVE0TVVjc3FmWVozVllzekhpNFRGNDFBTERIVzdkcUNUS3NlWEJFdE1mSXJBbnNPVStHQXJiUWJRSENyVVVKTVJYNit5MkZTMFVNN3ptY09FNmFoaHk3Nk9MdUtuRmdDSWRWRVhPTWYrSXA4dFhlRU1hYW5paFNQMU5OcFNwY2xSZlJHZVlWWU03eHFsNWVmSWRHL0ZtN3NhdU9ubzhpUjZqMzNTTUxwMTlOQWRGa29zVUc1UXFqZ1BUYzhHL3M0YndDY2ZBN2ZMZnJQZTlGbXdPWjg5SXJVOEpUMEtPVnMzcjZPcytOVHRFUnlRUnoyNmJZdjl0YXJlOVp1WGQvM29SSi9xWUwvYmFPcDl5VFl1aEw2ZFBtMHlhZ0g4MXlIMXp1dnFXWWY1VytmY0ZPc0FSMzhqYXdhNTBqQjlYRHJ6OE9CY1ViMmljZkFhQkVydGxyVUtlNis4cnh3R3NPbXVTVjZCZUNTR1NKQ3JpWFJsajBsSEFGcytOMnptN2R2S1BXN1NocTFtZVlKMzF0Y1hyQXNseG9DdzdrQklxNnZXMkk2dXQ4azJJOTR4YWlIUDMvVzAwcmQ0SDVqNnhYc3NlTTNpK0ZHUU9xaUpCOER0N1pQaWFFTUhLRGxpdk1EVDlOYi9DdmRLcTQvdUROekpjRXNJSjVtcEl1bWVLUHhRdTVQQk91L1RWS0w0YkkzZDNwaW5mRnJFakRsck9aNTRBUXVsVFdFWVlTRHJ5OUxBWHdMa0V4Jk1FSHZIUWlQUlE2Q05OZWJydEZrV25SQ2tmND0 = \"; G_ENABLED_IDPS=google; _b=\"ATWTNNfXaINNj5j6VvA6 + rquchpAz7VF + IS8VabE7fJo7ragqOV82ASwCOgxcnxHC5k = \"; pnodepath=\" / 4\"; _ga=GA1.2.1908176321.1528170001; fba=True; cm_sub=none; sessionFunnelEventLogged=1; bei=false";
                httpWebRequest.Headers["Cookie"] = _Cookies;

                httpWebRequest.Timeout = 100000;
                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var answer = streamReader.ReadToEnd();
                    JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
                    dynamic dobj = jsonSerializer.Deserialize <dynamic>(answer);
                    if (dobj != null)
                    {
                        var resource_data_cache = dobj["resource_data_cache"];
                        if (resource_data_cache != null)
                        {
                            var data = resource_data_cache[0]["data"];
                            if (data != null)
                            {
                                var results = (dynamic)null;
                                results = data;
                                if (results != null)
                                {
                                    var itemPin = results as Dictionary <string, dynamic>;
                                    if (itemPin.ContainsKey("repin_count"))
                                    {
                                        _Repin_Count = Convert.ToInt16(itemPin["repin_count"]);
                                    }

                                    if (itemPin.ContainsKey("board"))
                                    {
                                        var             strJson   = itemPin["board"];
                                        var             json      = new JavaScriptSerializer().Serialize(strJson);
                                        CMS_BoardModels objBoards = JsonConvert.DeserializeObject <CMS_BoardModels>(json);
                                        if (objBoards != null)
                                        {
                                            board = objBoards;
                                        }
                                    }
                                }
                            }
                        }
                    }

                    streamReader.Close();
                    streamReader.Dispose();
                }
            }
            catch (Exception ex) { }
            return(_Repin_Count);
        }
コード例 #4
0
 private void GetBoardInfo(CMS_BoardModels model)
 {
     try
     {
         var id    = "";
         var bName = "";
         CrawlerBoardHelper.getBoardIdFromUrl(model.url, ref id, ref bName);
         model.name = bName;
         model.id   = id;
     }
     catch (Exception ex) { }
 }
コード例 #5
0
 public ActionResult LoadGrid(CMS_BoardModels item)
 {
     try
     {
         var  msg     = "";
         bool isCheck = true;
         if (item.url != null && item.url.Length > 0)
         {
             var temp = ListItem.Where(o => o.Trim() == item.url.Trim()).FirstOrDefault();
             if (temp == null)
             {
                 var result = _factory.CreateOrUpdate(item, ref msg);
                 if (!result)
                 {
                     //isCheck = false;
                     ViewBag.ErrorMessage = msg;
                 }
             }
             else
             {
                 ViewBag.DuplicateKeyword = "Duplicate Board!";
             }
         }
         if (isCheck)
         {
             var model = _factory.GetList();
             return(PartialView("_ListData", model));
         }
         else
         {
             return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
         }
     }
     catch (Exception e)
     {
         //_logger.Error("Keyword_Search: " + e);
         return(new HttpStatusCodeResult(400, e.Message));
     }
 }
コード例 #6
0
        public static CMS_CrawlerModels getDataPinterest(string url, ref CMS_CrawlerModels model, string pinId, ref string bookmarks)
        {
            dynamic dataLog = null;

            try
            {
                Uri uri            = new Uri(url);
                var httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
                httpWebRequest.Headers["X-Requested-With"] = "XMLHttpRequest";

                /* cookies demo*/
                //httpWebRequest.Headers["Cookie"] = "_auth=1; csrftoken=dMWi2a6L1DTFUHmyqem0oGrDmteiaETw; _pinterest_sess=\"TWc9PSZsSlA1dUF4QWlRWGRYVGR6Qm9mN3pwczUyUDk4ZDYvckduSjl4N3ZSRHlsU1VmWkhBTUsrMU9KNkxjS3pyUk1zREdDL2Rmb2VuT1dwRDhSTmxTOE1Ja0FjOUtreTJVc0o0SmthQ2xhN3lRa3BQVnRMcUF5dlN0Z255Syt4am56VnQvYVQwT0JyejBCSlk4YzFyQ0pEekZwNSs0YjZnMTBseEIvRkU0Um1XeWthZ1cvNGxpdDVyTEdrSHRzWFVLN244T25TaGVoYy93TGVSRjVxNzl5dnlZV1A5L3NlNnc5MWE4djl0ZjNoeEhqTTNuaGduRnZ2VkF1RTd6V1V3VnBCT3cyMksxMHJIdVE0TVVjc3FmWVozVllzekhpNFRGNDFBTERIVzdkcUNUS3NlWEJFdE1mSXJBbnNPVStHQXJiUWJRSENyVVVKTVJYNit5MkZTMFVNN3ptY09FNmFoaHk3Nk9MdUtuRmdDSWRWRVhPTWYrSXA4dFhlRU1hYW5paFNQMU5OcFNwY2xSZlJHZVlWWU03eHFsNWVmSWRHL0ZtN3NhdU9ubzhpUjZqMzNTTUxwMTlOQWRGa29zVUc1UXFqZ1BUYzhHL3M0YndDY2ZBN2ZMZnJQZTlGbXdPWjg5SXJVOEpUMEtPVnMzcjZPcytOVHRFUnlRUnoyNmJZdjl0YXJlOVp1WGQvM29SSi9xWUwvYmFPcDl5VFl1aEw2ZFBtMHlhZ0g4MXlIMXp1dnFXWWY1VytmY0ZPc0FSMzhqYXdhNTBqQjlYRHJ6OE9CY1ViMmljZkFhQkVydGxyVUtlNis4cnh3R3NPbXVTVjZCZUNTR1NKQ3JpWFJsajBsSEFGcytOMnptN2R2S1BXN1NocTFtZVlKMzF0Y1hyQXNseG9DdzdrQklxNnZXMkk2dXQ4azJJOTR4YWlIUDMvVzAwcmQ0SDVqNnhYc3NlTTNpK0ZHUU9xaUpCOER0N1pQaWFFTUhLRGxpdk1EVDlOYi9DdmRLcTQvdUROekpjRXNJSjVtcEl1bWVLUHhRdTVQQk91L1RWS0w0YkkzZDNwaW5mRnJFakRsck9aNTRBUXVsVFdFWVlTRHJ5OUxBWHdMa0V4Jk1FSHZIUWlQUlE2Q05OZWJydEZrV25SQ2tmND0 = \"; G_ENABLED_IDPS=google; _b=\"ATWTNNfXaINNj5j6VvA6 + rquchpAz7VF + IS8VabE7fJo7ragqOV82ASwCOgxcnxHC5k = \"; pnodepath=\" / 4\"; _ga=GA1.2.1908176321.1528170001; fba=True; cm_sub=none; sessionFunnelEventLogged=1; bei=false";

                httpWebRequest.Headers["Cookie"] = _Cookies;
                httpWebRequest.Timeout           = 100000;
                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                {
                    var answer = streamReader.ReadToEnd();
                    JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
                    dynamic dobj = jsonSerializer.Deserialize <dynamic>(answer);
                    dataLog = dobj;
                    if (dobj != null)
                    {
                        var resource_data_cache = dobj["resource_data_cache"];
                        if (resource_data_cache != null)
                        {
                            var data = resource_data_cache[0]["data"];
                            if (data != null)
                            {
                                var results = (dynamic)null;
                                if (string.IsNullOrEmpty(pinId))
                                {
                                    results = data["results"];
                                }
                                else
                                {
                                    results = data;
                                }

                                if (results != null)
                                {
                                    foreach (var item in results)
                                    {
                                        var  pin     = new PinsModels();
                                        var  itemPin = item as Dictionary <string, dynamic>;
                                        bool flag    = true;
                                        pin.CreatedDate = DateTime.Now;
                                        if (itemPin.ContainsKey("domain"))
                                        {
                                            pin.Domain = itemPin["domain"];
                                        }
                                        else
                                        {
                                            flag = false;
                                        }
                                        if (itemPin.ContainsKey("id"))
                                        {
                                            pin.ID = itemPin["id"];

                                            /* check exist pin */
                                            var checkExist = model.Pins.Where(o => o.ID == pin.ID).Any();
                                            if (checkExist == false) /* new pin */
                                            {
                                                // get Repin_Count
                                                var             _Repin_Count = 0;
                                                CMS_BoardModels board        = new CMS_BoardModels();
                                                Get_Tagged_RepinCount(ref _Repin_Count, ref board, pin.ID);
                                                pin.Repin_count = _Repin_Count;
                                                pin.Board       = board;
                                            }
                                            else /* this pin have exist in model */
                                            {
                                                flag = false;
                                            }
                                        }
                                        else
                                        {
                                            flag = false;
                                        }
                                        if (itemPin.ContainsKey("link"))
                                        {
                                            pin.Link = itemPin["link"];
                                        }
                                        else
                                        {
                                            flag = false;
                                        }
                                        if (itemPin.ContainsKey("created_at"))
                                        {
                                            pin.Created_At = DateTime.Parse(itemPin["created_at"], new CultureInfo("en-US", true));
                                        }
                                        else
                                        {
                                            flag = false;
                                        }
                                        if (itemPin.ContainsKey("images"))
                                        {
                                            var Images = itemPin["images"] as Dictionary <string, dynamic>;
                                            if (Images != null)
                                            {
                                                foreach (var itemImg in Images)
                                                {
                                                    var Image       = itemImg.Value;
                                                    var _ImageModel = new ImageModels()
                                                    {
                                                        url    = Image["url"],
                                                        height = Convert.ToInt16(Image["height"]),
                                                        width  = Convert.ToInt16(Image["width"])
                                                    };
                                                    pin.Images.Add(_ImageModel);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            flag = false;
                                        }
                                        if (flag)
                                        {
                                            model.Pins.Add(pin);
                                        }
                                    }
                                }
                            }

                            var dataBookmark = resource_data_cache[0]["response"];
                            if (dataBookmark != null)
                            {
                                if (dataBookmark.ContainsKey("bookmark"))
                                {
                                    bookmarks = dataBookmark["bookmark"];
                                }
                            }
                        }
                    }

                    streamReader.Close();
                    streamReader.Dispose();
                }
            }
            catch (Exception ex)
            {
                NSLog.Logger.Info("ErrorGetDataPinterest: " + pinId, dataLog);
                NSLog.Logger.Info("ErrorGetDataPinterest: " + pinId, ex);
            }
            return(model);
        }
コード例 #7
0
        public bool CreateOrUpdate(CMS_BoardModels model, ref string msg)
        {
            var result = true;

            using (var _db = new CMS_Context())
            {
                using (var trans = _db.Database.BeginTransaction())
                {
                    m_Semaphore.WaitOne();
                    try
                    {
                        if (string.IsNullOrEmpty(model.id)) /* get board ID */
                        {
                            model.url = GetUrl(model.url);
                            GetBoardInfo(model);
                        }

                        if (!string.IsNullOrEmpty(model.id))
                        {
                            /* check dup old key */
                            var checkDup = _db.CMS_Board.Where(o => o.ID == model.id).FirstOrDefault();

                            if (checkDup == null)
                            {
                                /* get current seq */
                                var curSeq = _db.CMS_Board.OrderByDescending(o => o.Sequence).Select(o => o.Sequence).FirstOrDefault() ?? 0;


                                /* add new record */
                                var dateTimeNow = DateTime.Now;
                                var newKey      = new CMS_Board()
                                {
                                    ID          = model.id,
                                    BoardName   = model.name,
                                    Url         = model.url,
                                    OwnerName   = model.owner != null ? model.owner.username : "",
                                    Pin_count   = model.pin_count,
                                    Description = model.description,
                                    Sequence    = ++curSeq,


                                    Status = (byte)Commons.EStatus.Active,
                                    //CreatedBy = model.CreatedBy,
                                    CreatedDate = dateTimeNow,
                                    //UpdatedBy = model.CreatedBy,
                                    UpdatedDate = dateTimeNow,
                                };
                                _db.CMS_Board.Add(newKey);
                            }
                            else if (checkDup.Status != (byte)Commons.EStatus.Active) /* re-active old key */
                            {
                                checkDup.Status = (byte)Commons.EStatus.Active;
                                //checkDup.UpdatedBy = model.by;
                                checkDup.UpdatedDate = DateTime.Now;
                            }
                            else /* duplicate key word */
                            {
                                result = false;
                                msg    = "Duplicate board, please check your board.";
                            }

                            _db.SaveChanges();
                            trans.Commit();
                        }
                        else
                        {
                            result = false;
                            msg    = "Invalid board, please check your board.";
                        }
                    }
                    catch (Exception ex)
                    {
                        msg    = "Check connection, please!";
                        result = false;
                        trans.Rollback();
                    }
                    finally
                    {
                        _db.Dispose();
                        m_Semaphore.Release();
                    }
                }
            }
            return(result);
        }
コード例 #8
0
 public PinsModels()
 {
     Board  = new CMS_BoardModels();
     Images = new List <ImageModels>();
 }