ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/zoe/trunk/Rss.cpp
Revision: 28
Committed: 2004-07-17T23:54:14-07:00 (20 years, 11 months ago) by douglas
File size: 1726 byte(s)
Log Message:
Meep!

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

Properties

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