ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/zoe/trunk/Rss.hpp
(Generate patch)

Comparing trunk/Rss.hpp (file contents):
Revision 34 by douglas, 2004-07-20T16:49:06-07:00 vs.
Revision 55 by douglas, 2004-09-01T02:41:10-07:00

# Line 9 | Line 9
9  
10   #include "AwayMessage.hpp"
11  
12 < struct Rss { Rss(const Buddy& buddy, const std::vector<AwayMessage>& messages, const Stamp& stamp); };
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_

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines