ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/zoe/trunk/Rss.hpp
Revision: 55
Committed: 2004-09-01T02:41:10-07:00 (20 years, 9 months ago) by douglas
File size: 1952 byte(s)
Log Message:
Updated to latest menes API.

File Contents

# Content
1 // Zoe AIM Away Message RSS Feed Generator
2 //
3 // Seth King and Douglas Thrift
4 //
5 // $Id$
6
7 #ifndef _Rss_hpp_
8 #define _Rss_hpp_
9
10 #include "AwayMessage.hpp"
11
12 struct Rss
13 {
14 template<typename Iterator>
15 Rss(const Buddy& buddy, const ext::String& display,
16 const Iterator& messagesBegin, const Iterator& messagesEnd,
17 const Stamp& stamp);
18 };
19
20 template<typename Iterator>
21 Rss::Rss(const Buddy& buddy, const ext::String& display,
22 const Iterator& messagesBegin, const Iterator& messagesEnd,
23 const Stamp& stamp)
24 {
25 api::FileWriter fout(buddy.getRss() != "-" ? buddy.getRss() : "/dev/null");
26 xml::TextWriter rss(buddy.getRss() != "-" ? fout : api::Cout.GetStream());
27 xml::ScopeElement root(rss, "rss");
28
29 rss.SetAttribute("version", "2.0");
30
31 xml::ScopeElement channel(rss, "channel");
32
33 rss.OpenElement("title");
34 rss.OutputText(display + "'s Away Messages");
35 rss.CloseElement();
36 rss.OpenElement("link");
37 rss.OutputText(buddy.getLink());
38 rss.CloseElement();
39 rss.OpenElement("description");
40 rss.OutputText(display + "'s AIM Away Messages from the past 30 "
41 "days.");
42 rss.CloseElement();
43 rss.OpenElement("lastBuildDate");
44 rss.OutputText(stamp.get822());
45 rss.CloseElement();
46 rss.OpenElement("generator");
47 rss.OutputText(Zoe::generator());
48 rss.CloseElement();
49 rss.OpenElement("docs");
50 rss.OutputText("http://blogs.law.harvard.edu/tech/rss");
51 rss.CloseElement();
52 rss.OpenElement("ttl");
53 rss.OutputText("60");
54 rss.CloseElement();
55
56 for (Iterator message(messagesBegin); message != messagesEnd; ++message)
57 {
58 xml::ScopeElement item(rss, "item");
59
60 rss.OpenElement("link");
61 rss.OutputText(message->getLink(buddy));
62 rss.CloseElement();
63 rss.OpenElement("description");
64 rss.OutputText(*message);
65 rss.CloseElement();
66 rss.OpenElement("guid");
67 rss.OutputText(message->getTag(buddy));
68 rss.CloseElement();
69 rss.OpenElement("pubDate");
70 rss.OutputText(message->getStamp().get822());
71 rss.CloseElement();
72 }
73 }
74
75 #endif // _Rss_hpp_

Properties

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