]> code.citadel.org Git - citadel.git/blobdiff - webcit/sitemap.c
Add macro so application code can more easily _not_ access iterator reserved parameters.
[citadel.git] / webcit / sitemap.c
index c5aad6b37a2e3880a49017156d4bba484d39fd81..20dace9577e0fdfd7d21c4a310b90df3e0a1b151 100644 (file)
@@ -5,17 +5,11 @@
  *
  * 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"
@@ -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; i<num_msgs; ++i) {
                Msg = GetMessagePtrAt(i, WCC->summ);
                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("<url><loc>%s", ChrPtr(site_prefix));
                                tmplput_blog_permalink(NULL, NULL);
                                wc_printf("</loc></url>\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);