Skip to content

Fingerprints — Find exact and fuzzy matches #9

Description

Parent: #4

Delivers functions for matching file fingerprints — used to identify installed mods by their file hashes. Supports both exact and fuzzy matching, with optional game-scoping.

Acceptance criteria:

  • Find-CurseForgeFingerprint matches fingerprints exactly (unscoped or by game)
  • Find-CurseForgeFuzzyFingerprint matches fingerprints using fuzzy matching (unscoped or by game)
  • -GameId parameter scopes the search to a specific game
  • CurseForgeFingerprintMatch class models exact match results
  • CurseForgeFingerprintFuzzyMatch class models fuzzy match results
  • CurseForgeFingerprintMatchResult class wraps the full response (exactMatches, partialMatches, unmatchedFingerprints)
  • Format files provide summary views
  • Unit tests cover both match types and empty results

Endpoints:

Function Method Path
Find-CurseForgeFingerprint POST /v1/fingerprints
Find-CurseForgeFingerprint (-GameId) POST /v1/fingerprints/{gameId}
Find-CurseForgeFuzzyFingerprint POST /v1/fingerprints/fuzzy
Find-CurseForgeFuzzyFingerprint (-GameId) POST /v1/fingerprints/fuzzy/{gameId}

Request bodies:

Exact: { "fingerprints": [int64, ...] }

Fuzzy: { "gameId": int32, "fingerprints": [{ "foldername": "string", "fingerprints": [int64, ...] }] }

Decision: Two functions (Find-CurseForgeFingerprint and Find-CurseForgeFuzzyFingerprint) rather than one with -Fuzzy switch, because the input shapes differ fundamentally (flat array vs folder-fingerprint objects).


Sub-issues

See linked Tasks below.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions