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

Comparing trunk/Publisher.cpp (file contents):
Revision 25 by douglas, 2004-07-17T16:29:02-07:00 vs.
Revision 32 by douglas, 2004-07-20T00:40:43-07:00

# Line 22 | Line 22 | int Publisher::publish()
22  
23          // publish
24  
25 <        Buddy buddy(*buddies.find(ext::String("douglaswth")));
26 <        std::vector<AwayMessage> messages;
25 >        while (true)
26 >        {
27 >                Stamp start, now;
28  
29 <        messages.push_back(AwayMessage("<font size=3>Ice Cream!</font> :-D",
29 <                ext::String("Sat, 17 Jul 2004 20:45:32 GMT")));
30 <        messages.push_back(AwayMessage(ext::String("<font size=3>Apparently, I hav")
31 <                + "e left my computer, isn't that strange?</font> :-P", ext::String('S')
32 <                + "at, 17 Jul 2004 21:39:13 GMT"));
29 >                update();
30  
31 <        Rss rss(buddy, messages);
31 >                do
32 >                {
33 >                        sleep(Minute(1));
34 >
35 >                        now = Stamp();
36 >                }
37 >                while (now < start + Hour(1));
38 >        }
39 > }
40 >
41 > void Publisher::update()
42 > {
43 >        cerr << bright << yellow << "Publisher::update()\n" << reset;
44 >
45 >        Stamp stamp;
46 >        ext::Handle<dbi::Connection> db(dbi::Connect(database.driver, database.host,
47 >                database.user, database.password, database.db));
48 >
49 >        db->Execute("DELETE FROM messages WHERE stamp<'" + (stamp - Day(30)) + "'");
50 >
51 >        for (std::set<Buddy>::const_iterator buddy(buddies.begin()); buddy !=
52 >                buddies.end(); ++buddy)
53 >        {
54 >                ext::Handle<dbi::ResultSet> messages(db->Execute(ext::String("SELECT s")
55 >                        + "tamp, message FROM messages WHERE id='" +
56 >                        lexical_cast<ext::String>(buddy->getId()) + "'"));
57 >                std::vector<AwayMessage> messages_;
58 >
59 >                while (messages->MoveNext())
60 >                        messages_.push_back(AwayMessage(messages->GetString("message"),
61 >                        messages->GetString("stamp")));
62 >
63 >                Rss rss(*buddy, messages_, stamp);
64 >        }
65   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines