Add default values for the database columns
This commit is contained in:
@@ -23,12 +23,14 @@ static std::string in_encoding_for(const Bridge& bridge, const Iid& iid)
|
|||||||
#ifdef USE_DATABASE
|
#ifdef USE_DATABASE
|
||||||
const auto jid = bridge.get_bare_jid();
|
const auto jid = bridge.get_bare_jid();
|
||||||
auto options = Database::get_irc_channel_options_with_server_default(jid, iid.get_server(), iid.get_local());
|
auto options = Database::get_irc_channel_options_with_server_default(jid, iid.get_server(), iid.get_local());
|
||||||
return options.col<Database::EncodingIn>();
|
auto result = options.col<Database::EncodingIn>();
|
||||||
|
if (!result.empty())
|
||||||
|
return result;
|
||||||
#else
|
#else
|
||||||
(void)bridge;
|
(void)bridge;
|
||||||
(void)iid;
|
(void)iid;
|
||||||
return {"ISO-8859-1"};
|
|
||||||
#endif
|
#endif
|
||||||
|
return {"ISO-8859-1"};
|
||||||
}
|
}
|
||||||
|
|
||||||
Bridge::Bridge(std::string user_jid, BiboumiComponent& xmpp, std::shared_ptr<Poller>& poller):
|
Bridge::Bridge(std::string user_jid, BiboumiComponent& xmpp, std::shared_ptr<Poller>& poller):
|
||||||
|
|||||||
@@ -5,8 +5,12 @@
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct Column
|
struct Column
|
||||||
{
|
{
|
||||||
|
Column(T default_value):
|
||||||
|
value{default_value} {}
|
||||||
|
Column():
|
||||||
|
value{} {}
|
||||||
using real_type = T;
|
using real_type = T;
|
||||||
T value;
|
T value{};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Id: Column<std::size_t> { static constexpr auto name = "id_";
|
struct Id: Column<std::size_t> { static constexpr auto name = "id_";
|
||||||
|
|||||||
@@ -49,10 +49,12 @@ class Database
|
|||||||
static constexpr auto options = ""; };
|
static constexpr auto options = ""; };
|
||||||
|
|
||||||
struct Ports: Column<std::string> { static constexpr auto name = "tlsPorts_";
|
struct Ports: Column<std::string> { static constexpr auto name = "tlsPorts_";
|
||||||
static constexpr auto options = ""; };
|
static constexpr auto options = "";
|
||||||
|
Ports(): Column<std::string>("6667") {}};
|
||||||
|
|
||||||
struct TlsPorts: Column<std::string> { static constexpr auto name = "ports_";
|
struct TlsPorts: Column<std::string> { static constexpr auto name = "ports_";
|
||||||
static constexpr auto options = ""; };
|
static constexpr auto options = "";
|
||||||
|
TlsPorts(): Column<std::string>("6697;6670") {} };
|
||||||
|
|
||||||
struct Username: Column<std::string> { static constexpr auto name = "username_";
|
struct Username: Column<std::string> { static constexpr auto name = "username_";
|
||||||
static constexpr auto options = ""; };
|
static constexpr auto options = ""; };
|
||||||
@@ -73,16 +75,20 @@ class Database
|
|||||||
static constexpr auto options = ""; };
|
static constexpr auto options = ""; };
|
||||||
|
|
||||||
struct MaxHistoryLength: Column<int> { static constexpr auto name = "maxHistoryLength_";
|
struct MaxHistoryLength: Column<int> { static constexpr auto name = "maxHistoryLength_";
|
||||||
static constexpr auto options = ""; };
|
static constexpr auto options = "";
|
||||||
|
MaxHistoryLength(): Column<int>(20) {} };
|
||||||
|
|
||||||
struct RecordHistory: Column<bool> { static constexpr auto name = "recordHistory_";
|
struct RecordHistory: Column<bool> { static constexpr auto name = "recordHistory_";
|
||||||
static constexpr auto options = ""; };
|
static constexpr auto options = "";
|
||||||
|
RecordHistory(): Column<bool>(true) {}};
|
||||||
|
|
||||||
struct VerifyCert: Column<bool> { static constexpr auto name = "verifyCert_";
|
struct VerifyCert: Column<bool> { static constexpr auto name = "verifyCert_";
|
||||||
static constexpr auto options = ""; };
|
static constexpr auto options = "";
|
||||||
|
VerifyCert(): Column<bool>(true) {} };
|
||||||
|
|
||||||
struct Persistent: Column<bool> { static constexpr auto name = "persistent_";
|
struct Persistent: Column<bool> { static constexpr auto name = "persistent_";
|
||||||
static constexpr auto options = ""; };
|
static constexpr auto options = "";
|
||||||
|
Persistent(): Column<bool>(false) {} };
|
||||||
|
|
||||||
using MucLogLineTable = Table<Id, Uuid, Owner, IrcChanName, IrcServerName, Date, Body, Nick>;
|
using MucLogLineTable = Table<Id, Uuid, Owner, IrcChanName, IrcServerName, Date, Body, Nick>;
|
||||||
using MucLogLine = MucLogLineTable::RowType;
|
using MucLogLine = MucLogLineTable::RowType;
|
||||||
|
|||||||
@@ -2417,7 +2417,7 @@ if __name__ == '__main__':
|
|||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='username']",
|
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='username']",
|
||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='realname']",
|
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='realname']",
|
||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_in']",
|
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_in']",
|
||||||
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_out']/dataform:value[text()='ISO-8859-1']",
|
"/iq/commands:command/dataform:x[@type='form']/dataform:field[@type='text-single'][@var='encoding_out']",
|
||||||
"/iq/commands:command/commands:actions/commands:next",
|
"/iq/commands:command/commands:actions/commands:next",
|
||||||
),
|
),
|
||||||
after = partial(save_value, "sessionid", partial(extract_attribute, "/iq[@type='result']/commands:command[@node='configure']", "sessionid"))
|
after = partial(save_value, "sessionid", partial(extract_attribute, "/iq[@type='result']/commands:command[@node='configure']", "sessionid"))
|
||||||
|
|||||||
Reference in New Issue
Block a user