mirror of
https://github.com/TheNetsky/Microsoft-Rewards-Script.git
synced 2026-01-11 10:56:17 +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.
9.4 KiB
9.4 KiB
📱 NTFY Push Notifications
🔔 Real-time push notifications to your devices
Stay informed wherever you are
🎯 What is NTFY?
NTFY is a simple HTTP-based pub-sub notification service that sends push notifications to your phone, desktop, or web browser. Perfect for real-time alerts about script events and errors.
Key Features
- 📱 Mobile & Desktop — Push to any device
- 🆓 Free & Open Source — No vendor lock-in
- 🏠 Self-hostable — Complete privacy control
- ⚡ Real-time delivery — Instant notifications
- 🔒 Authentication support — Secure topics
Official Links
- Website — ntfy.sh
- Documentation — docs.ntfy.sh
- GitHub — binwiederhier/ntfy
⚙️ Configuration
Basic Setup
{
"notifications": {
"ntfy": {
"enabled": true,
"url": "https://ntfy.sh",
"topic": "rewards-script",
"authToken": ""
}
}
}
Configuration Options
| Setting | Description | Example |
|---|---|---|
enabled |
Enable NTFY notifications | true |
url |
NTFY server URL | "https://ntfy.sh" |
topic |
Notification topic name | "rewards-script" |
authToken |
Authentication token (optional) | "tk_abc123..." |
🚀 Setup Options
Option 1: Public Service (Easiest)
{
"notifications": {
"ntfy": {
"enabled": true,
"url": "https://ntfy.sh",
"topic": "your-unique-topic-name"
}
}
}
Pros:
- ✅ No server setup required
- ✅ Always available
- ✅ Free to use
Cons:
- ❌ Public server (less privacy)
- ❌ Rate limits apply
- ❌ Dependent on external service
Option 2: Self-Hosted (Recommended)
{
"notifications": {
"ntfy": {
"enabled": true,
"url": "https://ntfy.yourdomain.com",
"topic": "rewards",
"authToken": "tk_your_token_here"
}
}
}
Self-Hosted Setup:
# docker-compose.yml
version: '3.8'
services:
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
ports:
- "80:80"
volumes:
- ./data:/var/lib/ntfy
command: serve
🔒 Authentication
When You Need Auth
Authentication tokens are optional but required for:
- 🔐 Private topics with username/password
- 🏠 Private NTFY servers with authentication
- 🛡️ Preventing spam on your topic
Getting an Auth Token
Method 1: Command Line
ntfy token
Method 2: Web Interface
- Visit your NTFY server (e.g.,
https://ntfy.sh) - Go to Account section
- Generate new access token
Method 3: API
curl -X POST -d '{"label":"rewards-script"}' \
-H "Authorization: Bearer YOUR_LOGIN_TOKEN" \
https://ntfy.sh/v1/account/tokens
Token Format
- Tokens start with
tk_(e.g.,tk_abc123def456...) - Use Bearer authentication format
- Tokens are permanent until revoked
📲 Receiving Notifications
Mobile Apps
- Android — NTFY on Google Play
- iOS — NTFY on App Store
- F-Droid — Available for Android
Desktop Options
- Web Interface — Visit your NTFY server URL
- Desktop Apps — Available for Linux, macOS, Windows
- Browser Extension — Chrome/Firefox extensions
Setup Steps
- Install NTFY app on your device
- Add subscription to your topic name
- Enter server URL (if self-hosted)
- Test with a manual message
🔔 Notification Types
Error Notifications
Priority: Max 🚨 | Trigger: Script errors and failures
[ERROR] DESKTOP [LOGIN] Failed to login: Invalid credentials
Warning Notifications
Priority: High ⚠️ | Trigger: Important warnings
[WARN] MOBILE [SEARCH] Didn't gain expected points from search
Info Notifications
Priority: Default 🏆 | Trigger: Important milestones
[INFO] MAIN [TASK] Started tasks for account user@email.com
Buy Mode Notifications
Priority: High 💳 | Trigger: Point spending detected
💳 Spend detected (Buy Mode)
Account: user@email.com
Spent: -500 points
Current: 12,500 points
Session spent: 1,200 points
Conclusion Summary
End-of-run summary with rich formatting:
🎯 Microsoft Rewards Summary
Accounts: 3 • 0 with issues
Total: 15,230 -> 16,890 (+1,660)
Average Duration: 8m 32s
Cumulative Runtime: 25m 36s
🤝 Integration with Discord
Complementary Setup
Use both NTFY and Discord for comprehensive monitoring:
{
"notifications": {
"webhook": {
"enabled": true,
"url": "https://discord.com/api/webhooks/..."
},
"conclusionWebhook": {
"enabled": true,
"url": "https://discord.com/api/webhooks/..."
},
"ntfy": {
"enabled": true,
"url": "https://ntfy.sh",
"topic": "rewards-script"
}
}
}
Coverage Comparison
| Feature | NTFY | Discord |
|---|---|---|
| Mobile push | ✅ Instant | ❌ App required |
| Rich formatting | ❌ Text only | ✅ Embeds + colors |
| Desktop alerts | ✅ Native | ✅ App notifications |
| Offline delivery | ✅ Queued | ❌ Real-time only |
| Self-hosted | ✅ Easy | ❌ Complex |
🎛️ Advanced Configuration
Custom Topic Names
Use descriptive, unique topic names:
{
"topic": "rewards-production-server1"
}
{
"topic": "msn-rewards-home-pc"
}
{
"topic": "rewards-dev-testing"
}
Environment-Specific
{
"notifications": {
"ntfy": {
"enabled": true,
"url": "https://ntfy.internal.lan",
"topic": "homelab-rewards",
"authToken": "tk_homelab_token"
}
}
}
🧪 Testing & Debugging
Manual Test Message
# Public server (no auth)
curl -d "Test message from rewards script" https://ntfy.sh/your-topic
# With authentication
curl -H "Authorization: Bearer tk_your_token" \
-d "Authenticated test message" \
https://ntfy.sh/your-topic
Script Debug Mode
$env:DEBUG_REWARDS_VERBOSE=1; npm start
Server Health Check
# Check NTFY server status
curl -s https://ntfy.sh/v1/health
# List your topics (with auth)
curl -H "Authorization: Bearer tk_your_token" \
https://ntfy.sh/v1/account/topics
🛠️ Troubleshooting
| Problem | Solution |
|---|---|
| No notifications | Check topic spelling; verify app subscription |
| Auth failures | Verify token format (tk_); check token validity |
| Wrong server | Test server URL in browser; check HTTPS/HTTP |
| Rate limits | Switch to self-hosted; reduce notification frequency |
Common Fixes
- ✅ Topic name — Must match exactly between config and app
- ✅ Server URL — Include
https://and check accessibility - ✅ Token format — Must start with
tk_for authentication - ✅ Network — Verify firewall/proxy settings
🏠 Homelab Integration
Official Support
NTFY is included in:
- Debian Trixie (testing)
- Ubuntu (latest versions)
Popular Integrations
- Sonarr/Radarr — Download completion notifications
- Prometheus — Alert manager integration
- Home Assistant — Automation notifications
- Portainer — Container status alerts
Docker Stack Example
version: '3.8'
services:
ntfy:
image: binwiederhier/ntfy
container_name: ntfy
ports:
- "80:80"
volumes:
- ./ntfy-data:/var/lib/ntfy
environment:
- NTFY_BASE_URL=https://ntfy.yourdomain.com
command: serve
rewards:
build: .
depends_on:
- ntfy
environment:
- NTFY_URL=http://ntfy:80
🔒 Privacy & Security
Public Server (ntfy.sh)
- ⚠️ Messages pass through public infrastructure
- ⚠️ Topic names visible in logs
- ✅ Suitable for non-sensitive notifications
Self-Hosted Server
- ✅ Complete control over data
- ✅ Private network deployment possible
- ✅ Recommended for sensitive information
Best Practices
- 🔐 Use unique, non-guessable topic names
- 🔑 Enable authentication for sensitive notifications
- 🏠 Use self-hosted server for maximum privacy
- 🔄 Regularly rotate authentication tokens
Data Retention
- 📨 Messages are not permanently stored
- ⏱️ Delivery attempts retried for short periods
- 🗑️ No long-term message history
⚡ Performance Impact
Script Performance
- ✅ Minimal overhead — Fire-and-forget notifications
- ✅ Non-blocking — Failed notifications don't affect script
- ✅ Asynchronous — No execution delays
Network Usage
- 📊 Low bandwidth — Text-only messages
- ⚡ HTTP POST — Simple, efficient protocol
- 🔄 Retry logic — Automatic failure recovery
🔗 Related Guides
- Discord Webhooks — Rich notification embeds
- Getting Started — Initial setup and configuration
- Buy Mode — Manual purchasing notifications
- Security — Privacy and data protection