ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/zoe/trunk/Rss.cpp
Revision: 25
Committed: 2004-07-17T16:29:02-07:00 (20 years, 11 months ago) by douglas
File size: 1520 byte(s)
Log Message:
RSS 2.0, baby!

File Contents

# Content
1 // Zoe AIM Away Message RSS Feed Generator
2 //
3 // Seth King and Douglas Thrift
4 //
5 // $Id$
6
7 #include "Rss.hpp"
8
9 Rss::Rss(const Buddy& buddy, const std::vector<AwayMessage>& messages)
10 {
11 Stamp stamp;
12 api::FileOutputStream fout(buddy.getRss() != "-" ? buddy.getRss() :
13 "/dev/null");
14 xml::TextWriter rss(buddy.getRss() != "-" ? fout : api::Cout.GetStream());
15 xml::ScopeElement root(rss, "rss");
16
17 rss.SetAttribute("version", "2.0");
18
19 xml::ScopeElement channel(rss, "channel");
20
21 rss.OpenElement("title");
22 rss.OutputText(ext::String(buddy) + "'s Away Messages");
23 rss.CloseElement();
24 rss.OpenElement("link");
25 rss.OutputText("http://computers.douglasthrift.net/zoe.xml");
26 rss.CloseElement();
27 rss.OpenElement("description");
28 rss.OutputText(ext::String(buddy) + "'s AIM Away Messages from the past 30 "
29 + "days.");
30 rss.CloseElement();
31 rss.OpenElement("lastBuildDate");
32 rss.OutputText(stamp);
33 rss.CloseElement();
34 rss.OpenElement("generator");
35 rss.OutputText(Zoe::generator());
36 rss.CloseElement();
37 rss.OpenElement("docs");
38 rss.OutputText("http://blogs.law.harvard.edu/tech/rss");
39 rss.CloseElement();
40 rss.OpenElement("ttl");
41 rss.OutputText("60");
42 rss.CloseElement();
43
44 for (std::vector<AwayMessage>::const_iterator message(messages.begin());
45 message != messages.end(); ++message)
46 {
47 xml::ScopeElement item(rss, "item");
48
49 rss.OpenElement("description");
50 rss.OutputText(*message);
51 rss.CloseElement();
52 rss.OpenElement("pubDate");
53 rss.OutputText(message->getStamp());
54 rss.CloseElement();
55 }
56 }

Properties

Name Value
svn:eol-style native
svn:keywords Id