]> code.citadel.org Git - citadel.git/blobdiff - webcit/feed_generator.c
Offer meta tags in head for RSS feeds (uses templates)
[citadel.git] / webcit / feed_generator.c
index f259b00ee3c987a7d05e501db5371f8630eab4cf..ab8a4630eb84f3816d27984c228bcc383e1214e0 100644 (file)
@@ -165,6 +165,26 @@ void feed_rss(void) {
 }
 
 
+/*
+ * Offer the RSS feed meta tag for this room
+ */
+void tmplput_rssmeta(StrBuf *Target, WCTemplputParams *TP) 
+{
+       wcsession *WCC = WC;
+       char feed_link[1024];
+       char encoded_link[1024];
+
+       strcpy(feed_link, "/feed_rss?gotofirst=");
+       urlesc(&feed_link[20], sizeof(feed_link) - 20, (char *)ChrPtr(WCC->CurRoom.name) );
+       CtdlEncodeBase64(encoded_link, feed_link, strlen(feed_link), 0);
+
+       StrBufAppendPrintf(Target,
+               "<link rel=\"alternate\" title=\"RSS\" href=\"/B64%s\" type=\"application/rss+xml\">",
+               encoded_link
+       );
+}
+
+
 /*
  * Offer the RSS feed button for this room
  */
@@ -178,17 +198,17 @@ void tmplput_rssbutton(StrBuf *Target, WCTemplputParams *TP)
        urlesc(&feed_link[20], sizeof(feed_link) - 20, (char *)ChrPtr(WCC->CurRoom.name) );
        CtdlEncodeBase64(encoded_link, feed_link, strlen(feed_link), 0);
 
-       StrBufAppendPrintf(Target, "<a href=\"/B64%s\">", encoded_link);
+       StrBufAppendPrintf(Target, "<a type-\"application/rss+xml\" href=\"/B64%s\">", encoded_link);
        StrBufAppendPrintf(Target, "<img border=\"0\" src=\"static/rss_16x.png\">");
        StrBufAppendPrintf(Target, "</a>");
 }
 
 
-
 void 
 InitModule_RSS
 (void)
 {
        WebcitAddUrlHandler(HKEY("feed_rss"), "", 0, feed_rss, ANONYMOUS|COOKIEUNNEEDED);
        RegisterNamespace("THISROOM:FEED:RSS", 0, 0, tmplput_rssbutton, NULL, CTX_NONE);
+       RegisterNamespace("THISROOM:FEED:RSSMETA", 0, 0, tmplput_rssmeta, NULL, CTX_NONE);
 }