È un documento XML contenente (nel caso che interessa a te) l'elenco delle discussioni recenti in formato facilmente recuperabile da un programma. Prendendo un forum a caso su forumfree, il feed RSS "generale" del forum è una cosa del tipo:Originariamente inviato da g.b99pm10
2 Che cosa è e come funziona il feed RSS? So soltanto che c'è
Come vedi i dati che ti servono ci sono tutti e si possono gestire in maniera semplice con un parser XML.codice:<?xml version="1.0" encoding="windows-1252"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Vicolodellenews Official Forum</title> <link>http://vicolodellenews.forumfree.it</link> <description>Vicolodellenews Official Forum</description> <language>it-IT</language> <ttl>120</ttl><image><title>Vicolodellenews Official Forum</title> <url>http://www.youimages.org/public/imag...1logodef0k.png</url> <link>http://vicolodellenews.forumfree.it</link> </image><item><title>WELCOME - Mi Presento!</title> <dc:creator><![CDATA[Cugina_muaO]]></dc:creator> <description>22/5/2013, 14:12<br />di: <a href="http://vicolodellenews.forumfree.it/...=8878415" target="_top">Cugina_muaO</a><br />in: <a href="http://vicolodellenews.forumfree.it/...lastpost" target="_top">Mi Presento!</a></description> <link>http://vicolodellenews.forumfree.it/...tpost#lastpost</link> <guid>http://vicolodellenews.forumfree.it/...tpost#lastpost</guid> <pubDate>Wed, 22 May 2013 07:12:37 -0500</pubDate> </item> ... eccetera ... </channel></rss>
Come detto sopra: il programma si segna in un file l'ultima data a cui ha controllato ed esamina il feed per vedere se ci sono discussioni nuove.3 Come potrei sfruttare l' RSS per far capire al programma che c'è una nuova discussione?
Scaricando il file XML in questione ed elaborandolo con un parser XML.4 come faccio a far leggere al programma tutte le discussioni?
Ti server una libreria per effettuare connessioni HTTP e un parser XML. Due grandi classici multipiattaforma sono libcurl (qui il binding C++) e Xerces-C++; in alternativa, Windows già include le funzioni di urlmon e il parser MSXML. Le librerie per scaricare il file sono entrambe relativamente semplici da usare, i parser XML un po' meno (specie perché devi prima imparare cos'è un file XML, cos'è un parser DOM, come estrarre dall'albero DOM i dati che ti interessano & co.), MSXML poi può essere particolarmente ostico perché è basato su COM (tecnologia piuttosto incasinata da usare).5 Devo scaricare qualche libreria per programmare questo programma?
In alternativa, puoi usare una libreria già pronta come FeedReader, che se noti richiede per funzionare le stesse librerie citate sopra (tra le altre).
Dubito ci sia alcunché del genere, non so quanti forum forniscano delle API, e in ogni caso saranno API specifiche del tal forum e "language agnostic" in stile webservice (per cui non hai delle funzioni C++ specifiche da chiamare, ma devi procurarti una libreria per fare richieste SOAP o quello che usano e "costruirti" una tua libreria C++).6 Sapresti dove posso trovare una guida che spieghi come utilizzare le funzioni che permettono al programma di interagire col forum? (Preferirei che le guide fossero in italiano, ma se proprio non le trovassi anche se sono in inglese mi vanno bene).
Ma ribadisco, un programma in C++ mi pare la soluzione meno adatta a questo problema. Già di base basterebbe un normalissimo RSS reader per essere notificati di nuovi elementi in un feed RSS; poi se proprio vuoi scriverti un programma tuo, fare mestieri del genere in C++ è una complicazione inutile, questa è roba da linguaggi di scripting tipo Python, in cui hai già pronte all'uso librerie per collegarsi al server e parser XML (e l'uso di librerie per leggere feed è estremamente semplice).

Rispondi quotando