Skip to content

[GUI] Build one-shot service pages (ZipCrack, Diff, Media, Extract, GMM) #18

Description

@Weidows

Description

Build GUI pages for the five one-shot services: ZipCrack, Diff, Media, Extract, GMM.

ZipCrack Page

  • File picker for archive (.zip/.7z/.rar/.tar.gz)
  • Password dictionary file selector (optional, defaults to ~/.config/wutils/password-dict.txt)
  • "Start Crack" button with cancel
  • Real-time progress: password tested/sec, elapsed time, current password
  • Result display: found password or "not found" with completion time
  • Drag-and-drop support for archive file

Diff Page

  • Two file input areas with file picker buttons
  • "Compare" button
  • Side-by-side result display:
    • Left panel: "Missing in A" (items only in B)
    • Right panel: "Missing in B" (items only in A)
  • Copy-to-clipboard for each result set
  • Line count summary

Media Group Page

  • Directory picker for input folder
  • Customizable clustering parameters:
    • Time threshold (hours, default: 12)
    • Distance threshold (km, default: 1)
  • "Start Grouping" button
  • Progress indicator (files processed / total)
  • Result display: cluster list with file counts, total size
  • Preview images per cluster (thumbnails)
  • Warning if output will be large

Extract Page (Subdir-Extracter)

  • Directory picker for root path
  • Mode selector: AutoCheck / Overwrite / Skip
  • "Extract" button
  • Log output showing what was moved/renamed/removed
  • Preview mode: show what would happen without executing

GMM Page

  • Two tables: GOPROXY mirrors and GOSUMDB mirrors
  • Each row shows: name, URL, latency (ms), status (✅/❌)
  • "Test All" button — runs speed test on all mirrors
  • Click on a row to set as active proxy/sumdb
  • "Current" display showing active GOPROXY and GOSUMDB env values
  • Copy config command to clipboard (e.g., go env -w GOPROXY=...)

Acceptance Criteria

  • Each page can invoke its corresponding Go service
  • Results display correctly in the UI
  • Error states are handled gracefully with user-friendly messages
  • File/directory pickers work via Wails native dialog

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status
    TODO

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions