ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/zoe/trunk/Rss.cpp
Revision: 46
Committed: 2004-08-16T18:52:59-07:00 (20 years, 10 months ago) by douglas
File size: 1694 byte(s)
Log Message:
Made some drastic changes! Maybe not so drastic.

File Contents

# User Rev Content
1 douglas 9 // Zoe AIM Away Message RSS Feed Generator
2     //
3     // Seth King and Douglas Thrift
4     //
5     // $Id$
6    
7     #include "Rss.hpp"
8 douglas 13
9 douglas 34 Rss::Rss(const Buddy& buddy, const std::vector<AwayMessage>& messages, const Stamp& stamp)
10 douglas 25 {
11 douglas 34 api::FileOutputStream fout(buddy.getRss() != "-" ? buddy.getRss() : "/dev/null");
12 douglas 25 xml::TextWriter rss(buddy.getRss() != "-" ? fout : api::Cout.GetStream());
13 douglas 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 douglas 34 rss.OutputText(ext::String(buddy) + "'s Away Messages");
21 douglas 13 rss.CloseElement();
22     rss.OpenElement("link");
23 douglas 39 rss.OutputText(buddy.getLink());
24 douglas 25 rss.CloseElement();
25     rss.OpenElement("description");
26 douglas 39 rss.OutputText(ext::String(buddy) + "'s AIM Away Messages from the past 30 "
27     "days.");
28 douglas 25 rss.CloseElement();
29     rss.OpenElement("lastBuildDate");
30 douglas 36 rss.OutputText(stamp.get822());
31 douglas 25 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 douglas 39 for (std::vector<AwayMessage>::const_iterator message(messages.begin());
43     message != messages.end(); ++message)
44 douglas 25 {
45     xml::ScopeElement item(rss, "item");
46    
47 douglas 46 rss.OpenElement("link");
48     rss.OutputText(message->getLink(buddy));
49     rss.CloseElement();
50 douglas 25 rss.OpenElement("description");
51     rss.OutputText(*message);
52     rss.CloseElement();
53 douglas 46 rss.OpenElement("guid");
54     rss.OutputText(message->getTag(buddy));
55     rss.CloseElement();
56 douglas 25 rss.OpenElement("pubDate");
57 douglas 36 rss.OutputText(message->getStamp().get822());
58 douglas 25 rss.CloseElement();
59     }
60     }

Properties

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