/*
* XML sitemap generator
*
- * Copyright (c) 2010-2012 by the citadel.org team
+ * Copyright (c) 2010-2021 by the citadel.org team
*
* This program is open source software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License, version 3.
- *
- *
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
- *
- *
- *
*/
#include "webcit.h"
* XML sitemap generator -- go through the message list for a BBS room
*/
void sitemap_do_bbs(void) {
- wcsession *WCC = WC;
int num_msgs = 0;
int i;
SharedMessageStatus Stat;
Stat.maxload = INT_MAX;
Stat.lowest_found = (-1);
Stat.highest_found = (-1);
- num_msgs = load_msg_ptrs("MSGS ALL", NULL, &Stat, NULL);
+ num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0);
if (num_msgs < 1) return;
for (i=0; i<num_msgs; i+=20) {
- Msg = GetMessagePtrAt(i, WCC->summ);
+ Msg = GetMessagePtrAt(i, WC->summ);
if (Msg != NULL) {
wc_printf("<url><loc>%s/readfwd", ChrPtr(site_prefix));
wc_printf("?go=");
}
-/*
- * XML sitemap generator -- go through the message list for a Blog room
- */
-void sitemap_do_blog(void) {
- wcsession *WCC = WC;
- int num_msgs = 0;
- int i;
- SharedMessageStatus Stat;
- message_summary *Msg = NULL;
-
- memset(&Stat, 0, sizeof Stat);
- Stat.maxload = INT_MAX;
- Stat.lowest_found = (-1);
- Stat.highest_found = (-1);
- num_msgs = load_msg_ptrs("MSGS ALL", NULL, &Stat, NULL);
- if (num_msgs < 1) return;
-
- for (i=0; i<num_msgs; ++i) {
- Msg = GetMessagePtrAt(i, WCC->summ);
- if (Msg != NULL) {
- struct bltr bltr = blogview_learn_thread_references(Msg->msgnum);
- /* Show only top level posts, not comments */
- if ((bltr.id != 0) && (bltr.refs == 0)) {
- WC->bptlid = bltr.id;
- wc_printf("<url><loc>%s", ChrPtr(site_prefix));
- tmplput_blog_permalink(NULL, NULL);
- wc_printf("</loc></url>\r\n");
- }
- }
- }
-}
-
-
/*
* XML sitemap generator -- go through the message list for a wiki room
*/
void sitemap_do_wiki(void) {
- wcsession *WCC = WC;
int num_msgs = 0;
int i;
SharedMessageStatus Stat;
Stat.maxload = INT_MAX;
Stat.lowest_found = (-1);
Stat.highest_found = (-1);
- num_msgs = load_msg_ptrs("MSGS ALL", NULL, &Stat, NULL);
+ num_msgs = load_msg_ptrs("MSGS ALL", NULL, NULL, &Stat, NULL, NULL, NULL, NULL, 0);
if (num_msgs < 1) return;
for (i=0; i<num_msgs; ++i) {
- Msg = GetMessagePtrAt(i, WCC->summ);
+ Msg = GetMessagePtrAt(i, WC->summ);
if (Msg != NULL) {
serv_printf("MSG0 %ld|3", Msg->msgnum);
return(roomlist);
}
+extern void sitemap_do_blog(void);
/*
* Entry point for RSS feed generator
while (roomlist != NULL)
{
+ struct sitemap_room_list *ptr;
+
gotoroom(roomlist->roomname);
/* Output the messages in this room only if it's a room type we can make sense of */
switch(roomlist->defview) {
- case VIEW_BBS:
- sitemap_do_bbs();
- break;
- case VIEW_WIKI:
- sitemap_do_wiki();
- break;
- case VIEW_BLOG:
- sitemap_do_blog();
- break;
- default:
- break;
+ case VIEW_BBS:
+ sitemap_do_bbs();
+ break;
+ case VIEW_WIKI:
+ sitemap_do_wiki();
+ break;
+ case VIEW_BLOG:
+ sitemap_do_blog();
+ break;
+ default:
+ break;
}
- struct sitemap_room_list *ptr = roomlist;
+ ptr = roomlist;
roomlist = roomlist->next;
FreeStrBuf(&ptr->roomname);
free(ptr);