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.
407 lines
9.4 KiB
Markdown
407 lines
9.4 KiB
Markdown
# 📱 NTFY Push Notifications
|
|
|
|
<div align="center">
|
|
|
|
**🔔 Real-time push notifications to your devices**
|
|
*Stay informed wherever you are*
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
## 🎯 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](https://ntfy.sh)
|
|
- **Documentation** — [docs.ntfy.sh](https://docs.ntfy.sh)
|
|
- **GitHub** — [binwiederhier/ntfy](https://github.com/binwiederhier/ntfy)
|
|
|
|
---
|
|
|
|
## ⚙️ Configuration
|
|
|
|
### **Basic Setup**
|
|
```json
|
|
{
|
|
"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)**
|
|
```json
|
|
{
|
|
"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)**
|
|
```json
|
|
{
|
|
"notifications": {
|
|
"ntfy": {
|
|
"enabled": true,
|
|
"url": "https://ntfy.yourdomain.com",
|
|
"topic": "rewards",
|
|
"authToken": "tk_your_token_here"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
**Self-Hosted Setup:**
|
|
```yaml
|
|
# 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**
|
|
```bash
|
|
ntfy token
|
|
```
|
|
|
|
#### **Method 2: Web Interface**
|
|
1. Visit your NTFY server (e.g., `https://ntfy.sh`)
|
|
2. Go to **Account** section
|
|
3. Generate **new access token**
|
|
|
|
#### **Method 3: API**
|
|
```bash
|
|
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](https://play.google.com/store/apps/details?id=io.heckel.ntfy)
|
|
- **iOS** — [NTFY on App Store](https://apps.apple.com/app/ntfy/id1625396347)
|
|
- **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**
|
|
1. **Install** NTFY app on your device
|
|
2. **Add subscription** to your topic name
|
|
3. **Enter server URL** (if self-hosted)
|
|
4. **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:
|
|
|
|
```json
|
|
{
|
|
"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:
|
|
```json
|
|
{
|
|
"topic": "rewards-production-server1"
|
|
}
|
|
{
|
|
"topic": "msn-rewards-home-pc"
|
|
}
|
|
{
|
|
"topic": "rewards-dev-testing"
|
|
}
|
|
```
|
|
|
|
### **Environment-Specific**
|
|
```json
|
|
{
|
|
"notifications": {
|
|
"ntfy": {
|
|
"enabled": true,
|
|
"url": "https://ntfy.internal.lan",
|
|
"topic": "homelab-rewards",
|
|
"authToken": "tk_homelab_token"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🧪 Testing & Debugging
|
|
|
|
### **Manual Test Message**
|
|
```bash
|
|
# 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**
|
|
```powershell
|
|
$env:DEBUG_REWARDS_VERBOSE=1; npm start
|
|
```
|
|
|
|
### **Server Health Check**
|
|
```bash
|
|
# 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**
|
|
```yaml
|
|
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](./conclusionwebhook.md)** — Rich notification embeds
|
|
- **[Getting Started](./getting-started.md)** — Initial setup and configuration
|
|
- **[Buy Mode](./buy-mode.md)** — Manual purchasing notifications
|
|
- **[Security](./security.md)** — Privacy and data protection |