X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fsitemap.c;h=f4b67805fc23e8f8b557734424b5718d16f23dd4;hb=HEAD;hp=c5aad6b37a2e3880a49017156d4bba484d39fd81;hpb=ec636368885b210420016b3f544edcbab9189880;p=citadel.git diff --git a/webcit/sitemap.c b/webcit/sitemap.c index c5aad6b37..a0fec9ad7 100644 --- a/webcit/sitemap.c +++ b/webcit/sitemap.c @@ -1,32 +1,25 @@ /* * 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" -#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);