ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/zoe/trunk/Rss.cpp
Revision: 49
Committed: 2004-08-19T16:44:47-07:00 (20 years, 10 months ago) by douglas
File size: 1700 byte(s)
Log Message:
Display name, so sexy!

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 ext::String& display, const std::vector<AwayMessage>& messages, const Stamp& stamp)
10 {
11 api::FileOutputStream fout(buddy.getRss() != "-" ? buddy.getRss() : "/dev/null");
12 xml::TextWriter rss(buddy.getRss() != "-" ? fout : api::Cout.GetStream());
13 xml::ScopeElement root(rss, "rss");
14
15 rss.SetAttribute("version", "2.0");
16
17 xml::ScopeElement channel(rss, "channel");
18
19 rss.OpenElement("title");
20 rss.OutputText(display + "'s Away Messages");
21 rss.CloseElement();
22 rss.OpenElement("link");
23 rss.OutputText(buddy.getLink());
24 rss.CloseElement();
25 rss.OpenElement("description");
26 rss.OutputText(display + "'s AIM Away Messages from the past 30 "
27 "days.");
28 rss.CloseElement();
29 rss.OpenElement("lastBuildDate");
30 rss.OutputText(stamp.get822());
31 rss.CloseElement();
32 rss.OpenElement("generator");
33 rss.OutputText(Zoe::generator());
34 rss.CloseElement();
35 rss.OpenElement("docs");
36 rss.OutputText("http://blogs.law.harvard.edu/tech/rss");
37 rss.CloseElement();
38 rss.OpenElement("ttl");
39 rss.OutputText("60");
40 rss.CloseElement();
41
42 for (std::vector<AwayMessage>::const_iterator message(messages.begin());
43 message != messages.end(); ++message)
44 {
45 xml::ScopeElement item(rss, "item");
46
47 rss.OpenElement("link");
48 rss.OutputText(message->getLink(buddy));
49 rss.CloseElement();
50 rss.OpenElement("description");
51 rss.OutputText(*message);
52 rss.CloseElement();
53 rss.OpenElement("guid");
54 rss.OutputText(message->getTag(buddy));
55 rss.CloseElement();
56 rss.OpenElement("pubDate");
57 rss.OutputText(message->getStamp().get822());
58 rss.CloseElement();
59 }
60 }

Properties

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