summaryrefslogtreecommitdiff
path: root/modules/webcpanel
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-03-11 13:53:05 +0000
committerSadie Powell <sadie@witchery.services>2024-03-11 19:17:29 +0000
commit29e7674e56bf2b829bba22def2760d034a76e788 (patch)
treef40049ba995b03dd7c510d88f9f19db2d2e65a2e /modules/webcpanel
parente2df7d4d01f8fdb41c49ce8efc462cab005e7d5c (diff)
Replace convertTo/stringify with non-throwing alternatives.
Having these throw is terrible for ergonomics and there are loads of places where the exception was either silently ignored or not handled at all. Having a function which returns an optional and another that returns a default works a lot better imo.
Diffstat (limited to 'modules/webcpanel')
-rw-r--r--modules/webcpanel/pages/memoserv/memos.cpp12
-rw-r--r--modules/webcpanel/pages/nickserv/alist.cpp4
-rw-r--r--modules/webcpanel/pages/operserv/akill.cpp2
3 files changed, 7 insertions, 11 deletions
diff --git a/modules/webcpanel/pages/memoserv/memos.cpp b/modules/webcpanel/pages/memoserv/memos.cpp
index 7eec4ec02..d7fb76d74 100644
--- a/modules/webcpanel/pages/memoserv/memos.cpp
+++ b/modules/webcpanel/pages/memoserv/memos.cpp
@@ -73,14 +73,10 @@ bool WebCPanel::MemoServ::Memos::OnRequest(HTTPProvider *server, const Anope::st
std::vector<Anope::string> params;
int number = -1;
- try
- {
- number = convertTo<int>(message.get_data["number"]);
- }
- catch (const ConvertException &ex)
- {
+ if (auto num = Anope::TryConvert<int>(message.get_data["number"]))
+ number = num.value();
+ else
replacements["MESSAGES"] = "ERROR - invalid parameter for NUMBER";
- }
if (number > 0)
{
@@ -98,7 +94,7 @@ bool WebCPanel::MemoServ::Memos::OnRequest(HTTPProvider *server, const Anope::st
for (unsigned i = 0; i < mi->memos->size(); ++i)
{
m = mi->GetMemo(i);
- replacements["NUMBER"] = stringify(i+1);
+ replacements["NUMBER"] = Anope::ToString(i+1);
replacements["SENDER"] = m->sender;
replacements["TIME"] = Anope::strftime(m->time);
replacements["TEXT"] = m->text;
diff --git a/modules/webcpanel/pages/nickserv/alist.cpp b/modules/webcpanel/pages/nickserv/alist.cpp
index ddc394962..48c61d83e 100644
--- a/modules/webcpanel/pages/nickserv/alist.cpp
+++ b/modules/webcpanel/pages/nickserv/alist.cpp
@@ -30,7 +30,7 @@ bool WebCPanel::NickServ::Alist::OnRequest(HTTPProvider *server, const Anope::st
{
++chan_count;
- replacements["NUMBERS"] = stringify(chan_count);
+ replacements["NUMBERS"] = Anope::ToString(chan_count);
replacements["CHANNELS"] = (ci->HasExt("CS_NO_EXPIRE") ? "!" : "") + ci->name;
replacements["ACCESSES"] = "Founder";
continue;
@@ -42,7 +42,7 @@ bool WebCPanel::NickServ::Alist::OnRequest(HTTPProvider *server, const Anope::st
++chan_count;
- replacements["NUMBERS"] = stringify(chan_count);
+ replacements["NUMBERS"] = Anope::ToString(chan_count);
replacements["CHANNELS"] = (ci->HasExt("CS_NO_EXPIRE") ? "!" : "") + ci->name;
const ChanAccess *highest = access.Highest();
diff --git a/modules/webcpanel/pages/operserv/akill.cpp b/modules/webcpanel/pages/operserv/akill.cpp
index 424635f94..c7cb8ab9a 100644
--- a/modules/webcpanel/pages/operserv/akill.cpp
+++ b/modules/webcpanel/pages/operserv/akill.cpp
@@ -48,7 +48,7 @@ bool WebCPanel::OperServ::Akill::OnRequest(HTTPProvider *server, const Anope::st
for (unsigned i = 0, end = akills->GetCount(); i < end; ++i)
{
const XLine *x = akills->GetEntry(i);
- replacements["NUMBER"] = stringify(i + 1);
+ replacements["NUMBER"] = Anope::ToString(i + 1);
replacements["HOST"] = x->mask;
replacements["SETTER"] = x->by;
replacements["TIME"] = Anope::strftime(x->created, NULL, true);