Thumbnail logo detection ignores logos already recorded in manifest.shared
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 84/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript, node.js
Rechercherichtung
Lies die Schleife zum Ablegen gemeinsamer Logos in site/thumbs.mjs:311-318 und sharedImageIds in site/lib/thumbs.mjs:162-172. Sieh dir dann den bestehenden sharedImageIds-Test in site/lib/lib.test.mjs an. Füge einen Test für einen neuen Datensatz hinzu, dessen Hash bereits in shared vorhanden ist, und führe npm test aus. Fertig ist die Aufgabe, wenn der neue Datensatz nach shared verschoben wird und der Test besteht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- JavaScript
- Sterne
- 58
- Forks
- 15
- Ø Merge
- 1 T. 15 Std.
- Gemergte PRs (30 T.)
- 12
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TMHSDigital/Free-Game-Dev-Assets
-
enhancement good first issue priority: medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
TMHSDigital/Free-Game-Dev-Assets#272 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation good first issue priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
TMHSDigital/Free-Game-Dev-Assets#270 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation priority: medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
TMHSDigital/Free-Game-Dev-Assets#269 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue priority: low tests
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
TMHSDigital/Free-Game-Dev-Assets#267 ·
Maintainer antworten meist innerhalb von 1 Tag
-
good first issue priority: low tests
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
TMHSDigital/Free-Game-Dev-Assets#266 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in TMHSDigital/Free-Game-Dev-Assets
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
guybedford/es-module-lexer#266 ·
-
bug documentation
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 88/100
apify/apify-docs#3206 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 90/100
anhnt256/cursor-swarm#21 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
documentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
zerohourzulu/irontrellis#16 ·