Additional Info — LeetCode Pro Filter Suite (Stable Fix)
This userscript enhances the LeetCode Problemset page by adding a lightweight, client-side filtering system and a live progress dashboard. It is designed to run automatically after installation via Greasy Fork or any userscript manager (Tampermonkey / Violentmonkey).
🧩 What This Script Does
Once installed, the script automatically activates when you open:
https://leetcode.com/problemset/
It then:
- Injects a custom control panel into the sidebar
- Scans the problem table in real time
- Applies user-defined filters instantly
- Tracks your progress from the visible LeetCode UI
- Saves all preferences locally in your browser
No setup, configuration, or login is required.
⚙️ Core Functionality (In Detail)
🔍 1. Problem Filtering Engine
The script continuously scans DOM rows representing problems and filters them based on:
- Difficulty level (Easy / Medium / Hard)
- Locked problems (premium content)
- Completed problems (already solved)
- Daily challenges (optional exclusion)
Filtering happens instantly when:
- The page loads
- New problems are dynamically inserted
- You toggle any filter button
🚫 2. Visibility Control System
Each filter works by applying a hidden CSS class:
- Problems are NOT deleted
- They are only hidden using
display: none !important
- This ensures zero interference with LeetCode logic
This makes the system:
- Safe
- Reversible
- Non-destructive
📊 3. Live Progress Dashboard
A circular progress indicator is injected into the sidebar.
It:
- Reads your solved/total count from the LeetCode UI
- Parses text dynamically (e.g.
123 / 345)
- Updates automatically every few seconds
- Animates a circular SVG progress ring
The progress ring:
- Fills proportionally to completion percentage
- Updates without refreshing the page
- Reflects real-time changes in your account progress
💾 4. Persistent Settings (Local Storage)
All toggles are stored in:
localStorage → lc_pro_suite_settings_v6
This includes:
- Hidden locked problems setting
- Hidden completed problems setting
- Difficulty filters
- Panel collapse state
Your settings remain saved even after:
- Refreshing the page
- Closing the browser
- Restarting your device
🚀 Performance Design
The script is optimized for speed:
- Uses a MutationObserver instead of polling
- Batch-scans DOM updates
- Avoids unnecessary re-renders
- Minimizes layout thrashing
- Prevents duplicate processing of rows
This ensures:
- Low CPU usage
- Smooth scrolling
- No UI lag on large problem lists
🔐 Safety & Privacy
This script:
- Does NOT send any data externally
- Does NOT track user activity
- Does NOT modify LeetCode backend requests
- Runs entirely in your browser
- Uses only localStorage for preferences
It is fully offline-safe and privacy-respecting.
🌐 Browser Compatibility
Works with:
- Desktop Chrome
- Microsoft Edge
- Firefox
- Opera GX (fully supported via Tampermonkey)
Note: On Opera GX, install a userscript manager extension first (such as Tampermonkey) to enable script execution.
Unsure about Violentmonkey extension
📌 Summary
This script enhances LeetCode by adding:
- Smart filtering system
- Live progress visualization
- Persistent UI customization
- Lightweight DOM optimization
All without changing LeetCode’s core functionality.