Thumbnail logo detection ignores logos already recorded in manifest.shared
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 84/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js
Direzione di ricerca
Leggi il ciclo che sposta i loghi condivisi in site/thumbs.mjs:311-318 e sharedImageIds in site/lib/thumbs.mjs:162-172, poi esamina il test esistente di sharedImageIds in site/lib/lib.test.mjs. Aggiungi un test per un nuovo record il cui hash esiste già in shared ed esegui npm test. Il lavoro è completato quando il nuovo record viene spostato in shared e il test passa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The three-or-more shared-hash rule that keeps publisher logos out of thumbnails only counts records fetched in the current run, so a logo that was already dropped into manifest.shared is accepted again when a single new entry from the same site is fetched.
Where
site/thumbs.mjs:311-318(logo drop loop)site/thumbs.mjs:263-266(shared skip)site/lib/thumbs.mjs:162-172(sharedImageIds)
Details
for (const id of sharedImageIds(thumbs)) { // counts hashes in `thumbs` only
shared[id] = thumbs[id];
delete thumbs[id];
pending.delete(id);
}
for (const id of Object.keys(thumbs)) delete shared[id];
Records dropped in an earlier run live in shared, not thumbs, so they never count toward the limit again. The existing test (site/lib/lib.test.mjs, the sharedImageIds case) only covers three records sitting in thumbs together.
Impact
A publisher's site-wide logo or social card is published as an asset preview with a "Preview image shown under " credit, which is the case the shared-hash rule (#132) exists to block.
Steps to reproduce
- Entries A, B and C on one site share an og:image; a run drops them into
manifest.shared. - Add entry D from the same site (or change A's
url). - Run
node site/thumbs.mjs: D's image hash appears once inthumbs, below the limit, so D keeps the logo. Pure check:sharedImageIds({ D: { hash: "h" } })is empty even whensharedholds three records with hashh.
Suggested fix
Count hashes across { ...shared, ...thumbs } and drop only the ids that are in thumbs; or keep a set of known logo hashes and reject any fetched image whose hash is in it.
Acceptance criteria
- A newly fetched record whose hash matches a hash already in
sharedis moved toshared - Unit test: one new record plus an already recorded shared hash
Getting started
- Relevant files:
site/thumbs.mjs,site/lib/thumbs.mjs,site/lib/lib.test.mjs - Run the tests:
npm test; the full local gate isnpm run check(Node 22+, no install step) - Related docs:
CONTRIBUTING.md,site/README.md
Related: #232, #132
Filed by repo-audit/full-audit at 4adb944. Severity: medium. Effort: S. audit-key: bug|site/thumbs.mjs|sharedImageIds
- Lingua principale
- JavaScript
- Stelle
- 58
- Fork
- 15
- Merge medio
- 1g 15h
- PR unite (30g)
- 12
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TMHSDigital/Free-Game-Dev-Assets
-
enhancement good first issue priority: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
TMHSDigital/Free-Game-Dev-Assets#272 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
TMHSDigital/Free-Game-Dev-Assets#270 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation priority: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
TMHSDigital/Free-Game-Dev-Assets#269 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue priority: low tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
TMHSDigital/Free-Game-Dev-Assets#267 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue priority: low tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
TMHSDigital/Free-Game-Dev-Assets#266 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di TMHSDigital/Free-Game-Dev-Assets
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
guybedford/es-module-lexer#266 ·
-
bug documentation
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
apify/apify-docs#3206 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 90/100
anhnt256/cursor-swarm#21 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
zerohourzulu/irontrellis#16 ·