X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=webcit%2Fsitemap.c;h=f4b67805fc23e8f8b557734424b5718d16f23dd4;hp=cab60d43ec01307ceef379db619a34fe0a22c485;hb=HEAD;hpb=307ff84a60b03889b9cd5ff84c29489177f9a39d diff --git a/webcit/sitemap.c b/webcit/sitemap.c index cab60d43e..a0fec9ad7 100644 --- a/webcit/sitemap.c +++ b/webcit/sitemap.c @@ -1,32 +1,25 @@ /* * XML sitemap generator * - * Copyright (c) 2010-2011 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 as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. + * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "webcit.h" -#include "webserver.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; @@ -36,11 +29,11 @@ void sitemap_do_bbs(void) { 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; isumm); + Msg = GetMessagePtrAt(i, WC->summ); if (Msg != NULL) { wc_printf("%s/readfwd", ChrPtr(site_prefix)); wc_printf("?go="); @@ -52,44 +45,10 @@ void sitemap_do_bbs(void) { } -/* - * 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; isumm); - 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("%s", ChrPtr(site_prefix)); - tmplput_blog_permalink(NULL, NULL); - wc_printf("\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; @@ -100,11 +59,11 @@ void sitemap_do_wiki(void) { 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; isumm); + Msg = GetMessagePtrAt(i, WC->summ); if (Msg != NULL) { serv_printf("MSG0 %ld|3", Msg->msgnum); @@ -154,6 +113,7 @@ struct sitemap_room_list *sitemap_load_roomlist(void) { return(roomlist); } +extern void sitemap_do_blog(void); /* * Entry point for RSS feed generator @@ -177,24 +137,26 @@ void sitemap(void) { 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);