diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2f93975..709a7cd 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -37,14 +37,10 @@ jobs: RID=$(curl -sf -X POST -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ "$API/repos/$REPO/releases" \ - -d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false,hide_archive_links:true}')" \ + -d "$(jq -nc --arg t "$TAG" '{tag_name:$t,name:$t,draft:false,prerelease:false}')" \ | jq -r '.id') fi echo "release id: $RID" - # Gitea honors hide_archive_links only on edit, not create — PATCH it - # so the auto-generated Source Code (zip/tar.gz) links stay hidden. - curl -sf -X PATCH -H "Authorization: token $GITEA_TOKEN" -H "Content-Type: application/json" \ - "$API/repos/$REPO/releases/$RID" -d '{"hide_archive_links":true}' >/dev/null || true # Upload every dist/*.zip. Per-asset failures don't fail the job — # we want partial releases to still publish rather than block the # whole pipeline on one big file. diff --git a/Chatter/Chatter.lua b/Chatter/Chatter.lua index 16bc07d..d61232e 100644 --- a/Chatter/Chatter.lua +++ b/Chatter/Chatter.lua @@ -19,9 +19,14 @@ local options = { name = L["Standalone Config"], desc = L["Open a standalone config window. You might consider installing |cffffff00BetterBlizzOptions|r to make the Blizzard UI options panel resizable."], func = function() - if InterfaceOptionsFrame then InterfaceOptionsFrame:Hide() end - AceConfigDialog:SetDefaultSize("Chatter", 500, 550) - AceConfigDialog:Open("Chatter") + if InterfaceOptionsFrame and InterfaceOptionsFrame_OpenToCategory then + InterfaceOptionsFrame:Hide() + AceConfigDialog:SetDefaultSize("Chatter", 500, 550) + AceConfigDialog:Open("Chatter") + else + AceConfigDialog:SetDefaultSize("Chatter", 500, 550) + AceConfigDialog:Open("Chatter") + end end } } diff --git a/Chatter/Localization/enUS.lua b/Chatter/Localization/enUS.lua index 572bfe9..c0ec9fd 100644 --- a/Chatter/Localization/enUS.lua +++ b/Chatter/Localization/enUS.lua @@ -4,12 +4,6 @@ local AceLocale = LibStub:GetLibrary("AceLocale-3.0") local L = AceLocale:NewLocale("Chatter", "enUS", true) if not L then return end --- ./Modules/BroadcastFilter.lua -L["Broadcast Filter"] = true -L["Hidden broadcasts"] = true -L["Hides chat lines from broadcast channels or senders. One entry per line; matching is a case-insensitive substring against the message and its channel/sender."] = true -L["Suppresses spammy server broadcasts such as the Ascension Autobroadcast Discord nag."] = true - -- ./Chatter.lua L["Chatter"] = true L["Standalone Config"] = true diff --git a/Chatter/Modules/BroadcastFilter.lua b/Chatter/Modules/BroadcastFilter.lua deleted file mode 100644 index 6d9d299..0000000 --- a/Chatter/Modules/BroadcastFilter.lua +++ /dev/null @@ -1,109 +0,0 @@ -local mod = Chatter:NewModule("Broadcast Filter", "AceEvent-3.0") -local L = LibStub("AceLocale-3.0"):GetLocale("Chatter") -mod.modName = L["Broadcast Filter"] - -local ipairs = _G.ipairs -local type = _G.type -local select = _G.select -local strlower = _G.string.lower -local strfind = _G.string.find -local gmatch = _G.string.gmatch -local gsub = _G.string.gsub - --- Events the autobroadcast can arrive on. It renders as "[Ascension Autobroadcast]: ..." --- which is a named channel, so CHAT_MSG_CHANNEL is the primary one; SYSTEM and --- RAID_WARNING are belt-and-suspenders for other server broadcast styles. -local events = { - "CHAT_MSG_CHANNEL", - "CHAT_MSG_CHANNEL_NOTICE", - "CHAT_MSG_SYSTEM", - "CHAT_MSG_RAID_WARNING", -} - -local defaults = { - profile = { - patterns = "Ascension Autobroadcast", - } -} - --- Lowercased, trimmed, non-empty lines from the user's textbox. -local activePatterns = {} -local function rebuild() - for i = #activePatterns, 1, -1 do activePatterns[i] = nil end - for line in gmatch(mod.db.profile.patterns or "", "[^\r\n]+") do - line = gsub(gsub(line, "^%s+", ""), "%s+$", "") - if line ~= "" then activePatterns[#activePatterns + 1] = strlower(line) end - end -end - --- Returns true to suppress. For a channel message the channel name ("Ascension --- Autobroadcast") is not in the body but in a later arg, so scan the body and --- every string vararg with a case-insensitive plain substring match. -mod.filterFunc = function(frame, event, msg, ...) - local n = #activePatterns - if n == 0 then return false end - - if msg and msg ~= "" then - local m = strlower(msg) - for i = 1, n do - if strfind(m, activePatterns[i], 1, true) then return true end - end - end - - for i = 1, select("#", ...) do - local v = select(i, ...) - if type(v) == "string" and v ~= "" then - v = strlower(v) - for j = 1, n do - if strfind(v, activePatterns[j], 1, true) then return true end - end - end - end - - return false -end - -local options = { - desc = { - order = 1, - type = "description", - name = L["Hides chat lines from broadcast channels or senders. One entry per line; matching is a case-insensitive substring against the message and its channel/sender."], - }, - patterns = { - order = 2, - type = "input", - multiline = 8, - width = "full", - name = L["Hidden broadcasts"], - get = function() return mod.db.profile.patterns end, - set = function(info, v) - mod.db.profile.patterns = v - rebuild() - end, - }, -} - -function mod:OnInitialize() - self.db = Chatter.db:RegisterNamespace("BroadcastFilter", defaults) -end - -function mod:OnEnable() - rebuild() - for _, event in ipairs(events) do - ChatFrame_AddMessageEventFilter(event, self.filterFunc) - end -end - -function mod:OnDisable() - for _, event in ipairs(events) do - ChatFrame_RemoveMessageEventFilter(event, self.filterFunc) - end -end - -function mod:Info() - return L["Suppresses spammy server broadcasts such as the Ascension Autobroadcast Discord nag."] -end - -function mod:GetOptions() - return options -end diff --git a/Chatter/modules.xml b/Chatter/modules.xml index 1abcf2d..a154bd6 100644 --- a/Chatter/modules.xml +++ b/Chatter/modules.xml @@ -7,7 +7,6 @@