From 10c793667b2d5722425129ddf7cc885b06b3a8fc Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 09:29:16 +0900 Subject: [PATCH 01/10] pick up type annotation --- lua/wikis/commons/Widget/Tournaments/Ticker.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker.lua b/lua/wikis/commons/Widget/Tournaments/Ticker.lua index 4e7909521b8..3587cc5f7d2 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker.lua @@ -23,7 +23,6 @@ local Tournament = Lua.import('Module:Tournament') ---@class TournamentsTickerWidget: Widget ---@operator call(table): TournamentsTickerWidget - local TournamentsTickerWidget = Class.new(Widget) TournamentsTickerWidget.defaultProps = { upcomingDays = 5, From ce751957430fd50c381f9e69ea544ab03409bae2 Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 09:31:32 +0900 Subject: [PATCH 02/10] use neq --- lua/wikis/commons/Widget/Tournaments/Ticker.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker.lua b/lua/wikis/commons/Widget/Tournaments/Ticker.lua index 3587cc5f7d2..1684462cc87 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker.lua @@ -75,7 +75,7 @@ function TournamentsTickerWidget:render() :add(Condition.Node(Condition.ColumnName('status'), Condition.Comparator.eq, '')) :add(Condition.Node(Condition.ColumnName('status'), Condition.Comparator.eq, 'finished')) ) - :add(Condition.Node(Condition.ColumnName('liquipediatiertype'), Condition.Comparator.eq, '!Points')) + :add(Condition.Node(Condition.ColumnName('liquipediatiertype'), Condition.Comparator.neq, 'Points')) local allTournaments = Tournament.getAllTournaments(lpdbFilter, function(tournament) return isWithinDateRange(tournament) From 4d7908efc6e3d5d5b1f3bf11b3ee5ef8948879d8 Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 09:34:12 +0900 Subject: [PATCH 03/10] clean up condition building --- lua/wikis/commons/Widget/Tournaments/Ticker.lua | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker.lua b/lua/wikis/commons/Widget/Tournaments/Ticker.lua index 1684462cc87..9200d2b0e23 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker.lua @@ -70,12 +70,10 @@ function TournamentsTickerWidget:render() return false end - local lpdbFilter = Condition.Tree(Condition.BooleanOperator.all) - :add(Condition.Tree(Condition.BooleanOperator.any) - :add(Condition.Node(Condition.ColumnName('status'), Condition.Comparator.eq, '')) - :add(Condition.Node(Condition.ColumnName('status'), Condition.Comparator.eq, 'finished')) - ) - :add(Condition.Node(Condition.ColumnName('liquipediatiertype'), Condition.Comparator.neq, 'Points')) + local lpdbFilter = Condition.Tree(Condition.BooleanOperator.all):add{ + Condition.Util.anyOf(Condition.ColumnName('status'), {'', 'finished'}), + Condition.Node(Condition.ColumnName('liquipediatiertype'), Condition.Comparator.neq, 'Points') + } local allTournaments = Tournament.getAllTournaments(lpdbFilter, function(tournament) return isWithinDateRange(tournament) From 38e53a9cdba19ee2e38b6ab022ef35ecb1a34d96 Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 09:44:16 +0900 Subject: [PATCH 04/10] type annotations --- lua/wikis/commons/Widget/Tournaments/Ticker.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker.lua b/lua/wikis/commons/Widget/Tournaments/Ticker.lua index 9200d2b0e23..96220637354 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker.lua @@ -49,6 +49,9 @@ function TournamentsTickerWidget:render() } local currentTimestamp = DateExt.getCurrentTimestamp() + + ---@param tournament StandardTournament + ---@return boolean local function isWithinDateRange(tournament) local modifiedThreshold = tierThresholdModifiers[tournament.liquipediaTier] or 0 local modifiedCompletedThreshold = tierTypeThresholdModifiers[tournament.liquipediaTierType] or modifiedThreshold @@ -105,6 +108,9 @@ function TournamentsTickerWidget:render() return nil end + ---@param a StandardTournament + ---@param b StandardTournament + ---@return boolean local function sortByDate(a, b) local endDateSort = sortByDateProperty(a, b, 'endDate', Operator.gt) if endDateSort ~= nil then @@ -117,6 +123,9 @@ function TournamentsTickerWidget:render() return a.pageName < b.pageName end + ---@param a StandardTournament + ---@param b StandardTournament + ---@return boolean local function sortByDateUpcoming(a, b) local endDateSort = sortByDateProperty(a, b, 'startDate', Operator.gt) if endDateSort ~= nil then From 21033ae6ec2803932639029eda3ae25ddb1d335b Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 09:54:52 +0900 Subject: [PATCH 05/10] type annotations --- lua/wikis/commons/Widget/Tournaments/Ticker.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker.lua b/lua/wikis/commons/Widget/Tournaments/Ticker.lua index 96220637354..a1c22dc7a8e 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker.lua @@ -82,6 +82,8 @@ function TournamentsTickerWidget:render() return isWithinDateRange(tournament) end) + ---@param phase TournamentPhase + ---@return fun(tournament: StandardTournament): boolean local function filterByPhase(phase) return function(tournament) return tournament.phase == phase @@ -91,7 +93,8 @@ function TournamentsTickerWidget:render() ---@param a StandardTournament ---@param b StandardTournament ---@param dateProperty 'endDate' | 'startDate' - ---@param operator fun(a: StandardTournament, b: StandardTournament): boolean + ---@param operator fun(a: integer, b: integer): boolean + ---@return boolean? local function sortByDateProperty(a, b, dateProperty, operator) if not a[dateProperty] and not b[dateProperty] then return nil From d2345a958ca690926113613988b81b31d44a4409 Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 09:59:41 +0900 Subject: [PATCH 06/10] pick up type annotation --- lua/wikis/commons/Widget/Tournament/TierPill.lua | 1 - lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua | 1 - 2 files changed, 2 deletions(-) diff --git a/lua/wikis/commons/Widget/Tournament/TierPill.lua b/lua/wikis/commons/Widget/Tournament/TierPill.lua index d8f410864fb..fe7c3b56829 100644 --- a/lua/wikis/commons/Widget/Tournament/TierPill.lua +++ b/lua/wikis/commons/Widget/Tournament/TierPill.lua @@ -15,7 +15,6 @@ local HtmlWidgets = Lua.import('Module:Widget/Html/All') ---@class TournamentsTickerPillWidget: Widget ---@operator call(table): TournamentsTickerPillWidget - local TournamentsTickerPillWidget = Class.new(Widget) local COLOR_CLASSES = { diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua index 4d00ed8547a..0199c09f8b6 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua @@ -17,7 +17,6 @@ local FilterConfig = Lua.import('Module:FilterButtons/Config') ---@class TournamentsTickerSublistWidget: Widget ---@operator call(table): TournamentsTickerSublistWidget - local TournamentsTickerSublistWidget = Class.new(Widget) ---@return Widget? From dc08f908dfa190c44a67bb2c79974d3096c12789 Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 10:11:40 +0900 Subject: [PATCH 07/10] type annotate sublist props --- lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua index 0199c09f8b6..16adc04fb33 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua @@ -15,8 +15,14 @@ local HtmlWidgets = Lua.import('Module:Widget/Html/All') local TournamentLabel = Lua.import('Module:Widget/Tournament/Label') local FilterConfig = Lua.import('Module:FilterButtons/Config') +---@class TournamentsTickerSublistWidgetProps +---@field title string +---@field tournaments StandardTournament[] +---@field displayGameIcons boolean + ---@class TournamentsTickerSublistWidget: Widget ----@operator call(table): TournamentsTickerSublistWidget +---@operator call(TournamentsTickerSublistWidgetProps): TournamentsTickerSublistWidget +---@field props TournamentsTickerSublistWidgetProps local TournamentsTickerSublistWidget = Class.new(Widget) ---@return Widget? From 688d767922d15e6433b9ef98d4eaccd1ddaa7eea Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 10:13:06 +0900 Subject: [PATCH 08/10] type annotate local function --- lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua index 16adc04fb33..d13d1bcd0df 100644 --- a/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua +++ b/lua/wikis/commons/Widget/Tournaments/Ticker/Sublist.lua @@ -31,6 +31,9 @@ function TournamentsTickerSublistWidget:render() return end + ---@param tournament StandardTournament + ---@param child Widget + ---@return Widget local createFilterWrapper = function(tournament, child) return Array.reduce(FilterConfig.categories, function(prev, filterCategory) local itemIsValid = filterCategory.itemIsValid or function(item) return true end From 8a4f03a8d1fbe00df8bb7c58ee813bf9d4a509dd Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 10:14:14 +0900 Subject: [PATCH 09/10] remove redundant indent --- lua/wikis/commons/Widget/Tournament/Label.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lua/wikis/commons/Widget/Tournament/Label.lua b/lua/wikis/commons/Widget/Tournament/Label.lua index bfdc72b8c56..6c372641f29 100644 --- a/lua/wikis/commons/Widget/Tournament/Label.lua +++ b/lua/wikis/commons/Widget/Tournament/Label.lua @@ -46,11 +46,9 @@ function TournamentsTickerLabelWidget:render() css = { ['padding-left'] = self.props.displayGameIcon and '50px' or '25px', }, - children = { - Title{ - tournament = tournament, - displayGameIcon = self.props.displayGameIcon - } + children = Title{ + tournament = tournament, + displayGameIcon = self.props.displayGameIcon }, }, HtmlWidgets.Small{ From 33e786506fd62636284053f8897f79e945ad19b6 Mon Sep 17 00:00:00 2001 From: ElectricalBoy <15651807+ElectricalBoy@users.noreply.github.com> Date: Mon, 29 Dec 2025 10:15:05 +0900 Subject: [PATCH 10/10] remove redundant Fragment widget --- lua/wikis/commons/Widget/Tournament/Title.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lua/wikis/commons/Widget/Tournament/Title.lua b/lua/wikis/commons/Widget/Tournament/Title.lua index 22d2978367c..7ada66e830b 100644 --- a/lua/wikis/commons/Widget/Tournament/Title.lua +++ b/lua/wikis/commons/Widget/Tournament/Title.lua @@ -25,14 +25,14 @@ local Link = Lua.import('Module:Widget/Basic/Link') ---@field props TournamentTitleProps local TournamentTitleWidget = Class.new(Widget) ----@return Widget? +---@return Widget[]? function TournamentTitleWidget:render() local tournament = self.props.tournament if not tournament then return end - return HtmlWidgets.Fragment{children = WidgetUtil.collect( + return WidgetUtil.collect( self.props.displayGameIcon and Game.icon{ game = tournament.game, noLink = true, @@ -62,7 +62,7 @@ function TournamentTitleWidget:render() }, } } - )} + ) end return TournamentTitleWidget