Skip to content

feat: update/add functions based on InRoute Reverse#22

Merged
aartzz merged 11 commits into
mainfrom
feat/inroute-reverse
May 11, 2026
Merged

feat: update/add functions based on InRoute Reverse#22
aartzz merged 11 commits into
mainfrom
feat/inroute-reverse

Conversation

@aartzz

@aartzz aartzz commented May 10, 2026

Copy link
Copy Markdown
Owner

Summary

Reverse-engineered InRoute extension features and ported to xdAnswers. Adds 4 new platform providers, enhances 3 existing ones, expands anti-detect disabler to all platforms, and removes the timestopper exploit.
Closes #21

New Platforms

Platform File Key Features
Kahoot providers/kahoot.js MCQ support, anti-detect char-by-char typing simulation
Classtime providers/classtime.js MCQ + categorization drag-and-drop
MiyKlas providers/miyklas.js DND + MathML/MathJax math extraction
LCloud providers/lcloud.js MCQ, T/F, text input, matching, DND

Enhanced Providers

  • naurok.js — True/False detection, text input fields, multi-question batch processing
  • justclass.js — Replaced single-question scan with batch multi-question processing
  • vseosvita.js — Added categorization (drag-and-drop items into categories) with specialized AI prompt and DnD event simulation

Anti-Detect & Disabler

  • Expanded disabler-page.js from vseosvita-only to all platforms
  • Global protections: blur/focus bypass, visibilityState spoofing (always "visible"), Document.prototype.hasFocus()=true, performance.now() jitter
  • Platform-specific: vseosvita fullscreen bypass, naurok/kahoot logging neutralization

Removed

  • TimeStopper exploit (timestopper.js, timestopper-page.js) — unreliable, removed from UI, settings, manifest, and i18n

Documentation

  • Updated README.md and README-en.md with all 9 supported platforms
  • Marked all platforms as beta (including NaUrok)

aartzz added 11 commits May 10, 2026 22:26
Add content script providers for 4 new platforms:
- kahoot.js: MCQ support with anti-detect typing simulation
- classtime.js: MCQ + categorization DND support
- miyklas.js: DND + MathML/MathJax math extraction
- lcloud.js: MCQ, T/F, text input, matching, DND support

Update manifest.common.json with match patterns and content scripts for all new platforms.
Add support for additional Naurok question types:
- True/False detection (правда/неправда/так/ні options)
- Text input fields (input[type=text], textarea, .answer-text-input)
- Multi-question batch processing for multi-quiz pages
- Pass correct questionType to AI for specialized prompting
- Add collectCategorization() for drag-and-drop items into categories
- Wire categorization into premium format dispatch (type 10 + heuristic fallback)
- Add applyCategorization() with DnD event simulation + click fallback
- Add specialized categorization prompt to request.js
- Update premiumQuestionType mapping and CUSTOM_APPLIER_FORMATS

Closes #3
Replace simple single-question scan with batch processing:
- extractOptions() and extractImages() helpers
- processSingleQuestion() for individual question handling
- processBatchQuestions() collects all questions and sends combined text
- Support one-click and normal modes
- Global anti-detect: blur/focus bypass, visibilityState spoofing,
  Document.prototype.hasFocus()=true, performance.now() jitter
- Platform-specific bypasses for vseosvita fullscreen, naurok/kahoot logging
- Remove timestopper reference from comments
Add newly supported platforms to site tables:
- Kahoot!, Classtime, MiyKlas, LCloud
- Mark all platforms (including NaUrok) as beta status
…w-up requests

Ensure the tools field is explicitly removed from the request body
copy before conditionally re-adding it on the first stream round.
Some gateways reject tool definitions on subsequent turns after tool
calls have already been executed, causing 400 errors.

Also removes the non-standard is_error field from Anthropic tool_result
blocks to improve compatibility with strict gateway implementations.
Strip any tools array added by buildRequestBody before conditionally
re-inserting it only on the first tool loop. Prevents 400 errors on
gateways that reject tool definitions on follow-up turns.

Also removes the non-standard is_error field from Anthropic tool_result
blocks for better gateway compatibility.
Expand README.md and README-en.md with:
- Complete supported platforms matrix (9 sites with auto-answer, disabler, silent mode status)
- Built-in AI providers overview (OpenAI, Anthropic, Gemini, OpenCode Zen)
- Feature sections for disabler, silent modes, consensus, web search
- Compatibility indicators (✅/⚠️/❌) for quick reference
- Merge separate chrome.runtime.onMessage listeners in background.js to
  prevent the port from closing before the fetch handler can respond.
- Add 'sent' guard to blob FileReader callbacks to prevent double
  sendResponse calls.
- Add 25s timeout to makeRequest to prevent indefinite hangs.
- Ensure all content-script onMessage listeners return true for async
  compatibility (oneclick.js, gforms.js, msforms.js).

Closes #23
Add an isProcessingAI check before invoking processQuestion to prevent
race conditions where multiple question scans trigger overlapping AI
requests on the same page.
@aartzz aartzz merged commit d9f04fc into main May 11, 2026
1 check passed
@aartzz aartzz deleted the feat/inroute-reverse branch May 11, 2026 17:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add functions from reversed InRoute

1 participant