chore: migrate /vips command to Helix call (#4053)

* feat(helix): create response model for VIP listing

* feat(helix): stub out channel/vips request + handler

* feat(helix): parse VIPs list from data and pass to callback

* feat(helix): handle errors when getting VIP list then pass to callback

* feat(command): add barebones handler for helix-based /vips

* feat(command): provide better /vips output when user is not broadcaster

* chore(format): bulk reformat with clang-format

* chore(changelog): add entry for /vips Helix migration

* fix(helix): use correct method when calling VIP list endpoint

* fix(helix): use correct VIP list endpoint

* chore(tidy): please clang-tidy by marking parameter as unused

* feat(command): display unsorted VIP list returned from Helix API

* feat(settings): clone raid timegate settings for /vips

* feat(command): check /vips timegate setting before execution

* feat(command): handle 0 VIPs from Helix response

* feat(command): sort users alphabetically from Helix VIPs response

* fix(command): highlight users in Helix /vips output to match IRC

* fix(command): replace dynamic /vips error message with hardcoded string

* chore(comment): remove TODO comment that was DONE

* chore(format): bulk reformat using clang-format

* fix(command): send 0 VIP message after creation

* chore: apply suggestions from Felanbird

* fix(helix): change mention of user ban to VIPs in VIP list error message

* feat(helix): distinguish non-broadcaster auth error when getting VIPs

* chore(command): move handling of non-broadcaster /vips usage to API response

* chore(format): re-indent multiline string to get away from 80 char limit

* reformat

* fix tests

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
This commit is contained in:
James Upjohn
2022-10-10 23:56:55 +13:00
committed by GitHub
parent e604a36777
commit ceecc7ef91
7 changed files with 290 additions and 0 deletions
+11
View File
@@ -800,6 +800,17 @@ void GeneralPage::initLayout(GeneralPageView &layout)
helixTimegateWhisper->setMinimumWidth(
helixTimegateWhisper->minimumSizeHint().width());
auto *helixTimegateVIPs =
layout.addDropdown<std::underlying_type<HelixTimegateOverride>::type>(
"Helix timegate /vips behaviour",
{"Timegate", "Always use IRC", "Always use Helix"},
s.helixTimegateVIPs,
helixTimegateGetValue, //
helixTimegateSetValue, //
false);
helixTimegateVIPs->setMinimumWidth(
helixTimegateVIPs->minimumSizeHint().width());
layout.addStretch();
// invisible element for width