-void rss_cleanup(void)
-{
- /* citthread_mutex_destroy(&RSSQueueMutex); TODO */
- DeleteHash(&RSSFetchUrls);
- DeleteHash(&RSSQueueRooms);
-}
-
-void LogDebugEnableRSSClient(const int n)
-{
- RSSClientDebugEnabled = n;
-}
-
-
-typedef struct __RSSVetoInfo {
- StrBuf *ErrMsg;
- time_t Now;
- int Veto;
-}RSSVetoInfo;
-
-void rssclient_veto_scan_room(struct ctdlroom *qrbuf, void *data, OneRoomNetCfg *OneRNCFG)
-{
- RSSVetoInfo *Info = (RSSVetoInfo *) data;
- const RSSCfgLine *RSSCfg = (RSSCfgLine *)OneRNCFG->NetConfigs[rssclient];
-
- while (RSSCfg != NULL)
- {
- if ((RSSCfg->last_known_good != 0) &&
- (RSSCfg->last_known_good + USETABLE_ANTIEXPIRE < Info->Now))
- {
- StrBufAppendPrintf(Info->ErrMsg,
- "RSS feed not seen for a %d days:: <",
- (Info->Now - RSSCfg->last_known_good) / (24 * 60 * 60));
-
- StrBufAppendBuf(Info->ErrMsg, RSSCfg->Url, 0);
- StrBufAppendBufPlain(Info->ErrMsg, HKEY(">\n"), 0);
- }
- RSSCfg = RSSCfg->next;
- }
-}
-
-int RSSCheckUsetableVeto(StrBuf *ErrMsg)
-{
- RSSVetoInfo Info;
-
- Info.ErrMsg = ErrMsg;
- Info.Now = time (NULL);
- Info.Veto = 0;
-
- CtdlForEachNetCfgRoom(rssclient_veto_scan_room, &Info);
-
- return Info.Veto;;
-}
-
-
-
-
-void ParseRSSClientCfgLine(const CfgLineType *ThisOne, StrBuf *Line, const char *LinePos, OneRoomNetCfg *OneRNCFG)
-{
- RSSCfgLine *RSSCfg;
-
- RSSCfg = (RSSCfgLine *) malloc (sizeof(RSSCfgLine));
- RSSCfg->Url = NewStrBufPlain (NULL, StrLength (Line));
-
-
- StrBufExtract_NextToken(RSSCfg->Url, Line, &LinePos, '|');
- RSSCfg->last_known_good = StrBufExtractNext_long(Line, &LinePos, '|');
-
-
- RSSCfg->next = (RSSCfgLine *)OneRNCFG->NetConfigs[ThisOne->C];
- OneRNCFG->NetConfigs[ThisOne->C] = (RoomNetCfgLine*) RSSCfg;
-}
-
-void SerializeRSSClientCfgLine(const CfgLineType *ThisOne, StrBuf *OutputBuffer, OneRoomNetCfg *RNCfg, RoomNetCfgLine *data)
-{
- RSSCfgLine *RSSCfg = (RSSCfgLine*) data;
-
- StrBufAppendBufPlain(OutputBuffer, CKEY(ThisOne->Str), 0);
- StrBufAppendBufPlain(OutputBuffer, HKEY("|"), 0);
- StrBufAppendBufPlain(OutputBuffer, SKEY(RSSCfg->Url), 0);
- StrBufAppendPrintf(OutputBuffer, "|%ld\n", RSSCfg->last_known_good);
-}
-
-void DeleteRSSClientCfgLine(const CfgLineType *ThisOne, RoomNetCfgLine **data)
-{
- RSSCfgLine *RSSCfg = (RSSCfgLine*) *data;
-
- FreeStrBuf(&RSSCfg->Url);
- free(*data);
- *data = NULL;
-}
-