mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-17 21:43:59 +00:00
* first commit * Addition of a personalized activity manager and refactoring of the logic of activities * Adding diagnostics management, including screenshot and HTML content, as well as improvements to humanize page interactions and +. * Adding the management of newspapers and webhook settings, including filtering messages and improving the structure of the summaries sent. * Adding a post-execution auto-date functionality, including options to update via Git and Docker, as well as a new configuration interface to manage these parameters. * Adding accounts in Docker, with options to use an environmental file or online JSON data, as well as minimum validations for responsible accounts. * Improving the Microsoft Rewards script display with a new headband and better log management, including colors and improved formatting for the console. * v2 * Refactor ESLint configuration and scripts for improved TypeScript support and project structure * Addition of the detection of suspended accounts with the gesture of the improved errors and journalization of banishment reasons * Adding an integrated planner for programmed task execution, with configuration in Config.json and + * Edit * Remove texte * Updating of documentation and adding the management of humanization in the configuration and +. * Adding manual purchase method allowing users to spend points without automation, with monitoring of expenses and notifications. * Correction of documentation and improvement of configuration management for manual purchase mode, adding complete documentation and appropriate banner display. * Add comprehensive documentation for job state persistence, NTFY notifications, proxy configuration, scheduling, and auto-update features - Introduced job state persistence documentation to track progress and resume tasks. - Added NTFY push notifications integration guide for real-time alerts. - Documented proxy configuration options for enhanced privacy and network management. - Included scheduling configuration for automated script execution. - Implemented auto-update configuration to keep installations current with Git and Docker options. * Ajout d'Unt Système de Rapport d'Erreurs Communautaire pour Améliorerer le Débogage, incluant la Configuration et l'Envoi de Résumés D'Erreurs Anonyés à un webhook Discord. * Mini Edit * Mise à Jour du Readme.md pour Améliorerer la Présentation et La Claté, Ajout d'Un section sur les notifications en Temps Raine et Mise à Jour des badges pour la meille unibilité. * Documentation update * Edit README.md * Edit * Update README with legacy version link * Improvement of location data management and webhooks, adding configurations normalization * Force update for PR * Improvement of documentation and configuration options for Cron integration and Docker use * Improvement of planning documentation and adding a multi-pan-pancake in the daily execution script * Deletion of the CommunityReport functionality in accordance with the project policy * Addition of randomization of start -up schedules and surveillance time for planner executions * Refactor Docker setup to use built-in scheduler, removing cron dependencies and simplifying configuration options * Adding TOTP support for authentication, update of interfaces and configuration files to include Totp secret, and automatic generation of the Totp code when connecting. * Fix [LOGIN-NO-PROMPT] No dialogs (xX) * Reset the Totp field for email_1 in the accounts.example.json file * Reset the Totp field for email_1 in the Readme.md file * Improvement of Bing Research: Use of the 'Attacked' method for the research field, management of overlays and adding direct navigation in the event of entry failure. * Adding a complete security policy, including directives on vulnerability management, coordinated disclosure and user security advice. * Remove advanced environment variables section from README * Configuration and dockerfile update: Passage to Node 22, addition of management of the purchase method, deletion of obsolete scripts * Correction of the order of the sections in the Readme.md for better readability * Update of Readm and Security Policy: Addition of the method of purchase and clarification of security and confidentiality practices. * Improvement of the readability of the Readm and deletion of the mention of reporting of vulnerabilities in the security document. * Addition of humanization management and adaptive throttling to simulate more human behavior in bot activities. * Addition of humanization management: activation/deactivation of human gestures, configuration update and adding documentation on human mode. * Deletion of community error report functionality to respect the privacy policy * Addition of immediate banning alerts and vacation configuration in the Microsoft Rewards bot * Addition of immediate banning alerts and vacation configuration in the Microsoft Rewards bot * Added scheduling support: support for 12h and 24h formats, added options for time zone, and immediate execution on startup. * Added window size normalization and page rendering to fit typical screens, with injected CSS styles to prevent excessive zooming. * Added security incident management: detection of hidden recovery emails, automation blocking, and global alerts. Updated configuration files and interfaces to include recovery emails. Improved security incident documentation. * Refactor incident alert handling: unified alert sender * s * Added security incident management: detect recovery email inconsistencies and send unified alerts. Implemented helper methods to manage alerts and compromised modes. * Added heartbeat management for the scheduler: integrated a heartbeat file to report liveliness and adjusted the watchdog configuration to account for heartbeat updates. * Edit webook * Updated security alert management: fixed the recovery email hidden in the documentation and enabled the conclusion webhook for notifications. * Improved security alert handling: added structured sending to webhooks for better visibility and updated callback interval in compromised mode. * Edit conf * Improved dependency installation: Added the --ignore-scripts option for npm ci and npm install. Updated comments in compose.yaml for clarity. * Refactor documentation structure and enhance logging: - Moved documentation files from 'information' to 'docs' directory for better organization. - Added live logging configuration to support webhook logs with email redaction. - Updated file paths in configuration and loading functions to accommodate new structure. - Adjusted scheduler behavior to prevent immediate runs unless explicitly set. - Improved error handling for account and config file loading. - Enhanced security incident documentation with detailed recovery steps. * Fix docs * Remove outdated documentation on NTFY, Proxy, Scheduling, Security, and Auto-Update configurations; update Browser class to prioritize headless mode based on environment variable. * Addition of documentation for account management and Totp, Docker Guide, and Update of the Documentation Index. * Updating Docker documentation: simplification of instructions and adding links to detailed guides. Revision of configuration options and troubleshooting sections. * Edit * Edit docs * Enhance documentation for Scheduler, Security, and Auto-Update features - Revamped the Scheduler documentation to include detailed features, configuration options, and usage examples. - Expanded the Security guide with comprehensive incident response strategies, privacy measures, and monitoring practices. - Updated the Auto-Update section to clarify configuration, methods, and best practices for maintaining system integrity. * Improved error handling and added crash recovery in the Microsoft Rewards bot. Added configuration for automatic restart and handling of local search queries when trends fail. * Fixed initial point counting in MicrosoftRewardsBot and improved error handling when sending summaries to webhooks. * Added unified support for notifications and improved handling of webhook configurations in the normalizeConfig and log functions. * UPDATE LOGIN * EDIT LOGIN * Improved login error handling: added recovery mismatch detection and the ability to switch to password authentication. * Added a full reference to configuration in the documentation and improved log and error handling in the code. * Added context management for conclusion webhooks and improved user configuration for notifications. * Mini edit * Improved logic for extracting masked emails for more accurate matching during account recovery.
225 lines
5.7 KiB
Markdown
225 lines
5.7 KiB
Markdown
# 🔍 Diagnostics & Error Capture
|
|
|
|
<div align="center">
|
|
|
|
**🛠️ Automatic error screenshots and HTML snapshots**
|
|
*Debug smarter with visual evidence*
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## 🎯 What is Diagnostics?
|
|
|
|
The diagnostics system **automatically captures** error screenshots and HTML snapshots when issues occur during script execution, providing visual evidence for troubleshooting.
|
|
|
|
### **Key Features**
|
|
- 📸 **Auto-screenshot** — Visual error capture
|
|
- 📄 **HTML snapshots** — Complete page source
|
|
- 🚦 **Rate limiting** — Prevents storage bloat
|
|
- 🗂️ **Auto-cleanup** — Configurable retention
|
|
- 🔒 **Privacy-safe** — Local storage only
|
|
|
|
---
|
|
|
|
## ⚙️ Configuration
|
|
|
|
### **Basic Setup**
|
|
Add to `src/config.json`:
|
|
```json
|
|
{
|
|
"diagnostics": {
|
|
"enabled": true,
|
|
"saveScreenshot": true,
|
|
"saveHtml": true,
|
|
"maxPerRun": 2,
|
|
"retentionDays": 7
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Configuration Options**
|
|
|
|
| Setting | Default | Description |
|
|
|---------|---------|-------------|
|
|
| `enabled` | `true` | Master toggle for diagnostics capture |
|
|
| `saveScreenshot` | `true` | Capture PNG screenshots on errors |
|
|
| `saveHtml` | `true` | Save page HTML content on errors |
|
|
| `maxPerRun` | `2` | Maximum captures per script run |
|
|
| `retentionDays` | `7` | Auto-delete reports older than N days |
|
|
|
|
---
|
|
|
|
## 🚀 How It Works
|
|
|
|
### **Automatic Triggers**
|
|
The system captures when these errors occur:
|
|
- ⏱️ **Page navigation timeouts**
|
|
- 🎯 **Element selector failures**
|
|
- 🔐 **Authentication errors**
|
|
- 🌐 **Network request failures**
|
|
- ⚡ **JavaScript execution errors**
|
|
|
|
### **Capture Process**
|
|
1. **Error Detection** — Script encounters unhandled error
|
|
2. **Visual Capture** — Screenshot + HTML snapshot
|
|
3. **Safe Storage** — Local `reports/` folder
|
|
4. **Continue Execution** — No blocking or interruption
|
|
|
|
---
|
|
|
|
## 📁 File Structure
|
|
|
|
### **Storage Organization**
|
|
```
|
|
reports/
|
|
├── 2025-01-20/
|
|
│ ├── error_abc123_001.png
|
|
│ ├── error_abc123_001.html
|
|
│ ├── error_def456_002.png
|
|
│ └── error_def456_002.html
|
|
└── 2025-01-21/
|
|
└── ...
|
|
```
|
|
|
|
### **File Naming Convention**
|
|
```
|
|
error_[runId]_[sequence].[ext]
|
|
```
|
|
- **RunId** — Unique identifier for each script execution
|
|
- **Sequence** — Incremental counter (001, 002, etc.)
|
|
- **Extension** — `.png` for screenshots, `.html` for source
|
|
|
|
---
|
|
|
|
## 🧹 Retention Management
|
|
|
|
### **Automatic Cleanup**
|
|
- Runs after each script completion
|
|
- Deletes entire date folders older than `retentionDays`
|
|
- Prevents unlimited disk usage growth
|
|
|
|
### **Manual Cleanup**
|
|
```powershell
|
|
# Remove all diagnostic reports
|
|
Remove-Item -Recurse -Force reports/
|
|
|
|
# Remove reports older than 3 days
|
|
Get-ChildItem reports/ | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-3)} | Remove-Item -Recurse -Force
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Use Cases
|
|
|
|
| Scenario | Benefit |
|
|
|----------|---------|
|
|
| **🐛 Development & Debugging** | Visual confirmation of page state during errors |
|
|
| **🔍 Element Detection Issues** | HTML source analysis for selector problems |
|
|
| **📈 Production Monitoring** | Evidence collection for account issues |
|
|
| **⚡ Performance Analysis** | Timeline reconstruction of automation failures |
|
|
|
|
---
|
|
|
|
## ⚡ Performance Impact
|
|
|
|
### **Resource Usage**
|
|
- **Screenshots** — ~100-500KB each
|
|
- **HTML files** — ~50-200KB each
|
|
- **CPU overhead** — Minimal (only during errors)
|
|
- **Memory impact** — Asynchronous, non-blocking
|
|
|
|
### **Storage Optimization**
|
|
- Daily cleanup prevents accumulation
|
|
- Rate limiting via `maxPerRun`
|
|
- Configurable retention period
|
|
|
|
---
|
|
|
|
## 🎛️ Environment Settings
|
|
|
|
### **Development Mode**
|
|
```json
|
|
{
|
|
"diagnostics": {
|
|
"enabled": true,
|
|
"maxPerRun": 5,
|
|
"retentionDays": 14
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Production Mode**
|
|
```json
|
|
{
|
|
"diagnostics": {
|
|
"enabled": true,
|
|
"maxPerRun": 2,
|
|
"retentionDays": 3
|
|
}
|
|
}
|
|
```
|
|
|
|
### **Debug Verbose Logging**
|
|
```powershell
|
|
$env:DEBUG_REWARDS_VERBOSE=1; npm start
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠️ Troubleshooting
|
|
|
|
| Problem | Solution |
|
|
|---------|----------|
|
|
| **No captures despite errors** | Check `enabled: true`; verify `reports/` write permissions |
|
|
| **Excessive storage usage** | Reduce `maxPerRun`; decrease `retentionDays` |
|
|
| **Missing screenshots** | Verify browser screenshot API; check memory availability |
|
|
| **Cleanup not working** | Ensure script completes successfully for auto-cleanup |
|
|
|
|
### **Common Capture Locations**
|
|
- **Login issues** — Authentication page screenshots
|
|
- **Activity failures** — Element detection errors
|
|
- **Network problems** — Timeout and connection errors
|
|
- **Navigation issues** — Page load failures
|
|
|
|
---
|
|
|
|
## 🔗 Integration
|
|
|
|
### **With Notifications**
|
|
Diagnostics complement [Discord Webhooks](./conclusionwebhook.md) and [NTFY](./ntfy.md):
|
|
- **Webhooks** — Immediate error alerts
|
|
- **Diagnostics** — Visual evidence for investigation
|
|
- **Combined** — Complete error visibility
|
|
|
|
### **With Development Workflow**
|
|
```bash
|
|
# 1. Run script with diagnostics
|
|
npm start
|
|
|
|
# 2. Check for captures after errors
|
|
ls reports/$(date +%Y-%m-%d)/
|
|
|
|
# 3. Analyze screenshots and HTML
|
|
# Open .png files for visual state
|
|
# Review .html files for DOM structure
|
|
```
|
|
|
|
---
|
|
|
|
## 🔒 Privacy & Security
|
|
|
|
- **Local Only** — All captures stored locally
|
|
- **No Uploads** — Zero external data transmission
|
|
- **Account Info** — May contain sensitive data
|
|
- **Secure Storage** — Use appropriate folder permissions
|
|
- **Regular Cleanup** — Recommended for sensitive environments
|
|
|
|
---
|
|
|
|
## 🔗 Related Guides
|
|
|
|
- **[Getting Started](./getting-started.md)** — Initial setup and configuration
|
|
- **[Discord Webhooks](./conclusionwebhook.md)** — Error notification alerts
|
|
- **[NTFY Notifications](./ntfy.md)** — Mobile push notifications
|
|
- **[Security](./security.md)** — Privacy and data protection |