From b279d187ca6e706704fed73b4d8dcc604142d54d Mon Sep 17 00:00:00 2001 From: Aaron Kimbrell Date: Wed, 30 Sep 2026 08:05:00 -0500 Subject: [PATCH] fix(chat-filter): shipped blocklist.dcf in the portable format The shipped list's hashes are 64-bit FNV-1a (checked against a sample of its words), so it is written again as version 3: same hashes, duplicates dropped, sorted. Nothing else changes; it can be replaced by building from blocklist.txt. issue 215 Co-Authored-By: Claude Opus 5.5 --- resources/blocklist.dcf | Bin 16160 -> 12876 bytes tests/dCommonTests/ChatFilterCoreTests.cpp | 9 +++++++++ 2 files changed, 9 insertions(+) diff --git a/resources/blocklist.dcf b/resources/blocklist.dcf index ca4db242aa20dbc20082100845e658ab7d958bb6..600443337b2f26819bb234bdefce0c48ed592b73 100644 GIT binary patch literal 12876 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 diff --git a/tests/dCommonTests/ChatFilterCoreTests.cpp b/tests/dCommonTests/ChatFilterCoreTests.cpp index 50b66590b..b4c7f71b1 100644 --- a/tests/dCommonTests/ChatFilterCoreTests.cpp +++ b/tests/dCommonTests/ChatFilterCoreTests.cpp @@ -147,3 +147,12 @@ TEST(ChatFilterCoreTest, DashboardPhrasesInWhitelistChat) { lists.customAllowed.AddEntry("stranger"); EXPECT_TRUE(CheckMessage("hello stranger", true, lists).empty()); } + +TEST(ChatFilterCoreTest, ShippedBlockListIsPortable) { + const auto parsed = dChatFilterDCF::ReadFile(std::string(DLU_SOURCE_DIR) + "/resources/blocklist.dcf"); + ASSERT_EQ(parsed.status, dChatFilterDCF::eStatus::OK); + Lists lists; + lists.denied = parsed.list; + EXPECT_EQ(CheckMessage("what crap", false, lists), (Spans{ { 5, 4 } })); + EXPECT_TRUE(CheckMessage("hello there", false, lists).empty()); +}