A powerful and robust userscript designed to enhance the Testbook.com UI, aggressively block tracking scripts, and seamlessly crawl, extract, and convert full question papers into clean, beautifully formatted Markdown files.
- Comprehensive Extraction: Automatically navigates through sections and pagination to extract every question, its options, and the detailed solution.
- MathJax Support: Safely extracts MathJax formulas and converts them into standard LaTeX
$...$and$$...$$syntax, utilizing a custom element bypass to guarantee that complex commands and subscripts are never escaped by Turndown. - Code Formatting Preservation: Fenced code blocks (
```) maintain their exact semantic whitespace and indentation during the markdown beautification process. - Table Normalization: Handles complex, ragged HTML tables, converting
colspancorrectly to satisfy GitHub-Flavored Markdown (GFM) requirements. - Surgical Clean-up: Automatically removes UI clutter (e.g., report buttons, avatars, tracking pixels) before conversion, ensuring the output is strictly educational content.
- Advanced Network Blocking & CSP Resilience: Efficiently intercepts and blocks known tracking and analytics endpoints to speed up extraction. It includes a fallback mode that operates directly from the userscript context if the host site enforces strict Content Security Policies (CSP).
- Dynamic Polling Engine: Reliably handles slow connections and lazy-loading pages by dynamically observing DOM changes instead of using fragile, fixed timeouts.
- Intelligent Crawler Validation: Accurately scopes interaction targets (like the "Next" button) to the test interface, preventing accidental clicks on navigation palettes, and eliminates stale DOM reads during page transitions.
- Caching Optimizer: Prevents heavy, redundant Markdown re-parsing on unchanged DOM elements, keeping the script lightweight and performant even for massive tests with over 300 questions.
- Floating UI: Provides a sleek, unobtrusive Floating Action Button (FAB) that shows real-time progress of the extraction process, equipped with robust race-condition handling for rapid interactions.
- Install a userscript manager like Violentmonkey or Tampermonkey in your browser.
- Build the script by running
npm run buildorbun run build. - Load the generated userscript file from the
dist/directory into your userscript manager.
- Navigate to a Testbook question paper (e.g., in Review mode or Active test mode).
- Wait for the page to fully load.
- Click the floating Download button in the bottom right corner of the screen.
- The script will automatically jump through the sections and extract the data.
- Once finished, a file named
Testbook_Paper.mdwill be downloaded automatically.
This project is built with TypeScript and Vite.
- Install Dependencies:
bun install - Dev Server:
bun run dev - Build:
bun run build
MIT License.