X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Frssclient%2Frss_atom_parser.h;h=da02808a2dfa14862505b699e555310932021df5;hb=c855d497545dad80942a194624c111a54cd1fdc7;hp=e2f6e4d094a5c89aafa9373833a8223184f3e47b;hpb=b1aaa3ba826441299a3f737a15ed5bc2ad11eb42;p=citadel.git diff --git a/citadel/modules/rssclient/rss_atom_parser.h b/citadel/modules/rssclient/rss_atom_parser.h index e2f6e4d09..da02808a2 100644 --- a/citadel/modules/rssclient/rss_atom_parser.h +++ b/citadel/modules/rssclient/rss_atom_parser.h @@ -24,12 +24,25 @@ #define RSS_ATOM (1<<2) #define RSS_REQUIRE_BUF (1<<3) -typedef struct _rss_item { +typedef struct rss_aggregator rss_aggregator; +typedef struct rss_item rss_item; +typedef struct rss_room_counter rss_room_counter; + +typedef void (*rss_handler_func)(StrBuf *CData, + rss_item *ri, + rss_aggregator *Cfg, + const char** Attr); + + +typedef struct __rss_xml_handler { + int Flags; + rss_handler_func Handler; +}rss_xml_handler; + +struct rss_item { int done_parsing; int item_tag_nesting; - int roomlist_parts; time_t pubdate; - StrBuf *roomlist; StrBuf *guid; StrBuf *title; StrBuf *link; @@ -41,43 +54,49 @@ typedef struct _rss_item { StrBuf *author_or_creator; StrBuf *author_url; StrBuf *author_email; -}rss_item; - -typedef struct __rssnetcfg { - int Attached; - int ItemType; - int roomlist_parts; - time_t last_error_when; - time_t next_poll; - StrBuf *Url; - StrBuf *rooms; -}rssnetcfg; +}; -typedef void (*rss_handler_func)(StrBuf *CData, - rss_item *ri, - rssnetcfg *Cfg, - const char** Attr); +struct rss_room_counter { + int count; + long QRnumber; +}; -typedef struct __rss_xml_handler { - int Flags; - rss_handler_func Handler; -}rss_xml_handler; +typedef struct __networker_save_message { + struct CtdlMessage Msg; + StrBuf *MsgGUID; + StrBuf *Message; + struct UseTable ut; +} networker_save_message; -typedef struct _rsscollection { +struct rss_aggregator { AsyncIO IO; XML_Parser xp; + + int ItemType; + int roomlist_parts; + + time_t last_error_when; + time_t next_poll; + StrBuf *Url; + StrBuf *rooms; + long QRnumber; + HashList *OtherQRnumbers; - StrBuf *CData; - StrBuf *Key; - + StrBuf *CData; + StrBuf *Key; + rss_item *Item; - rssnetcfg *Cfg; - - rss_xml_handler *Current; -} rsscollection; + struct recptypes recp; + HashPos *Pos; + HashList *Messages; + networker_save_message *ThisMsg; + const rss_xml_handler *Current; +}; + +eNextState RSSAggregator_ParseReply(AsyncIO *IO); -eNextState ParseRSSReply(AsyncIO *IO); +void rss_save_item(rss_item *ri, rss_aggregator *Cfg); -void rss_save_item(rss_item *ri); +eNextState RSS_FetchNetworkUsetableEntry(AsyncIO *IO);