time_t if_modified_since;
+void display_rss_control(const char *reply_to, const char *subject)
+{
+ wprintf("<div style=\"align: right;\"><p>\n");
+ wprintf("<a href=\"/display_enter?recp=");
+ urlescputs(reply_to);
+ wprintf("&subject=");
+ if (strncasecmp(subject, "Re: ", 3)) wprintf("Re:%20");
+ urlescputs(subject);
+ wprintf("\">[%s]</a> \n", _("Reply"));
+ wprintf("<a href=\"/display_enter?recp=");
+ urlescputs(reply_to);
+ wprintf("&force_room=_MAIL_&subject=");
+ if (strncasecmp(subject, "Re: ", 3)) wprintf("Re:%20");
+ urlescputs(subject);
+ wprintf("\">[%s]</a>\n", _("Email"));
+ wprintf("</p></div>\n");
+}
+
+
void display_rss(const char *roomname)
{
int nummsgs;
char charset[256];
if (!WC->logged_in) {
- authorization_required("Not logged in");
+ authorization_required(_("Not logged in"));
return;
}
if (gotoroom(roomname)) {
- wprintf("HTTP/1.0 404 Not Found\r\n");
+ lprintf(3, "RSS: Can't goto requested room\n");
+ wprintf("HTTP/1.1 404 Not Found\r\n");
wprintf("Content-Type: text/html\r\n");
wprintf("\r\n");
- wprintf("Error retrieving RSS feed: couldn't find room or messages\n");
+ wprintf("Error retrieving RSS feed: couldn't find room\n");
return;
}
- nummsgs = load_msg_ptrs("MSGS LAST|50", 0);
+ nummsgs = load_msg_ptrs("MSGS LAST|15", 0);
if (nummsgs == 0) {
- wprintf("HTTP/1.0 404 Not Found\r\n");
+ lprintf(3, "RSS: No messages found\n");
+ wprintf("HTTP/1.1 404 Not Found\r\n");
wprintf("Content-Type: text/html\r\n");
wprintf("\r\n");
- wprintf("Error retrieving RSS feed: couldn't find room or messages\n");
+ wprintf(_("Error retrieving RSS feed: couldn't find messages\n"));
return;
}
}
}
- lprintf(3, "If modified since %ld Last modified %ld\n", if_modified_since, now);
if (if_modified_since > 0 && if_modified_since > now) {
- wprintf("HTTP/1.0 304 Not Modified\r\n");
+ lprintf(3, "RSS: Feed not updated since the last time you looked\n");
+ wprintf("HTTP/1.1 304 Not Modified\r\n");
wprintf("Last-Modified: %s\r\n", date);
now = time(NULL);
gmtime_r(&now, &now_tm);
}
/* Do RSS header */
- wprintf("HTTP/1.0 200 OK\r\n");
+ lprintf(3, "RSS: Yum yum! This feed is tasty!\n");
+ wprintf("HTTP/1.1 200 OK\r\n");
wprintf("Last-Modified: %s\r\n", date);
/* if (*msgn) wprintf("ETag: %s\r\n\r\n", msgn); */
wprintf("Content-Type: application/rss+xml\r\n");
serv_getln(buf, sizeof buf);
if (!strcmp(buf, "000"))
break;
- wprintf("%s", buf);
+ wprintf("%s\n", buf);
}
}
wprintf("</description>\n");
escputs(buf);
wprintf("\n");
}
+ display_rss_control(from, subj);
wprintf("]]></description>\n");
}
/* Boring old 80-column fixed format text gets handled this way... */
escputs(buf);
wprintf("</tt><br />\n");
}
+ display_rss_control(from, subj);
wprintf("]]></description>\n");
}
/* HTML is fun, but we've got to strip it first */