30 |
|
|
31 |
|
int Collector::collect() |
32 |
|
{ |
33 |
< |
cerr << bright << green << "Started collector daemon at " << Stamp() |
33 |
> |
api::Cerr << bright << green << "Started collector daemon at " << Stamp() |
34 |
|
<< ".\n" << reset; |
35 |
|
|
36 |
|
net::Oscar::Session session; |
91 |
|
|
92 |
|
if (!ext::String(message).IsEmpty()) // XXX |
93 |
|
{ |
94 |
< |
if (Zoe::debug) cerr << "buddy = " << buddy << "\nmessage = " << message |
95 |
< |
<< '\n'; |
94 |
> |
if (Zoe::debug) api::Cerr << "buddy = " << buddy << "\nmessage = " |
95 |
> |
<< message << "\n"; |
96 |
|
|
97 |
|
ext::Handle<dbi::Driver> driver(dbi::GetDriver(database.driver)); |
98 |
|
ext::Handle<dbi::Connection> db(driver->Connect(database.host, |
99 |
|
database.user, database.password, database.db)); |
100 |
< |
ext::Handle<dbi::ResultSet> previous(db->Execute("SELECT message " |
101 |
< |
"FROM messages WHERE stamp=(SELECT MAX(stamp) FROM messages " |
102 |
< |
"WHERE id='" + lexical_cast<ext::String>(buddy.getId()) |
103 |
< |
+ "') AND id='" + lexical_cast<ext::String>(buddy.getId()) + "'")); |
100 |
> |
ext::Handle<dbi::ResultSet> previous(db->Execute(ios::String() |
101 |
> |
<< "SELECT message FROM messages WHERE stamp=(SELECT MAX(stamp) " |
102 |
> |
<< "FROM messages WHERE id='" << buddy.getId() << "') AND id='" |
103 |
> |
<< buddy.getId() << "'")); |
104 |
|
|
105 |
|
if (previous->MoveNext()) |
106 |
|
{ |
107 |
|
if (ext::String(message) == previous->GetString("message")) return; |
108 |
|
} |
109 |
|
|
110 |
< |
db->Execute("INSERT INTO messages (stamp, message, id) VALUES ('" |
111 |
< |
+ ext::String(message.getStamp()) + "', '" + db->Escape(message) |
112 |
< |
+ "', '" + lexical_cast<ext::String>(buddy.getId()) + "')"); |
110 |
> |
db->Execute(ios::String() << "INSERT INTO messages (stamp, message, id)" |
111 |
> |
<< " VALUES ('" << message.getStamp() << "', '" |
112 |
> |
<< db->Escape(message) << "', '" << buddy.getId() << "')"); |
113 |
|
|
114 |
< |
cerr << bright << red << "Collected away message from " << blue << buddy |
115 |
< |
<< red << " at " << Stamp() << ".\n" << reset; |
114 |
> |
api::Cerr << bright << red << "Collected away message from " << blue |
115 |
> |
<< buddy << red << " at " << Stamp() << ".\n" << reset; |
116 |
|
} |
117 |
|
|
118 |
|
if (user.screenname != buddy.getDisplay(database)) |
127 |
|
|
128 |
|
void Collector::receive(const ext::String& buddy, const ext::String& message) |
129 |
|
{ |
130 |
< |
if (Zoe::debug) cerr << "buddy = " << Buddy(buddy) << "\nmessage = " |
131 |
< |
<< message << '\n'; |
130 |
> |
if (Zoe::debug) api::Cerr << "buddy = " << Buddy(buddy) << "\nmessage = " |
131 |
> |
<< message << "\n"; |
132 |
|
|
133 |
|
if (buddies.find(buddy) != buddies.end()) |
134 |
|
{ |