mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-18 14:03:58 +00:00
* Updated README.md to reflect version 2.1 and improve the presentation of Microsoft Rewards Automation features. * Updated version to 2.1.5 in README.md and package.json, added new license and legal notice sections, and improved the configuration script for a better user experience. * Mise à jour des messages de journalisation et ajout de vérifications pour le chargement des quiz et la présence des options avant de procéder. Suppression de fichiers de configuration obsolètes. * Added serial protection dialog management for message forwarding, including closing by button or escape. * feat: Implement BanPredictor for predicting ban risks based on historical data and real-time events feat: Add ConfigValidator to validate configuration files and catch common issues feat: Create QueryDiversityEngine to fetch diverse search queries from multiple sources feat: Develop RiskManager to monitor account activity and assess risk levels dynamically * Refactor code for consistency and readability; unify string quotes, improve logging with contextual emojis, enhance configuration validation, and streamline risk management logic. * feat: Refactor BrowserUtil and Login classes for improved button handling and selector management; implement unified selector system and enhance activity processing logic in Workers class. * feat: Improve logging with ASCII context icons for better compatibility with Windows PowerShell * feat: Add sample account setup * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md
284 lines
12 KiB
Markdown
284 lines
12 KiB
Markdown
# ⚙️ Configuration Guide
|
||
|
||
This page documents every field in the configuration file. The default ships as `src/config.jsonc` so you get inline `//` guidance without editor warnings, and the loader still accepts traditional `config.json` files if you prefer plain JSON.
|
||
|
||
Looking for ready-to-use presets? Check `docs/config-presets/` for curated examples such as `balanced.jsonc` (full automation with humanization) and `minimal.jsonc` (lean runs with quick scheduling).
|
||
|
||
> NOTE: Previous versions had `logging.live` (live streaming webhook); it was removed and replaced by a simple `logging.redactEmails` flag.
|
||
|
||
---
|
||
## Top-Level Fields
|
||
|
||
### baseURL
|
||
Internal Microsoft Rewards base. Leave it unless you know what you are doing.
|
||
|
||
### sessionPath
|
||
Directory where session data (cookies / fingerprints / job-state) is stored.
|
||
|
||
---
|
||
## browser
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| headless | boolean | false | Run browser UI-less. Set to `false` to keep the browser visible (default). |
|
||
| globalTimeout | string/number | "30s" | Max time for common Playwright operations. Accepts ms number or time string (e.g. `"45s"`, `"2min"`). |
|
||
|
||
---
|
||
## execution
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| parallel | boolean | false | Run desktop + mobile simultaneously (higher resource usage). |
|
||
| runOnZeroPoints | boolean | false | Skip full run early if there are zero points available (saves time). |
|
||
| clusters | number | 1 | Number of process clusters (multi-process concurrency). |
|
||
| passesPerRun | number | 1 | Advanced: extra full passes per started run. |
|
||
|
||
---
|
||
## buyMode
|
||
Manual redeem / purchase assistance.
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| enabled (CLI `-buy`) | boolean | false | Enable buy mode (usually via CLI argument). |
|
||
| maxMinutes | number | 45 | Max session length for buy mode. |
|
||
|
||
---
|
||
## fingerprinting.saveFingerprint
|
||
Persist browser fingerprints per device type for consistency.
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| mobile | boolean | false | Save/reuse a consistent mobile fingerprint. |
|
||
| desktop | boolean | false | Save/reuse a consistent desktop fingerprint. |
|
||
|
||
---
|
||
## search
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| useLocalQueries | boolean | false | Use locale-specific query sources instead of global ones. |
|
||
|
||
### search.settings
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| useGeoLocaleQueries | boolean | false | Blend geo / locale into chosen queries. |
|
||
| scrollRandomResults | boolean | true | Random scroll during search pages to look natural. |
|
||
| clickRandomResults | boolean | true | Occasionally click safe results. |
|
||
| retryMobileSearchAmount | number | 2 | Retries if mobile searches didn’t yield points. |
|
||
| delay.min / delay.max | string/number | 3–5min | Delay between searches (ms or time string). |
|
||
|
||
---
|
||
## humanization
|
||
Human‑like behavior simulation.
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| enabled | boolean | true | Global on/off. |
|
||
| stopOnBan | boolean | true | Stop processing further accounts if a ban is detected. |
|
||
| immediateBanAlert | boolean | true | Fire notification immediately upon ban detection. |
|
||
| actionDelay.min/max | number/string | 150–450ms | Random micro-delay per action. |
|
||
| gestureMoveProb | number | 0.4 | Probability of a small mouse move gesture. |
|
||
| gestureScrollProb | number | 0.2 | Probability of a small scroll gesture. |
|
||
| allowedWindows | string[] | [] | Local time windows (e.g. `["08:30-11:00","19:00-22:00"]`). Outside windows, run waits. |
|
||
|
||
---
|
||
## vacation
|
||
Random contiguous block of days off per month.
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| enabled | boolean | false | Activate monthly break behavior. |
|
||
| minDays | number | 3 | Minimum skipped days per month. |
|
||
| maxDays | number | 5 | Maximum skipped days per month. |
|
||
|
||
---
|
||
## retryPolicy
|
||
Generic transient retry/backoff.
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| maxAttempts | number | 3 | Max tries for retryable blocks. |
|
||
| baseDelay | number | 1000 | Initial delay in ms. |
|
||
| maxDelay | number/string | 30s | Max backoff delay. |
|
||
| multiplier | number | 2 | Exponential backoff multiplier. |
|
||
| jitter | number | 0.2 | Randomization factor (0..1). |
|
||
|
||
---
|
||
## workers
|
||
Enable/disable scripted task categories.
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| doDailySet | true | Daily set activities. |
|
||
| doMorePromotions | true | Promotional tasks. |
|
||
| doPunchCards | true | Punch card flows. |
|
||
| doDesktopSearch | true | Desktop searches. |
|
||
| doMobileSearch | true | Mobile searches. |
|
||
| doDailyCheckIn | true | Daily check-in. |
|
||
| doReadToEarn | true | Reading tasks. |
|
||
| bundleDailySetWithSearch | false | Immediately start desktop search bundle after daily set. |
|
||
|
||
---
|
||
## proxy
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| proxyGoogleTrends | true | Route Google Trends fetch through proxy if set. |
|
||
| proxyBingTerms | true | Route Bing query source fetch through proxy if set. |
|
||
|
||
---
|
||
## notifications
|
||
Manages notification channels (Discord webhooks, NTFY, etc.).
|
||
|
||
### notifications.webhook
|
||
Primary webhook (can be used for summary or generic messages).
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| enabled | false | Allow sending webhook-based notifications and live log streaming. |
|
||
| url | "" | Webhook endpoint. |
|
||
|
||
### notifications.conclusionWebhook
|
||
Rich end-of-run summary (if enabled separately).
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| enabled | false | Enable run summary posting. |
|
||
| url | "" | Webhook endpoint. |
|
||
|
||
### notifications.ntfy
|
||
Lightweight push notifications.
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| enabled | false | Enable NTFY push. |
|
||
| url | "" | Base NTFY server URL (e.g. https://ntfy.sh). |
|
||
| topic | rewards | Topic/channel name. |
|
||
| authToken | "" | Bearer token if your server requires auth. |
|
||
|
||
---
|
||
## logging
|
||
| Key | Type | Description |
|
||
|-----|------|-------------|
|
||
| excludeFunc | string[] | Log buckets suppressed in console + any webhook usage. |
|
||
| webhookExcludeFunc | string[] | Buckets suppressed specifically for webhook output. |
|
||
| redactEmails | boolean | If true, email addresses are partially masked in logs. |
|
||
| liveWebhookUrl | string | Optional override URL for live log streaming (falls back to `notifications.webhook.url`). |
|
||
|
||
_Removed fields_: `live.enabled`, `live.url`, `live.redactEmails` — replaced by `redactEmails` only.
|
||
|
||
---
|
||
## diagnostics
|
||
Capture evidence when something fails.
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| enabled | true | Master switch for diagnostics. |
|
||
| saveScreenshot | true | Save screenshot on failure. |
|
||
| saveHtml | true | Save HTML snapshot on failure. |
|
||
| maxPerRun | 2 | Cap artifacts per run per failure type. |
|
||
| retentionDays | 7 | Old run artifacts pruned after this many days. |
|
||
|
||
---
|
||
## jobState
|
||
Checkpoint system to avoid duplicate work.
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| enabled | true | Enable job state tracking. |
|
||
| dir | "" | Custom directory (default: `<sessionPath>/job-state`). |
|
||
|
||
---
|
||
## schedule
|
||
Built-in scheduler (avoids external cron inside container or host).
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| enabled | false | Enable scheduling loop. |
|
||
| useAmPm | false | If true, parse `time12`; else use `time24`. |
|
||
| time12 | 9:00 AM | 12‑hour format time (only if useAmPm=true). |
|
||
| time24 | 09:00 | 24‑hour format time (only if useAmPm=false). |
|
||
| timeZone | America/New_York | IANA zone string (e.g. Europe/Paris). |
|
||
| runImmediatelyOnStart | false | Run one pass instantly in addition to daily schedule. |
|
||
|
||
_Legacy_: If both `time12` and `time24` are empty, a legacy `time` (HH:mm) may still be read.
|
||
|
||
---
|
||
## update
|
||
Auto-update behavior after a run.
|
||
| Key | Default | Description |
|
||
|-----|---------|-------------|
|
||
| git | true | Pull latest git changes after run. |
|
||
| docker | false | Recreate container (if running in Docker orchestration). |
|
||
| scriptPath | setup/update/update.mjs | Custom script executed for update flow. |
|
||
|
||
---
|
||
## Security / Best Practices
|
||
- Keep `redactEmails` true if you share logs publicly.
|
||
- Use a private NTFY instance or secure Discord webhooks (do not leak URLs).
|
||
- Avoid setting `headless` false on untrusted remote servers.
|
||
|
||
---
|
||
## Minimal Example
|
||
```jsonc
|
||
{
|
||
"browser": { "headless": true },
|
||
"execution": { "parallel": false },
|
||
"workers": { "doDailySet": true, "doDesktopSearch": true, "doMobileSearch": true },
|
||
"logging": { "redactEmails": true }
|
||
}
|
||
```
|
||
|
||
## Common Tweaks
|
||
| Goal | Change |
|
||
|------|--------|
|
||
| Faster dev feedback | Set `browser.headless` to false and shorten search delays. |
|
||
| Reduce detection risk | Keep humanization enabled, add vacation window. |
|
||
| Silent mode | Add more buckets to `excludeFunc`. |
|
||
| Skip mobile searches | Set `workers.doMobileSearch=false`. |
|
||
| Use daily schedule | Set `schedule.enabled=true` and adjust `time24` + `timeZone`. |
|
||
|
||
---
|
||
## NEW INTELLIGENT FEATURES
|
||
|
||
### riskManagement
|
||
Dynamic risk assessment and ban prediction.
|
||
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| enabled | boolean | true | Enable risk-aware throttling. |
|
||
| autoAdjustDelays | boolean | true | Automatically increase delays when captchas/errors are detected. |
|
||
| stopOnCritical | boolean | false | Stop execution if risk score exceeds threshold. |
|
||
| banPrediction | boolean | true | Enable ML-style pattern analysis to predict ban risk. |
|
||
| riskThreshold | number | 75 | Risk score (0-100) above which bot pauses or alerts. |
|
||
|
||
**How it works:** Monitors captchas, errors, timeouts, and account patterns. Dynamically adjusts delays (e.g., 1x → 2.5x) and warns you before bans happen.
|
||
|
||
---
|
||
### analytics
|
||
Performance dashboard and metrics tracking.
|
||
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| enabled | boolean | true | Track points earned, success rates, execution times. |
|
||
| retentionDays | number | 30 | How long to keep analytics data. |
|
||
| exportMarkdown | boolean | true | Generate human-readable markdown reports. |
|
||
| webhookSummary | boolean | false | Send analytics summary via webhook. |
|
||
|
||
**Output location:** `analytics/` folder (JSON files per account per day).
|
||
|
||
---
|
||
### queryDiversity
|
||
Multi-source search query generation.
|
||
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| enabled | boolean | true | Use diverse sources instead of just Google Trends. |
|
||
| sources | array | `["google-trends", "reddit", "local-fallback"]` | Which sources to query (google-trends, reddit, news, wikipedia, local-fallback). |
|
||
| maxQueriesPerSource | number | 10 | Max queries to fetch per source. |
|
||
| cacheMinutes | number | 30 | Cache duration to avoid hammering APIs. |
|
||
|
||
**Why?** Reduces patterns by mixing Reddit posts, news headlines, Wikipedia topics instead of predictable Google Trends.
|
||
|
||
---
|
||
### dryRun
|
||
Test mode: simulate execution without actually running tasks.
|
||
|
||
| Key | Type | Default | Description |
|
||
|-----|------|---------|-------------|
|
||
| dryRun | boolean | false | When true, logs actions but doesn't execute (useful for testing config). |
|
||
|
||
**Use case:** Validate new config changes, estimate execution time, debug issues without touching accounts.
|
||
|
||
---
|
||
## Changelog Notes
|
||
- **v2.2.0**: Added risk-aware throttling, analytics dashboard, query diversity, ban prediction, dry-run mode.
|
||
- Removed live webhook streaming complexity; now simpler logging.
|
||
- Centralized redaction logic under `logging.redactEmails`.
|
||
|
||
If something feels undocumented or unclear, open a documentation issue or extend this page.
|