Template the last bits of the blog view.
[citadel.git] / webcit / sitemap.c
index b704ca6922e5840e771ca71056b30d5ba569f97f..8c3ee463e87110632918a1f533c4367a53934e55 100644 (file)
@@ -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"
@@ -36,7 +30,7 @@ void sitemap_do_bbs(void) {
        Stat.maxload = INT_MAX;
        Stat.lowest_found = (-1);
        Stat.highest_found = (-1);
-       num_msgs = load_msg_ptrs("MSGS ALL", &Stat, NULL);
+       num_msgs = load_msg_ptrs("MSGS ALL", NULL, &Stat, NULL);
        if (num_msgs < 1) return;
 
        for (i=0; i<num_msgs; i+=20) {
@@ -52,39 +46,6 @@ 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", &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
  */
@@ -100,7 +61,7 @@ void sitemap_do_wiki(void) {
        Stat.maxload = INT_MAX;
        Stat.lowest_found = (-1);
        Stat.highest_found = (-1);
-       num_msgs = load_msg_ptrs("MSGS ALL", &Stat, NULL);
+       num_msgs = load_msg_ptrs("MSGS ALL", NULL, &Stat, NULL);
        if (num_msgs < 1) return;
 
        for (i=0; i<num_msgs; ++i) {
@@ -154,6 +115,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 +139,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);