diff options
| author | Sadie Powell <sadie@witchery.services> | 2024-03-11 13:53:05 +0000 |
|---|---|---|
| committer | Sadie Powell <sadie@witchery.services> | 2024-03-11 19:17:29 +0000 |
| commit | 29e7674e56bf2b829bba22def2760d034a76e788 (patch) | |
| tree | f40049ba995b03dd7c510d88f9f19db2d2e65a2e /modules/webcpanel | |
| parent | e2df7d4d01f8fdb41c49ce8efc462cab005e7d5c (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.cpp | 12 | ||||
| -rw-r--r-- | modules/webcpanel/pages/nickserv/alist.cpp | 4 | ||||
| -rw-r--r-- | modules/webcpanel/pages/operserv/akill.cpp | 2 |
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); |
