示例#1
0
        private void EditAnnuncio()
        {
            ListViewItem row   = lsvResults.SelectedItems[0];
            string       jobId = row.SubItems[colJobID].Text;

            DatiAnnuncio annuncio = new DatiAnnuncio();
            bool         found    = DatiAnnuncio.TrovaId(_pathData, jobId, ref annuncio);

            if (!found)
            {
                GeneraEntry(jobId);
                row.Checked = true;
            }

            frmDatiAnnuncio formDatiExtra = new frmDatiAnnuncio(jobId);

            formDatiExtra.ShowDialog();

            if (!Program.extraData.Annulla)
            {
                // scrittura dati
                FileIni ini = new FileIni();
                ini.IniFile(_pathData);
                ini.Write("contattato", Program.extraData.Contattato, jobId);
                if (Program.extraData.Contattato == "SI")
                {
                    ini.Write("data_contatto", DateTime.Now.ToShortDateString(), jobId);
                }
                ini.Write("messaggio", Program.extraData.Messaggio, jobId);
                ini.Write("note", Program.extraData.Annotazioni, jobId);
                ini.Write("nascosto", Program.extraData.Nascosto, jobId);
                ini.Write("evidenzia", Program.extraData.Evidenzia, jobId);

                if (Program.extraData.Nascosto == "SI")
                {
                    lsvResults.Items.Remove(row);
                }
                else
                {
                    if (Program.extraData.Contattato == "SI")
                    {
                        row.BackColor = Color.LightSalmon;
                    }
                    else if (Program.extraData.Evidenzia == "SI")
                    {
                        row.BackColor = Color.Yellow;
                    }
                    else
                    {
                        row.BackColor = Color.GhostWhite;
                    }
                }
            }
        }
示例#2
0
        private void menuApri_Click(object sender, EventArgs e)
        {
            if (lsvResults.SelectedItems.Count > 0)
            {
                ListViewItem item = lsvResults.SelectedItems[0];
                item.Checked = true;

                string link  = @"https://www.lapiazza.it" + item.SubItems[colJobID].Text;
                string jobId = item.SubItems[colJobID].Text;

                // aggiungere id alla lista degli annunci letti
                DatiAnnuncio annuncio = new DatiAnnuncio();
                bool         found    = DatiAnnuncio.TrovaId(_pathData, jobId, ref annuncio);

                if (!found)
                {
                    GeneraEntry(jobId);
                }

                System.Diagnostics.Process.Start(link);
            }
        }
示例#3
0
        public frmDatiAnnuncio(string jobId)
        {
            InitializeComponent();

            // carica dati
            string       pathData = Path.Combine(Application.StartupPath, "datalist.ini");
            DatiAnnuncio annuncio = new DatiAnnuncio();
            bool         found    = DatiAnnuncio.TrovaId(pathData, jobId, ref annuncio);

            if (found)
            {
                FileIni ini = new FileIni();
                ini.IniFile(pathData);

                optSI.Checked        = (ini.Read("contattato", jobId) == "SI");
                chkNascondi.Checked  = (ini.Read("nascosto", jobId) == "SI");
                chkEvidenzia.Checked = (ini.Read("evidenzia", jobId) == "SI");
                txtDataContatto.Text = ini.Read("data_contatto", jobId);
                txtMsg.Text          = parseRead(ini.Read("messaggio", jobId));
                txtNote.Text         = parseRead(ini.Read("note", jobId));
            }
        }
示例#4
0
        public static bool TrovaId(string pathIni, string jobId, ref DatiAnnuncio annuncio)
        {
            bool    res    = false;
            FileIni mydata = new FileIni();

            mydata.IniFile(pathIni);
            res = mydata.KeyExists("nascosto", jobId);
            if (res)
            {
                annuncio.Nascosto   = mydata.Read("nascosto", jobId);
                annuncio.Evidenzia  = mydata.Read("evidenzia", jobId);
                annuncio.Contattato = mydata.Read("contattato", jobId);
            }
            else
            {
                annuncio.Nascosto   = "NO";
                annuncio.Evidenzia  = "NO";
                annuncio.Contattato = "NO";
            }

            mydata = null;
            return(res);
        }
示例#5
0
        private void cmdScan_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            bool         first = true;
            string       url, baseUrl;
            DatiAnnuncio annuncio = new DatiAnnuncio();
            bool         found;
            string       xpath1 = "//div[@class='colonna-annunci col']/div[contains(@class,'row no-gutters annuncio')]"; // "//div[@class='item_content_in']";

            // From Web
            var web    = new HtmlWeb();
            int curRow = 0;

            lsvResults.Items.Clear();
            baseUrl = txtUrl.Text; // kttps://www.lapiazza.it/ricerca?text&reg=05&cat=1108

            for (int i = 1; i <= topPages.Value; i++)
            {
                if (first)
                {
                    url = baseUrl;
                }
                else
                {
                    url = baseUrl + "&page=" + i;
                }

                first = false;
                var doc        = web.Load(url);
                int debugCount = 0;

                try {
                    HtmlNodeCollection annunci = doc.DocumentNode.SelectNodes(xpath1);

                    foreach (HtmlNode n in annunci)
                    {
                        debugCount++;
                        HtmlNode title = n.SelectSingleNode("./div/div[@class='row no-gutters mb-auto']/a");
                        string   descr = title.InnerText; //  n2.ChildNodes[1].InnerText.Replace("\t", "");
                        string   jobId = title.Attributes["href"].Value;
                        string   link  = "www.lapiazza.it" + jobId;

                        // extra info: Luogo
                        string luogo = n.SelectSingleNode("./div/p[@class='icon-right order-0']").InnerText.Replace("\n", "").Trim();

                        // extra info: Data e Inserzionista
                        HtmlNode info    = n.SelectSingleNode("./div/p[@class='color-brown-grey order-2 order-md-1']");
                        string   dataOra = info.SelectSingleNode("./span[@class='mr-2 d-none d-md-inline']").InnerText.Replace("\n", "").Trim();

                        HtmlNode infoOwner = info.SelectSingleNode("./span[@class='fs12md']");
                        string   owner     = "";
                        if (infoOwner != null)
                        {
                            owner = infoOwner.InnerText.Replace("Inserzionista: ", "");
                        }

                        found = DatiAnnuncio.TrovaId(_pathData, jobId, ref annuncio);

                        if (chkMostraTutti.Checked || (annuncio.Nascosto == "NO"))
                        {
                            curRow++;
                            string[]     values = { descr, luogo, dataOra, owner, link, jobId };
                            ListViewItem row    = lsvResults.Items.Add(new ListViewItem(values));

                            if (annuncio.Contattato == "SI")
                            {
                                row.BackColor = Color.LightSalmon;
                            }
                            else if (annuncio.Nascosto == "SI")
                            {
                                row.BackColor = Color.LightBlue;
                            }
                            else if (annuncio.Evidenzia == "SI")
                            {
                                row.BackColor = Color.Yellow;
                            }
                            else if (curRow % 2 == 0)
                            {
                                row.BackColor = Color.LightGray;
                            }
                            else
                            {
                                row.BackColor = Color.GhostWhite;
                            }
                        }
                    }
                } catch (Exception err) {
                    MessageBox.Show(debugCount + " " + err.Message);
                    MessageBox.Show("la pagina: " + i + " non contiene annunci");
                }
            }

            // aggiornamento colonna dei già selezionati
            foreach (ListViewItem row in lsvResults.Items)
            {
                found       = DatiAnnuncio.TrovaId(_pathData, row.SubItems[colJobID].Text, ref annuncio);
                row.Checked = found;
            }

            lblTotAnn.Text = "Tot. Annunci: " + curRow.ToString();
            this.Cursor    = Cursors.Default;
        }