summaryrefslogtreecommitdiff
path: root/src/database
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2016-08-22 00:44:17 +0200
committerlouiz’ <louiz@louiz.org>2016-08-22 00:44:17 +0200
commitd1626c929f1d313c2f0f85b7d8b756a8d488d1dc (patch)
treec3f4e4c18fbd69cf119d09e51f9c43b9da932b87 /src/database
parent593b3268273cac2fa58257ee8e51ce1a6de30872 (diff)
downloadbiboumi-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.cpp9
-rw-r--r--src/database/database.hpp2
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);