$ show WFCD/WFinfo
WFInfo is a Windows desktop companion application for the game Warframe, built with WPF (.NET Framework 4.8). It uses OCR (Tesseract) to scan in-game reward screens, inventory items (SnapIt), and profile screens, then looks up real-time platinum and ducat prices from warframe.market. The architecture follows a service-oriented pattern with dependency injection (Microsoft.Extensions.DependencyInjection) for screenshot capture (GDI or Windows Graphics Capture), window information, HDR detection, and process finding. Key features include auto-detection of fissure rewards via Warframe's log file, a configurable overlay for price display, warframe.market listing management, language-specific text normalization (11+ locales), and a theme adjuster for OCR filtering. The application is Windows-only and tightly integrated with game UI, making it highly specialized but well-architected within its domain.
The LLM identified 3 files worth highlighting for reuse:
Abstract base class defining the template method for OCR post-processing. Subclasses per language override methods like NormalizeText, RemoveBlueprintTerms, and GetWhitelist. This pattern isolates language-specific logic from the main OCR pipeline and can be reused in any project requiring locale-aware string matching (e.g., fuzzy search, spell-check). The base class also caches normalized terms in a ConcurrentDictionary, making it thread-safe.
Interface defining a single method TakeScreenshot() that returns a System.Drawing.Bitmap. Two implementations exist: GdiScreenshotService (legacy) and WindowsCaptureScreenshotService (modern Win10+ API). The abstraction allows switching capture backends without changing OCR logic. This pattern is reusable for any application that needs to capture screen regions with fallback strategies, and it cleanly separates platform-specific code.
Wraps Win32 low-level keyboard and mouse hooks (SetWindowsHookEx) into a .NET event-driven component. It marshals hook callbacks to the UI thread via System.Windows.Forms.Timer, providing hotkey and mouse button bindings. This is a self-contained, reusable module for any WPF/WinForms application needing global input detection without requiring external libraries.