mirror of
https://github.com/kuhyx/signal-bot.git
synced 2026-11-10 17:07:40 +01:00
!sztuka posts a work of art, skewed 60% Polish; !wiersz posts one short public-domain Polish poem, whole. Both follow the rule the rest of the bot already keeps: the repository commits identifiers, and the words arrive over the wire when somebody asks. !wiersz was written the other way first, and the gate caught it. A pack of short public-domain poems was harvested, name-filtered and committed, and check_personal_data.sh refused it: three lines carried a real group member's given name, and two still did after a filter that had discarded 31% of the corpus. That is structural, not a tuning problem -- Polish verse capitalises every line, so a line-initial capital carries no signal, and that is exactly where a name sits. The pack now holds Wolne Lektury slugs; the poem, its title and its author are fetched at post time and appear nowhere in git. It is also the better version: with no name filter there are no false positives, so the pool is larger and the attribution is a full name again. The gate then refused the art category list too, over a painter whose given name is somebody's. That is the popes.json case exactly, so it takes the same answer: a file-scoped allowlist entry, still refused everywhere else. The Commons harvest is now three modules by what they are, not by where the line count fell: commons_api is the conversation with Commons, commons_harvest turns categories into a pool of licensed page ids, commons_cache makes an interrupted run resumable. Along the way it gained licences in the same request that lists a category (the second pass was 1,500 requests at 2.3s each), maxlag instead of a guessed sleep, 5xx retries because one 504 used to destroy a whole run, and Wikidata for works by creators of Polish citizenship: the Polish pool grew 15,221 -> 20,092. Batching categories through CirrusSearch looked like a further 6x and was measured out again: 2,404 files where the authoritative enumeration returns 2,429, a different ~1% missing on every run. The offline run is 19s where it was four minutes, almost all of it the deafness gate waiting out three thirty-second liveness probes to prove something provable in three; the tick is configuration now, and e2e enforces a 40s budget on itself so that never silently comes back.
94 lines
3.9 KiB
Plaintext
94 lines
3.9 KiB
Plaintext
# Values this public repository is allowed to contain.
|
|
#
|
|
# Everything a real person could be identified by is refused by
|
|
# scripts/check_personal_data.sh, which learns the names from OUTSIDE this
|
|
# repository (the photo pack, the message database, .env) so that the list of
|
|
# real names is never in it. What is left is shapes -- phone numbers, uuids,
|
|
# Signal group ids -- and those need an explicit list of the invented ones the
|
|
# documents and fixtures are built from. That list is this file.
|
|
#
|
|
# One value per line, lower-cased. Add a value here only after checking it
|
|
# belongs to nobody.
|
|
|
|
# Phone numbers. The 555 range is reserved for fiction; the two below are
|
|
# structurally valid and deliberately not anybody's.
|
|
+15550000000
|
|
+48123456789
|
|
+420111222333
|
|
+48000000000
|
|
+48111222333
|
|
|
|
# UUIDs used as fixtures.
|
|
b1c2d3e4-0000-4a00-8a00-000000000001
|
|
b1c2d3e4-0000-4a00-8a00-000000000002
|
|
|
|
# Group ids invented for the offline end-to-end run and the unit tests. Each
|
|
# one base64-decodes to a sentence saying it is a fixture.
|
|
group.wlrkbexyzghkr05vzldrdc1ncm91cc1pzc0zmi1ienl0zxmhisfd
|
|
group.zdjgmfkyagxaqzfuy205mwndmxbaqzb6twkxiwvyumxjeuvositfaelrpt0=
|
|
group.wtjllxdhdgnozwqtz3jvdxatawqtmzitynl0zxmhisfd
|
|
|
|
# The author's own handle, which is the repository owner and appears in the
|
|
# project URL, the User-Agent and every copyright line.
|
|
kuhy
|
|
# The sender name POST /_selftest injects. Not a person.
|
|
self-test
|
|
|
|
# Given names that are also popes. Permitted ONLY in the files that carry the
|
|
# papal list, so the same name in a test fixture or a document is still
|
|
# refused -- which is exactly how it leaked the first time.
|
|
signal_bot/popes.json::marek
|
|
signal_bot/popes.json::wiktor
|
|
tests/test_versioning.py::wiktor
|
|
DOCS-changelog.md::wiktor
|
|
|
|
# Invented Signal group ids. Every one of these base64-decodes twice to a
|
|
# sentence saying what it is, which is how you can tell it belongs to nobody:
|
|
# group.WlRKbExYZGhkR05vWldRdFozSnZkWEF0YVdRdE16SXRZbmwwWlhNaElTRT0=
|
|
# -> ZTJlLXdhdGNoZWQtZ3JvdXAtaWQtMzItYnl0ZXMhISE= -> e2e-watched-group-id-32-bytes!!!
|
|
group.WTI5dVptbG5MV2R5YjNWd0xXbGtMVE15TFdKNWRHVnpJU0VoSVNFaElRPT0=
|
|
group.WlRKbExYZGhkR05vWldRdFozSnZkWEF0YVdRdE16SXRZbmwwWlhNaElTRT0=
|
|
group.WlRKbExYTmxZMjl1WkMxbmNtOTFjQzFwWkMwek1pMWllWFJsY3lFaElTRT0=
|
|
group.WlRKbExYUm9hWEprTFdkeWIzVndMV2xrTFRNeUxXSjVkR1Z6SVNFaElRPT0=
|
|
group.WlRKbExXWnZkWEowYUMxbmNtOTFjQzFwWkMwek1pMWllWFJsY3lFaElTRT0=
|
|
group.WTI1c1pDMXZibVV0WjNKdmRYQXRhV1F0TXpJdFlubDBaWE1oSVNFaElTRT0=
|
|
group.WTI5c1pDMXZibVV0WjNKdmRYQXRhV1F0TXpJdFlubDBaWE1oSVNFaElTRT0=
|
|
group.WTI5c1pDMTBkMjh0WjNKdmRYQXRhV1F0TXpJdFlubDBaWE1oSVNFaElTRT0=
|
|
group.WTI5c1pDMTBhSEpsWlMxbmNtOTFjQzFwWkMwek1pMWllWFJsY3lFaElTRT0=
|
|
group.WTI5c1pDMW1iM1Z5TFdkeWIzVndMV2xrTFRNeUxXSjVkR1Z6SVNFaElTRT0=
|
|
group.YjNSb1pYSXRaM0p2ZFhBdGFXUXRNekl0WW5sMFpYTWhJU0VoSVNFPQ==
|
|
group.YzJWamIyNWtMV2R5YjNWd0xXbGtMVE15TFdKNWRHVnpJU0VoSVNFaA==
|
|
group.ZDJGMFkyaGxaQzFuY205MWNDMXBaQzB6TWkxaWVYUmxjeUVoSVNFaElRPT0=
|
|
group.WlRKbExYZGhkR05vWldRdA==
|
|
|
|
# Invented phone numbers used as fixtures. Reserved / non-allocated ranges.
|
|
+15550000001
|
|
+15550000002
|
|
+15550001111
|
|
+15550001234
|
|
+15555550123
|
|
+15559999999
|
|
+48987654321
|
|
signal_bot/versioning.py::wiktor
|
|
|
|
# Given names that are also popes, permitted only in the files that carry or
|
|
# assert the papal list. Anywhere else -- a test fixture, a document, a help
|
|
# text -- they are still refused, which is the case that leaked.
|
|
signal_bot/popes.json::jan
|
|
signal_bot/popes.json::marek
|
|
signal_bot/popes.json::wiktor
|
|
signal_bot/versioning.py::jan
|
|
tool/gen_popes.py::jan
|
|
tool/gen_popes.py::marek
|
|
tool/gen_popes.py::wiktor
|
|
tests/test_versioning.py::jan
|
|
tests/test_changelog.py::jan
|
|
tests/test_popes_command.py::jan
|
|
DOCS-changelog.md::jan
|
|
|
|
# Polish painters whose given name is also somebody's. Permitted ONLY in the
|
|
# category list that harvests their work, exactly as a pope's name is
|
|
# permitted only in popes.json -- the same name in a test fixture or a
|
|
# document is still refused.
|
|
tool/art_categories.json::jan
|