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 49 by douglas, 2004-08-19T16:44:47-07:00 vs.
Revision 51 by douglas, 2004-08-23T15:03:41-07:00

# Line 11 | Line 11
11  
12   struct Rss
13   {
14 <        Rss(const Buddy& buddy, const ext::String& display, const std::vector<AwayMessage>& messages, const Stamp& stamp);
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::FileOutputStream 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