Refactor project structure and update references from Light60-1 to Obsidian-wtf

- Changed working directory in Dockerfile from /usr/src/microsoft-rewards-script to /app
- Updated Docker container name and service name from microsoft-rewards-script to microsoft-rewards-bot
- Modified LICENSE, NOTICE, README.md, and other documentation files to reflect new project ownership
- Updated package.json and package-lock.json to change project name and repository links
- Adjusted entrypoint script and Docker Compose configurations for new paths
- Updated security and login handling in source code to reflect new documentation URLs
- Changed logo asset to reflect new branding
This commit is contained in:
2025-11-03 15:17:06 +01:00
parent 8ccfdd23c9
commit 2cc9df5278
18 changed files with 146 additions and 357 deletions

View File

@@ -3,7 +3,7 @@
###############################################################################
FROM node:22-slim AS builder
WORKDIR /usr/src/microsoft-rewards-script
WORKDIR /app
ENV PLAYWRIGHT_BROWSERS_PATH=0
@@ -31,7 +31,7 @@ RUN npx playwright install --with-deps --only-shell chromium \
###############################################################################
FROM node:22-slim AS runtime
WORKDIR /usr/src/microsoft-rewards-script
WORKDIR /app
# Set production environment variables
ENV NODE_ENV=production \
@@ -72,9 +72,9 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
&& rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
# Copy compiled application and dependencies from builder stage
COPY --from=builder /usr/src/microsoft-rewards-script/dist ./dist
COPY --from=builder /usr/src/microsoft-rewards-script/package*.json ./
COPY --from=builder /usr/src/microsoft-rewards-script/node_modules ./node_modules
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/package*.json ./
COPY --from=builder /app/node_modules ./node_modules
# Copy entrypoint script
COPY docker-entrypoint.sh /usr/local/bin/
@@ -84,4 +84,4 @@ RUN chmod +x /usr/local/bin/docker-entrypoint.sh
ENTRYPOINT ["docker-entrypoint.sh"]
# Default: use built-in scheduler
CMD ["npm", "run", "start:schedule"]
CMD ["npm", "run", "start:schedule"]

118
LICENSE
View File

@@ -1,108 +1,24 @@
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 InternationalNON-COMMERCIAL PERSONAL USE LICENSE
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
Copyright (c) 2025 Obsidian-wtf
This work is licensed under Creative Commons BY-NC-SA 4.0
https://creativecommons.org/licenses/by-nc-sa/4.0/
Copyright (c) 2025 Light60-1Copyright (c) 2024-2025 TheNetsky and Contributors
YOU ARE FREE TO:
Share - Copy and redistribute in any medium or format
Adapt - Remix, transform, and build upon the material
Originally forked from Light60-1/Microsoft-Rewards-Rewi
UNDER THESE TERMS:
Attribution - Give appropriate credit, indicate changes made
NonCommercial - NO commercial use allowed
ShareAlike - Distribute under same license
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0
DISCLAIMER:
THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND.
International License. To view a copy of this license, visit:All rights reserved.
MICROSOFT REWARDS WARNING:
This software may violate Microsoft's Terms of Service.
Use at your own risk.
http://creativecommons.org/licenses/by-nc-sa/4.0/
TERMS AND CONDITIONS:
================================================================================
1. PERMITTED USE:
YOU ARE FREE TO: - You may download and use this software for personal, non-commercial purposes.
- You may modify the source code for your own personal use.
• Share — copy and redistribute the material in any medium or format - You may submit pull requests (PRs) to the official repository to propose improvements.
• Adapt — remix, transform, and build upon the material
2. PROHIBITED ACTIONS:
The licensor cannot revoke these freedoms as long as you follow the license terms. - You may NOT redistribute this software, modified or unmodified, in any form.
- You may NOT share, publish, or distribute your modifications publicly.
================================================================================ - You may NOT use this software for commercial purposes.
- You may NOT sublicense, sell, rent, or lease this software.
UNDER THE FOLLOWING TERMS: - You may NOT create derivative works for public distribution.
- You may NOT remove or modify this license or copyright notices.
• Attribution — You must give appropriate credit, provide a link to the license,
and indicate if changes were made. You may do so in any reasonable manner, but3. CONTRIBUTIONS:
not in any way that suggests the licensor endorses you or your use. - By submitting a pull request, you grant the copyright holder the right to use,
modify, and distribute your contributions under this license.
• NonCommercial — You may NOT use the material for commercial purposes. - You retain no rights to your contributions once merged into the official repository.
This includes selling, renting, licensing for profit, or using in any
revenue-generating context without explicit written permission.4. DISCLAIMER:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
• ShareAlike — If you remix, transform, or build upon the material, you must INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
distribute your contributions under the same license as the original. PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
• No additional restrictions — You may not apply legal terms or technological OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
measures that legally restrict others from doing anything the license permits. SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================================================5. TERMINATION:
This license is effective until terminated. Your rights under this license will
DISCLAIMER: terminate automatically without notice if you fail to comply with any term herein.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR6. GOVERNING LAW:
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, This license shall be governed by and construed in accordance with applicable laws,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE without regard to its conflict of law provisions.
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,For permissions beyond the scope of this license, please contact the copyright holder.
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================================================
MICROSOFT REWARDS TERMS:
This software automates interactions with Microsoft Rewards, which may violate
Microsoft's Terms of Service. Use at your own risk. The authors:
• Are NOT responsible for account suspensions or bans
• Do NOT encourage violating terms of service
• Provide this for educational purposes ONLY
By using this software, you acknowledge and accept all risks.
================================================================================
For commercial licensing inquiries or permissions beyond this license:
https://github.com/Light60-1/Microsoft-Rewards-Bot/issues
Questions: https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues

4
NOTICE
View File

@@ -1,5 +1,5 @@
Microsoft Rewards Bot
Copyright (c) 2025 Light60-1
Copyright (c) 2025 Obsidian-wtf
This project is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0
International License. See LICENSE file for details.
@@ -46,4 +46,4 @@ securing your configuration files.
================================================================================
For issues, questions, or contributions:
https://github.com/Light60-1/Microsoft-Rewards-Bot
https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot

View File

@@ -7,8 +7,8 @@
**Automate your Microsoft Rewards points collection effortlessly**
[![Discord](https://img.shields.io/badge/💬_Join_Discord-7289DA?style=for-the-badge&logo=discord)](https://discord.gg/h6Z69ZPPCz)
[![GitHub](https://img.shields.io/badge/⭐_Star_Project-yellow?style=for-the-badge&logo=github)](https://github.com/Light60-1/Microsoft-Rewards-Bot)
[![Version](https://img.shields.io/badge/version-2.51.0-blue?style=for-the-badge)](https://github.com/Light60-1/Microsoft-Rewards-Bot/releases)
[![GitHub](https://img.shields.io/badge/⭐_Star_Project-yellow?style=for-the-badge&logo=github)](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot)
[![Version](https://img.shields.io/badge/version-2.51.0-blue?style=for-the-badge)](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/releases)
[![License](https://img.shields.io/badge/license-CC_BY--NC--SA_4.0-green?style=for-the-badge)](LICENSE)
</div>
@@ -48,7 +48,7 @@ This TypeScript-based automation bot helps you maximize your **Microsoft Rewards
1. **Clone the repository:**
```bash
git clone https://github.com/Light60-1/Microsoft-Rewards-Bot.git
git clone https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot.git
cd Microsoft-Rewards-Bot
```
@@ -107,7 +107,7 @@ For containerized deployment with automatic scheduling:
docker compose up -d
# View logs
docker logs -f microsoft-rewards-script
docker logs -f microsoft-rewards-bot
```
**📖 [Full Docker Guide](docs/docker.md)**
@@ -178,7 +178,7 @@ All while maintaining **natural behavior patterns** to minimize detection risk.
- 💬 **[Join our Discord](https://discord.gg/h6Z69ZPPCz)** — Community support and updates
- 📖 **[Documentation Hub](docs/index.md)** — Complete guides and references
- 🐛 **[Report Issues](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)** — Bug reports and feature requests
- 🐛 **[Report Issues](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues)** — Bug reports and feature requests
- 📧 **[Diagnostics Guide](docs/diagnostics.md)** — Troubleshooting steps
---
@@ -222,7 +222,7 @@ See [LICENSE](LICENSE) for complete terms.
## 🙏 Acknowledgments
- Built with [Playwright](https://playwright.dev/) and [ReBrowser](https://github.com/rebrowser/rebrowser-playwright)
- Thanks to all [contributors](https://github.com/Light60-1/Microsoft-Rewards-Bot/graphs/contributors)
- Thanks to all [contributors](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/graphs/contributors)
- Community support via [Discord](https://discord.gg/h6Z69ZPPCz)
---
@@ -242,6 +242,6 @@ If you find this project helpful:
**Made with ❤️ by the community**
[Documentation](docs/index.md) • [Discord](https://discord.gg/h6Z69ZPPCz) • [Issues](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)
[Documentation](docs/index.md) • [Discord](https://discord.gg/h6Z69ZPPCz) • [Issues](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues)
</div>

View File

@@ -353,7 +353,7 @@ Security contributors will be credited in the changelog (with permission).— St
- **Security issues:** Open a GitHub issue with "Security" label
- **General support:** [Discord community](https://discord.gg/h6Z69ZPPCz)
- **Bug reports:** [GitHub Issues](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)
- **Bug reports:** [GitHub Issues](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues)
---

Binary file not shown.

Before

Width:  |  Height:  |  Size: 683 KiB

After

Width:  |  Height:  |  Size: 306 KiB

View File

@@ -1,14 +1,14 @@
services:
microsoft-rewards-script:
microsoft-rewards-bot:
build: .
container_name: microsoft-rewards-script
container_name: microsoft-rewards-bot
restart: unless-stopped
# Volume mounts: Specify a location where you want to save the files on your local machine.
volumes:
- ./src/accounts.jsonc:/usr/src/microsoft-rewards-script/src/accounts.jsonc:ro
- ./src/config.jsonc:/usr/src/microsoft-rewards-script/src/config.jsonc:ro
- ./sessions:/usr/src/microsoft-rewards-script/sessions # Optional, saves your login session
- ./src/accounts.jsonc:/app/src/accounts.jsonc:ro
- ./src/config.jsonc:/app/src/config.jsonc:ro
- ./sessions:/app/sessions
environment:
TZ: "America/Toronto" # Set your timezone for proper scheduling (used by image and scheduler)

View File

@@ -23,7 +23,7 @@ if [ "$USE_CRON" = "true" ] || [ "$USE_CRON" = "1" ]; then
ENV_VARS=$(printenv | grep -E '^(TZ|NODE_ENV|FORCE_HEADLESS|PLAYWRIGHT_BROWSERS_PATH|ACCOUNTS_JSON|ACCOUNTS_FILE)=' | sed 's/^/export /' | tr '\n' ';')
# Create cron job that runs the script
CRON_JOB="$CRON_SCHEDULE cd /usr/src/microsoft-rewards-script && $ENV_VARS node --enable-source-maps ./dist/index.js >> /var/log/cron.log 2>&1"
CRON_JOB="$CRON_SCHEDULE cd /app && $ENV_VARS node --enable-source-maps ./dist/index.js >> /var/log/cron.log 2>&1"
echo "$CRON_JOB" > /etc/cron.d/microsoft-rewards
chmod 0644 /etc/cron.d/microsoft-rewards
@@ -43,7 +43,7 @@ if [ "$USE_CRON" = "true" ] || [ "$USE_CRON" = "1" ]; then
# Run once immediately if requested
if [ "$RUN_ON_START" = "true" ] || [ "$RUN_ON_START" = "1" ]; then
echo "==> Running initial execution (RUN_ON_START=true)..."
cd /usr/src/microsoft-rewards-script
cd /app
node --enable-source-maps ./dist/index.js 2>&1 | tee -a /var/log/cron.log
echo "==> Initial execution completed"
echo ""

View File

@@ -174,7 +174,7 @@ See [Accounts Troubleshooting](accounts.md#troubleshooting).
### Docker container exits immediately
1. **Check logs:** `docker logs microsoft-rewards-script`
1. **Check logs:** `docker logs microsoft-rewards-bot`
2. **Verify mounts:** Ensure `accounts.jsonc` exists and is mounted
3. **Check config:** `headless` must be `true` for Docker
4. **Review environment variables:** Timezone, cron settings
@@ -311,14 +311,14 @@ See [Configuration Guide](config.md#risk-management--security).
- 💬 **[Join our Discord](https://discord.gg/h6Z69ZPPCz)** — Ask the community
- 📖 **[Documentation Hub](index.md)** — Browse all guides
- 🐛 **[GitHub Issues](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)** — Report problems
- 🐛 **[GitHub Issues](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues)** — Report problems
- 📧 **[Diagnostics Guide](diagnostics.md)** — Debug issues
---
<div align="center">
**Didn't find your answer?** [Ask on Discord](https://discord.gg/h6Z69ZPPCz) or [open an issue](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)!
**Didn't find your answer?** [Ask on Discord](https://discord.gg/h6Z69ZPPCz) or [open an issue](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues)!
[← Back to Documentation](index.md)

View File

@@ -1,103 +0,0 @@
# 📚 Documentation Directory
This folder contains comprehensive documentation for the Microsoft Rewards Script project.
## 📋 Documentation Structure
### 🚀 Getting Started
- **[index.md](index.md)** — Documentation hub and navigation
- **[getting-started.md](getting-started.md)** — Complete setup guide for beginners
- **[FAQ.md](FAQ.md)** — Frequently asked questions
### ⚙️ Configuration
- **[config.md](config.md)** — Complete configuration reference
- **[accounts.md](accounts.md)** — Account setup and 2FA/TOTP configuration
- **[schedule.md](schedule.md)** — Automated scheduling setup
### 🔧 Features
- **[humanization.md](humanization.md)** — Anti-detection and natural behavior
- **[jobstate.md](jobstate.md)** — Job state management
- **[buy-mode.md](buy-mode.md)** — Manual purchase monitoring
### 🔔 Integrations
- **[conclusionwebhook.md](conclusionwebhook.md)** — Discord webhook setup
- **[ntfy.md](ntfy.md)** — NTFY push notification setup
- **[proxy.md](proxy.md)** — Proxy configuration
### 🐳 Deployment
- **[docker.md](docker.md)** — Docker deployment guide
- **[update.md](update.md)** — Update and upgrade guide
### 🛠️ Maintenance
- **[diagnostics.md](diagnostics.md)** — Troubleshooting and debugging
- **[security.md](security.md)** — Security and privacy guidelines
- **[git-conflict-resolution.md](git-conflict-resolution.md)** — Resolving Git conflicts
## 🎯 Quick Navigation by Use Case
### "I just installed the script"
1. [Getting Started](getting-started.md)
2. [Accounts Setup](accounts.md)
3. [Basic Configuration](config.md#quick-start)
### "I want automated daily runs"
1. [Scheduling](schedule.md)
2. [Docker Deployment](docker.md) (optional)
3. [Humanization](humanization.md)
### "I need notifications"
- [Discord Webhooks](conclusionwebhook.md)
- [NTFY Push Alerts](ntfy.md)
### "Something's not working"
1. [FAQ](FAQ.md)
2. [Diagnostics](diagnostics.md)
3. [Security Guide](security.md) (if banned)
## 📝 Documentation Standards
All documentation in this project follows these principles:
- **Clear and concise** — No unnecessary jargon
- **Example-driven** — Code samples for every feature
- **Up-to-date** — Reflects current functionality
- **Well-structured** — Easy navigation with TOC
- **Beginner-friendly** — Assumes minimal technical knowledge
## 🤝 Contributing to Documentation
Documentation improvements are always welcome! See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines.
### How to Help
- Fix typos or unclear instructions
- Add missing examples
- Improve explanations
- Translate to other languages
- Update outdated information
## 📖 Documentation Format
All docs use **Markdown** format with:
- Clear hierarchical headings
- Code blocks with syntax highlighting
- Tables for configuration options
- Emojis for visual navigation
- Internal links for cross-references
## 🔗 External Resources
- **[Main README](../README.md)** — Project overview
- **[Contributing Guide](../CONTRIBUTING.md)** — How to contribute
- **[Security Policy](../SECURITY.md)** — Security and privacy
- **[Changelog](../CHANGELOG.md)** — Version history
---
<div align="center">
**[Start Reading →](index.md)**
Need help? [Join our Discord](https://discord.gg/h6Z69ZPPCz)
</div>

View File

@@ -21,7 +21,7 @@ docker compose up -d
### 3. View Logs
```bash
docker logs -f microsoft-rewards-script
docker logs -f microsoft-rewards-bot
```
**That's it!** Script runs automatically.
@@ -80,7 +80,7 @@ docker run -e ACCOUNTS_FILE=/custom/path/accounts.json ...
docker compose up -d
# View logs
docker logs -f microsoft-rewards-script
docker logs -f microsoft-rewards-bot
# Stop container
docker compose down
@@ -108,16 +108,16 @@ docker compose restart
```bash
# Enter container shell
docker exec -it microsoft-rewards-script /bin/bash
docker exec -it microsoft-rewards-bot /bin/bash
# Check Node.js version
docker exec -it microsoft-rewards-script node --version
docker exec -it microsoft-rewards-bot node --version
# View config (mounted in /src/)
docker exec -it microsoft-rewards-script cat src/config.jsonc
docker exec -it microsoft-rewards-bot cat src/config.jsonc
# Check if cron is enabled
docker exec -it microsoft-rewards-script printenv | grep USE_CRON
docker exec -it microsoft-rewards-bot printenv | grep USE_CRON
```
---
@@ -197,12 +197,12 @@ docker compose up -d
4. **Verify cron is running:**
```bash
# Check container logs
docker logs -f microsoft-rewards-script
docker logs -f microsoft-rewards-bot
# Should see: "==> Cron mode enabled"
# View cron logs inside container
docker exec microsoft-rewards-script tail -f /var/log/cron.log
docker exec microsoft-rewards-bot tail -f /var/log/cron.log
```
### Option 3: Single Run (Manual)
@@ -244,7 +244,7 @@ services:
```bash
# Enter container
docker exec -it microsoft-rewards-script /bin/bash
docker exec -it microsoft-rewards-bot /bin/bash
# Check cron is running
ps aux | grep cron

View File

@@ -99,7 +99,7 @@ If you prefer containers:
docker compose up -d
# Follow logs
docker logs -f microsoft-rewards-script
docker logs -f microsoft-rewards-bot
```
**[Full Docker Guide →](./docker.md)**
@@ -125,7 +125,7 @@ Once running, explore these guides:
**Login issues?** → [Accounts & 2FA Setup](./accounts.md)
**Want Docker?** → [Container Guide](./docker.md)
**Found a bug?** [Report it here](https://github.com/Light60-1/Microsoft-Rewards-Bot/issues)
**Found a bug?** [Report it here](https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues)
**Need support?** [Join our Discord](https://discord.gg/KRBFxxsU)
---

View File

@@ -168,7 +168,7 @@ cp src/accounts.json ~/backup-accounts.json
# Nuclear option: fresh clone
cd ..
rm -rf Microsoft-Rewards-Bot
git clone https://github.com/Light60-1/Microsoft-Rewards-Bot.git
git clone https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot.git
cd Microsoft-Rewards-Bot
# Restore your files

View File

@@ -1,90 +1,52 @@
<div align="center">
<img src="../assets/logo.png" alt="Microsoft Rewards Script Logo" width="150"/>
# 📚 Documentation
# 📚 Documentation Hub
**Complete guide for Microsoft Rewards Bot**
**Complete guide to automate Microsoft Rewards**
[← Back to README](../README.md)
[← Back to Main](../README.md)
</div>
---
## 🚀 Start Here (In Order)
## 🚀 Quick Start (3 Steps)
### For Complete Beginners
1. **[Setup Accounts](accounts.md)** — Add credentials + 2FA
2. **[Configure Bot](config.md)** — Essential settings
3. **[Enable Scheduler](schedule.md)** — Daily automation
1. **[Accounts & 2FA](./accounts.md)** — Add your Microsoft accounts
2. **[Basic Config](./config.md#quick-start)** — 5 essential options
3. **[Scheduler](./schedule.md#quick-start)** — Automate daily runs
**You're all set! 🎉**
**Done!** The bot will run automatically.
---
## 🔥 Popular Features
## <EFBFBD> Feature Guides
### Notifications & Monitoring
- **[Discord Webhooks](./conclusionwebhook.md)** — Get run summaries
- **[NTFY Push](./ntfy.md)** — Mobile alerts
### Anti-Ban & Privacy
- **[Humanization](./humanization.md)** — Natural behavior simulation
- **[Proxy Setup](./proxy.md)** — Change your IP (optional)
### Deployment
- **[Docker](./docker.md)** — Container deployment
- **[Diagnostics](./diagnostics.md)** — Troubleshooting
| Feature | Description |
|---------|-------------|
| **[Configuration](config.md)** | All settings explained |
| **[Scheduler](schedule.md)** | Automated daily runs |
| **[Humanization](humanization.md)** | Anti-detection system |
| **[Webhooks](conclusionwebhook.md)** | Discord notifications |
| **[NTFY Alerts](ntfy.md)** | Mobile push notifications |
| **[Proxy Setup](proxy.md)** | IP rotation (optional) |
| **[Docker](docker.md)** | Container deployment |
| **[Buy Mode](buy-mode.md)** | Manual purchase monitoring |
---
## 📖 All Documentation
## 🆘 Troubleshooting
### Quick References
- [❓ FAQ (Frequently Asked Questions)](./FAQ.md) — Quick answers to common questions
| Issue | Solution |
|-------|----------|
| **Bot not working?** | [Diagnostics Guide](diagnostics.md) |
| **Login failed?** | [Accounts & 2FA](accounts.md#troubleshooting) |
| **Account banned?** | [Security Guide](security.md) |
| **Git conflicts?** | [Conflict Resolution](git-conflict-resolution.md) |
| **General questions?** | [FAQ](FAQ.md) |
### Configuration & Setup
- [Complete Configuration Reference](./config.md) — All options explained
- [Scheduler Setup](./schedule.md) — Automated timing
- [Job State](./jobstate.md) — Progress tracking
- [Auto-Update](./update.md) — Keep script current
### Advanced Features
- [Buy Mode](./buy-mode.md) — Manual purchase monitoring
- [Security Guide](./security.md) — Privacy & incident response
**Need help?** → [Discord Community](https://discord.gg/h6Z69ZPPCz)
---
## 🆘 Need Help?
**Technical issue?** → [Diagnostics Guide](./diagnostics.md)
**Login problem?** → [Accounts & 2FA](./accounts.md#troubleshooting)
**Banned?** → [Security Guide](./security.md)
**Want to contribute?** → [Contributing Guide](../CONTRIBUTING.md)
**Join Discord** → [Support Server](https://discord.gg/h6Z69ZPPCz)
---
## 🎯 Quick Links by Use Case
### "I just installed the script"
→ [Getting Started](./getting-started.md) → [Accounts](./accounts.md) → [Scheduler](./schedule.md)
### "I want daily automation"
→ [Scheduler Guide](./schedule.md) → [Humanization](./humanization.md)
### "I need notifications"
→ [Discord Webhooks](./conclusionwebhook.md) or [NTFY](./ntfy.md)
### "I want to use Docker"
→ [Docker Guide](./docker.md)
### "Something's broken"
→ [Diagnostics](./diagnostics.md) → [Security](./security.md)
---
**[← Back to README](../README.md)**
[← Back to Main](../README.md)

84
package-lock.json generated
View File

@@ -1,13 +1,13 @@
{
"name": "microsoft-rewards-script",
"name": "microsoft-rewards-bot",
"version": "2.51.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "microsoft-rewards-script",
"name": "microsoft-rewards-bot",
"version": "2.51.0",
"license": "SEE LICENSE IN LICENSE",
"license": "CC-BY-NC-SA-4.0",
"dependencies": {
"axios": "^1.8.4",
"chalk": "^4.1.2",
@@ -38,7 +38,7 @@
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/TheNetsky"
"url": "https://github.com/sponsors/Obsidian-wtf"
}
},
"node_modules/@cspotcode/source-map-support": {
@@ -730,9 +730,9 @@
"license": "MIT"
},
"node_modules/baseline-browser-mapping": {
"version": "2.8.21",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.21.tgz",
"integrity": "sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==",
"version": "2.8.23",
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.23.tgz",
"integrity": "sha512-616V5YX4bepJFzNyOfce5Fa8fDJMfoxzOIzDCZwaGL8MKVpFrXqfNUoIpRn9YMI5pXf/VKgzjB4htFMsFKKdiQ==",
"license": "Apache-2.0",
"bin": {
"baseline-browser-mapping": "dist/cli.js"
@@ -823,9 +823,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001751",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001751.tgz",
"integrity": "sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==",
"version": "1.0.30001753",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001753.tgz",
"integrity": "sha512-Bj5H35MD/ebaOV4iDLqPEtiliTN29qkGtEHCwawWn4cYm+bPJM2NsaP30vtZcnERClMzp52J4+aw2UNbK4o+zw==",
"funding": [
{
"type": "opencollective",
@@ -1158,9 +1158,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
"version": "1.5.243",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.243.tgz",
"integrity": "sha512-ZCphxFW3Q1TVhcgS9blfut1PX8lusVi2SvXQgmEEnK4TCmE1JhH2JkjJN+DNt0pJJwfBri5AROBnz2b/C+YU9g==",
"version": "1.5.244",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.244.tgz",
"integrity": "sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw==",
"license": "ISC"
},
"node_modules/emoji-regex": {
@@ -1555,13 +1555,13 @@
}
},
"node_modules/fingerprint-generator": {
"version": "2.1.75",
"resolved": "https://registry.npmjs.org/fingerprint-generator/-/fingerprint-generator-2.1.75.tgz",
"integrity": "sha512-3dJr2d0GktMAupjRigYs6sXDeZ56zATPcsYfBcp9n4bvhxl3NnWAgdocEdiezi4vKXacoeeh3jNs+i5ReTjgvw==",
"version": "2.1.76",
"resolved": "https://registry.npmjs.org/fingerprint-generator/-/fingerprint-generator-2.1.76.tgz",
"integrity": "sha512-nynXZnqCBtBbEgqqdHS5mGm+R9JRRJxNun+lpZlCxGVt0BzgQJGibOvYCe5I54hIIVsaTldZ+jOb4btRPfPD6g==",
"license": "Apache-2.0",
"dependencies": {
"generative-bayesian-network": "^2.1.75",
"header-generator": "^2.1.75",
"generative-bayesian-network": "^2.1.76",
"header-generator": "^2.1.76",
"tslib": "^2.4.0"
},
"engines": {
@@ -1569,12 +1569,12 @@
}
},
"node_modules/fingerprint-injector": {
"version": "2.1.75",
"resolved": "https://registry.npmjs.org/fingerprint-injector/-/fingerprint-injector-2.1.75.tgz",
"integrity": "sha512-TDylxXZV805MtZzKBFWWzqFCzNq4rmAVaHZf8TztgSix6Arc3l8hfyg9fcOMx8rpF4odjVuFIRzEH7rscLPQew==",
"version": "2.1.76",
"resolved": "https://registry.npmjs.org/fingerprint-injector/-/fingerprint-injector-2.1.76.tgz",
"integrity": "sha512-ySlMhYmj7D5ND92BHd/46b6g+izGkj1Vm8qTjSORC3o7HbdFr6eQz8JuL8pVmiJIsC2tsd2ohVvu584HRKurNQ==",
"license": "Apache-2.0",
"dependencies": {
"fingerprint-generator": "^2.1.75",
"fingerprint-generator": "^2.1.76",
"tslib": "^2.4.0"
},
"engines": {
@@ -1738,6 +1738,20 @@
"dev": true,
"license": "ISC"
},
"node_modules/fsevents": {
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -1748,9 +1762,9 @@
}
},
"node_modules/generative-bayesian-network": {
"version": "2.1.75",
"resolved": "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.75.tgz",
"integrity": "sha512-B8B6l7B1tFYvbPNq65vMibLhAfUqyBCGPx3+9VHf2V0hc95LuZIXSlhMOy/zHkfFualU5HJSTi0Nv6EZ2Lq6fA==",
"version": "2.1.76",
"resolved": "https://registry.npmjs.org/generative-bayesian-network/-/generative-bayesian-network-2.1.76.tgz",
"integrity": "sha512-e9BByo5UEXPsrOii4RM94a02y1JXhP5XZKbzC5GWDz62Bbh2jWbrkY0ta2cF1rxrv8pqLu4c98yQC2F50Eqa7A==",
"license": "Apache-2.0",
"dependencies": {
"adm-zip": "^0.5.9",
@@ -1952,13 +1966,13 @@
}
},
"node_modules/header-generator": {
"version": "2.1.75",
"resolved": "https://registry.npmjs.org/header-generator/-/header-generator-2.1.75.tgz",
"integrity": "sha512-IUyoYkL1eMt788nahD3tiw+A4AZ1mhVIWorHiXnS4rBMIeJ4C4HwoOvSKRkElKIvpKqwpkNO6BGvkPuVsKYRYw==",
"version": "2.1.76",
"resolved": "https://registry.npmjs.org/header-generator/-/header-generator-2.1.76.tgz",
"integrity": "sha512-Lqk4zU/MIHkm29Sfle6E3Jo2gUoscoG9x12jDt1RbH3kRq/RN+NRSoRRYggmkI0GQSS0wiOIfWwjgIRrA9nHqA==",
"license": "Apache-2.0",
"dependencies": {
"browserslist": "^4.21.1",
"generative-bayesian-network": "^2.1.75",
"generative-bayesian-network": "^2.1.76",
"ow": "^0.28.1",
"tslib": "^2.4.0"
},
@@ -2760,14 +2774,14 @@
}
},
"node_modules/rimraf": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz",
"integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==",
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.1.0.tgz",
"integrity": "sha512-DxdlA1bdNzkZK7JiNWH+BAx1x4tEJWoTofIopFo6qWUU94jYrFZ0ubY05TqH3nWPJ1nKa1JWVFDINZ3fnrle/A==",
"dev": true,
"license": "ISC",
"license": "BlueOak-1.0.0",
"dependencies": {
"glob": "^11.0.0",
"package-json-from-dist": "^1.0.0"
"glob": "^11.0.3",
"package-json-from-dist": "^1.0.1"
},
"bin": {
"rimraf": "dist/esm/bin.mjs"

View File

@@ -1,7 +1,7 @@
{
"name": "microsoft-rewards-script",
"name": "microsoft-rewards-bot",
"version": "2.51.0",
"description": "Automatically do tasks for Microsoft Rewards but in TS!",
"description": "Automate Microsoft Rewards points collection",
"private": true,
"main": "index.js",
"engines": {
@@ -9,12 +9,12 @@
},
"repository": {
"type": "git",
"url": "https://github.com/Light60-1/Microsoft-Rewards-Bot.git"
"url": "https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot.git"
},
"bugs": {
"url": "https://github.com/Light60-1/Microsoft-Rewards-Bot/issues"
"url": "https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/issues"
},
"homepage": "https://github.com/Light60-1/Microsoft-Rewards-Bot#readme",
"homepage": "https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot#readme",
"scripts": {
"clean": "rimraf dist",
"pre-build": "npm i && npm run clean && node -e \"process.exit(process.env.SKIP_PLAYWRIGHT_INSTALL?0:1)\" || npx playwright install chromium",
@@ -29,7 +29,7 @@
"prepare": "npm run build",
"setup": "node ./setup/update/setup.mjs",
"kill-chrome-win": "powershell -Command \"Get-Process | Where-Object { $_.MainModule.FileVersionInfo.FileDescription -eq 'Google Chrome for Testing' } | ForEach-Object { Stop-Process -Id $_.Id -Force }\"",
"create-docker": "docker build -t microsoft-rewards-script-docker ."
"create-docker": "docker build -t microsoft-rewards-bot ."
},
"keywords": [
"Bing Rewards",
@@ -40,14 +40,14 @@
"Playwright",
"Cheerio"
],
"author": "Light60-1",
"author": "Obsidian-wtf",
"contributors": [
"Microsoft Rewards Bot Community (https://github.com/Light60-1/Microsoft-Rewards-Bot/graphs/contributors)"
"Microsoft Rewards Bot Community (https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/graphs/contributors)"
],
"license": "CC-BY-NC-SA-4.0",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Light60-1"
"url": "https://github.com/sponsors/Obsidian-wtf"
},
"devDependencies": {
"@types/ms": "^0.7.34",

View File

@@ -1248,7 +1248,7 @@ export class Login {
await ConclusionWebhook(
this.bot.config,
`🔐 ${incident.kind}`,
'_Security check by @Light_',
Array.isArray(incident.details) ? incident.details.join('\n') : (incident.details || 'Security check detected unusual activity'),
fields,
severity === 'critical' ? 0xFF0000 : 0xFFAA00
)
@@ -1256,7 +1256,7 @@ export class Login {
}
private getDocsUrl(anchor?: string) {
const base = process.env.DOCS_BASE?.trim() || 'https://github.com/Light60-1/Microsoft-Rewards-Bot/blob/main/docs/security.md'
const base = process.env.DOCS_BASE?.trim() || 'https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot/blob/main/docs/security.md'
const map: Record<string,string> = {
'recovery-email-mismatch':'#recovery-email-mismatch',
'we-cant-sign-you-in':'#we-cant-sign-you-in-blocked'
@@ -1267,7 +1267,7 @@ export class Login {
private startCompromisedInterval() {
if (this.compromisedInterval) clearInterval(this.compromisedInterval)
this.compromisedInterval = setInterval(()=>{
try { this.bot.log(this.bot.isMobile,'SECURITY','Account in security standby. Review before proceeding. Security check by @Light','warn') } catch {/* ignore */}
try { this.bot.log(this.bot.isMobile,'SECURITY','Security standby active. Manual review required before proceeding.','warn') } catch {/* ignore */}
}, 5*60*1000)
}

View File

@@ -62,7 +62,7 @@ export class SearchOnBing extends Workers {
// Fetch from the repo directly so the user doesn't need to redownload the script for the new activities
const response = await this.bot.axios.request({
method: 'GET',
url: 'https://raw.githubusercontent.com/Light60-1/Microsoft-Rewards-Bot/refs/heads/main/src/functions/queries.json'
url: 'https://raw.githubusercontent.com/Obsidian-wtf/Microsoft-Rewards-Bot/refs/heads/main/src/functions/queries.json'
})
queries = response.data
}