X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fsitemap.c;h=20dace9577e0fdfd7d21c4a310b90df3e0a1b151;hb=aeade41982c6c9a3e745a3b3c8262a3ec6952670;hp=cab60d43ec01307ceef379db619a34fe0a22c485;hpb=307ff84a60b03889b9cd5ff84c29489177f9a39d;p=citadel.git diff --git a/webcit/sitemap.c b/webcit/sitemap.c index cab60d43e..20dace957 100644 --- a/webcit/sitemap.c +++ b/webcit/sitemap.c @@ -1,21 +1,15 @@ /* * XML sitemap generator * - * Copyright (c) 2010-2011 by the citadel.org team + * Copyright (c) 2010-2012 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" @@ -61,6 +55,8 @@ void sitemap_do_blog(void) { int i; SharedMessageStatus Stat; message_summary *Msg = NULL; + StrBuf *Buf = NewStrBuf(); + StrBuf *FoundCharset = NewStrBuf(); memset(&Stat, 0, sizeof Stat); Stat.maxload = INT_MAX; @@ -72,16 +68,18 @@ void sitemap_do_blog(void) { for (i=0; isumm); if (Msg != NULL) { - struct bltr bltr = blogview_learn_thread_references(Msg->msgnum); + ReadOneMessageSummary(Msg, FoundCharset, Buf); /* Show only top level posts, not comments */ - if ((bltr.id != 0) && (bltr.refs == 0)) { - WC->bptlid = bltr.id; + if ((Msg->reply_inreplyto_hash != 0) && (Msg->reply_references_hash == 0)) { + WCC->bptlid = Msg->reply_inreplyto_hash; wc_printf("%s", ChrPtr(site_prefix)); tmplput_blog_permalink(NULL, NULL); wc_printf("\r\n"); } } } + FreeStrBuf(&Buf); + FreeStrBuf(&FoundCharset); } @@ -177,24 +175,27 @@ 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: + case VIEW_WIKIMD: + 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);