diff options
author | louiz’ <louiz@louiz.org> | 2016-08-22 00:44:17 +0200 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2016-08-22 00:44:17 +0200 |
commit | d1626c929f1d313c2f0f85b7d8b756a8d488d1dc (patch) | |
tree | c3f4e4c18fbd69cf119d09e51f9c43b9da932b87 /src/database | |
parent | 593b3268273cac2fa58257ee8e51ce1a6de30872 (diff) | |
download | biboumi-d1626c929f1d313c2f0f85b7d8b756a8d488d1dc.tar.gz biboumi-d1626c929f1d313c2f0f85b7d8b756a8d488d1dc.tar.bz2 biboumi-d1626c929f1d313c2f0f85b7d8b756a8d488d1dc.tar.xz biboumi-d1626c929f1d313c2f0f85b7d8b756a8d488d1dc.zip |
When joining a channel, send the most recent history found in the database
Diffstat (limited to 'src/database')
-rw-r--r-- | src/database/database.cpp | 9 | ||||
-rw-r--r-- | src/database/database.hpp | 2 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/database/database.cpp b/src/database/database.cpp index fce0f45..48cdea8 100644 --- a/src/database/database.cpp +++ b/src/database/database.cpp @@ -136,6 +136,15 @@ void Database::store_muc_message(const std::string& owner, const Iid& iid, line.update(); } +std::vector<db::MucLogLine> Database::get_muc_logs(const std::string& owner, const std::string& chan_name, const std::string& server, const int limit) +{ + auto res = litesql::select<db::MucLogLine>(*Database::db, + db::MucLogLine::Owner == owner && + db::MucLogLine::IrcChanName == chan_name && + db::MucLogLine::IrcServerName == server).orderBy(db::MucLogLine::Date, false).limit(limit).all(); + return {res.rbegin(), res.rend()}; +} + void Database::close() { Database::db.reset(nullptr); diff --git a/src/database/database.hpp b/src/database/database.hpp index d1be2fd..14012ff 100644 --- a/src/database/database.hpp +++ b/src/database/database.hpp @@ -48,6 +48,8 @@ public: static db::IrcChannelOptions get_irc_channel_options_with_server_and_global_default(const std::string& owner, const std::string& server, const std::string& channel); + static std::vector<db::MucLogLine> get_muc_logs(const std::string& owner, const std::string& chan_name, const std::string& server, + const int limit); static void store_muc_message(const std::string& owner, const Iid& iid, time_point date, const std::string& body, const std::string& nick); |