예제 #1
0
    public string GetPluginTxt(string pString, string pDefaultFont, string pBoldFont, string pItalicFont)
    {
        if (pString.Length == 0)
        {
            return("");
        }

        ParseHtml.ParseReturn lParseArray = ParseHtml.Parse(pString);

        string lDefaultFontTag = "\\" + pDefaultFont + " ";
        string lReturnString   = lDefaultFontTag;

        for (int lIndex = 0; lIndex < lParseArray.textArray.Length; lIndex++)
        {
            string lTag  = lParseArray.tagArray[lIndex];
            string lText = lParseArray.textArray[lIndex];

            if ((lTag == "<b>") || (lTag == "<B>"))
            {
                lText          = lText.Replace("\n", "\n" + "\\" + pBoldFont + " ");
                lReturnString += "\\" + pBoldFont + "{" + lText + "}";
            }
            else if ((lTag == "<i>") || (lTag == "<I>"))
            {
                lText          = lText.Replace("\n", "\n" + "\\" + pItalicFont + " ");
                lReturnString += "\\" + pItalicFont + "{" + lText + "}";
            }
            else
            {
                lReturnString += lText.Replace("\n", "\n" + lDefaultFontTag);
            }
        }

        return(lReturnString);
    }    //GetPluginTxt
예제 #2
0
        private void Timer_Tick(object sender, EventArgs e)
        {
            timer.Stop();
            foreach (string adNo in ads)
            {
                webBrowser.Navigate(@$ "https://www.sahibinden.com/ilan/{adNo}/detay/");

                while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
                {
                    Application.DoEvents();
                }
                double price;
                var    links = webBrowser.Document.GetElementsByTagName("div");
                foreach (HtmlElement link in links)
                {
                    try
                    {
                        if (link.GetAttribute("className") == "classified-sticky-header")
                        {
                            List <Advertisement> ads = clsMain.GetAds();
                            History history          = new History();
                            var     adTitle          = ParseHtml.GetAdTitle(link);
                            history.AD_NO      = adNo;
                            history.AD_PRICE   = Convert.ToDouble(ParseHtml.GetAdPrice(link));
                            history.AD_VIEWS   = Convert.ToInt32(ParseHtml.GetNumberOfViews(webBrowser));
                            history.CHECK_DATE = DateTime.Now;
                            clsMain.InsertHistory(history);
                            Advertisement ad = ads.Where(x => x.AD_TITLE == adTitle).FirstOrDefault();
                            if (ad != null)
                            {
                                if (history.AD_PRICE < ad.MIN_PRCE)
                                {
                                    clsMain.SendMail(ad);
                                }
                            }


                            break;
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
            timer.Start();
        }
예제 #3
0
파일: Program.cs 프로젝트: pavel88800/April
        private static void Main(string[] args)
        {
            ClientException.Process();

            WorkInDb.CreateDbAndTable();
            Console.WriteLine("Press Esc to exit");
            do
            {
                Console.WriteLine("Введите урл:");
                var url         = Console.ReadLine();
                var productAttr = ParseHtml.GetAttr(url);

                if (productAttr != null)
                {
                    WorkInDb.InsertData(productAttr);
                    WorkInDb.SelectData();
                }
            } while (Console.ReadKey().Key != ConsoleKey.Escape);
        }
예제 #4
0
        public bool PostTicketAnswer(CommunityTicket comTicket, Ticket ticket, string answer)
        {
            if (!IsSessionSet(true))
            {
                return(false);
            }

            string htmlContent = _httpClient.PostSynchronous(_ticketUri.GetViewTicketSubmitAnswerUri(comTicket.CommunityId, ticket.TicketId, ticket.TicketValue), GamePostData.GetComaAnswerPostData(answer, "0"), _ticketUri.GetViewTicketAnswerTemplateUri(comTicket.CommunityId, ticket.TicketId, ticket.TicketValue, "0").AbsoluteUri, true);

            if (!IsSessionStatusValid())
            {
                OnNotifyLoggedOut();
                return(false);
            }
            else
            {
                return(ParseHtml.IsTicketAnswerSuccessfull(htmlContent));
            }
        }
예제 #5
0
        public string GetTicketAnswerTemplate(CommunityTicket comTicket, Ticket ticket, string link)
        {
            if (!IsSessionSet(true))
            {
                return("");
            }

            string htmlContent = _httpClient.GetPage(_ticketUri.GetViewTicketAnswerTemplateUri(comTicket.CommunityId, ticket.TicketId, ticket.TicketValue, link), _ticketUri.GetViewTicketUri(comTicket.CommunityId, ticket.TicketId, ticket.TicketValue).AbsoluteUri, true);

            if (!IsSessionStatusValid())
            {
                OnNotifyLoggedOut();
                return("");
            }
            else
            {
                return(ParseHtml.GetTicketAnswerTemplate(htmlContent));
            }
        }
예제 #6
0
        public void GetClosedTicket(CommunityTicket comTicket, int pageNumber)
        {
            if (!IsSessionSet(true))
            {
                return;
            }

            string htmlContent = _httpClient.GetPage(_ticketUri.GetClosedTicketUri(comTicket.CommunityId, pageNumber), _ticketUri.GetTicketIndexUri().AbsoluteUri, true);

            if (!IsSessionStatusValid())
            {
                OnNotifyLoggedOut();
                return;
            }
            else
            {
                comTicket.TotalMyTicket             = ParseHtml.GetTotalMyTicket(htmlContent);
                comTicket.TotalOpenTicket           = ParseHtml.GetTotalOpenTicket(htmlContent);
                comTicket.ClosedTicketList          = ParseHtml.GetTicketList(htmlContent);
                comTicket.ClosedTicketCurrentPageNr = ParseHtml.GetCurrentTicketPageNr(htmlContent);
                comTicket.ClosedTicketTotalPageNr   = ParseHtml.GetTotalTicketPageNr(htmlContent);
            }
        }
예제 #7
0
        public Ticket ReadTicket(CommunityTicket comTicket, Ticket ticket, out List <AnswerTemplate> answerTemplateList)
        {
            answerTemplateList = new List <AnswerTemplate>();

            if (!IsSessionSet(true))
            {
                return(null);
            }

            string htmlContent = _httpClient.GetPage(_ticketUri.GetViewTicketUri(comTicket.CommunityId, ticket.TicketId, ticket.TicketValue), _ticketUri.GetOpenTicketUri(comTicket.CommunityId, comTicket.OpenTicketCurrentPageNr).AbsoluteUri, true);

            if (!IsSessionStatusValid())
            {
                OnNotifyLoggedOut();
                return(null);
            }
            else
            {
                ticket = ParseHtml.GetTicketDetails(htmlContent, ticket);
                ticket.TicketMessageList = ParseHtml.GetTicketMessages(htmlContent, _dateFormatId);
                answerTemplateList       = ParseHtml.GetAnswerTemplateDetails(htmlContent);
                return(ticket);
            }
        }
예제 #8
0
        public void RetrieveComaToolCommunityList()
        {
            string htmlContent = _httpClient.GetPage(_ticketUri.GetTicketIndexUri(), _ticketUri.GetIndexUri().AbsoluteUri, true);

            _comaToolCommunityList = ParseHtml.GetComaToolOGameCommunityList(htmlContent);
        }
예제 #9
0
        public void RetrieveDateFormatId()
        {
            string htmlContent = _httpClient.GetPage(_ticketUri.GetProfileUri(), _ticketUri.GetIndexUri().AbsoluteUri, true);

            _dateFormatId = ParseHtml.GetDateFormatId(htmlContent);
        }
예제 #10
0
        static void Main(string[] args)
        {
            ApplicationContext context = new ApplicationContext();

            context.UniqueWords.Load();

            Console.Write("Что сделать? (1-вывести из базы, 2-ввести URL): ");
            var answer = int.Parse(Console.ReadLine());

            if (answer == 1)
            {
                Console.WriteLine("\n\nСписок слов:\n");
                foreach (var word in context.UniqueWords.Local.ToList())
                {
                    Console.WriteLine($"{word.Word} - {word.Count}");
                }
            }
            else if (answer == 2)
            {
                ParseHtml parse = new ParseHtml();

                Console.Write("Введите URL: ");
                var url = Console.ReadLine();

                Console.WriteLine();

                Console.Write("Введите кол-во вхождений слова: ");
                var countText = Console.ReadLine();

                try
                {
                    if (int.TryParse(countText, out int count))
                    {
                        //"https://www.simbirsoft.com/"
                        var streamHtml = parse.GetHtmlStream(url);

                        var parsedHtml = parse.ParseHtmlOfStream(streamHtml);

                        UniqueWords uniqueWords = new UniqueWords();

                        var clearArray = uniqueWords.ClearArrayWithWord(parsedHtml);

                        var dictionaryUniqueWord = uniqueWords.CountUniqueWord(clearArray);

                        foreach (var keyValue in dictionaryUniqueWord)
                        {
                            if (keyValue.Value >= count)
                            {
                                Console.WriteLine($"{keyValue.Key} - {keyValue.Value}");
                                var item = context.UniqueWords.Local.FirstOrDefault(x => x.Word == keyValue.Key && x.Url == url);
                                if (item == null)
                                {
                                    var lastItem  = context.UniqueWords.Local.LastOrDefault();
                                    var lastIndex = lastItem == null ? 1 : lastItem.IdWord + 1;
                                    context.UniqueWords.Add(new UniqueWord {
                                        IdWord = lastIndex, Url = url, Word = keyValue.Key, Count = keyValue.Value
                                    });
                                }
                                else
                                {
                                    item.Count += keyValue.Value;
                                }
                            }
                        }
                        context.SaveChanges();
                        Console.WriteLine("\nНажмите на любую кнопку");
                    }
                    else
                    {
                        throw new Exception("Некорректное число");
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            Console.WriteLine("\nНажмите любую кнопку...");
            Console.ReadKey();
            Process.Start(Assembly.GetExecutingAssembly().Location);
            Environment.Exit(0);
        }