diff --git a/Dockerfile b/Dockerfile index bbd0404..595e837 100644 --- a/Dockerfile +++ b/Dockerfile @@ -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"] \ No newline at end of file +CMD ["npm", "run", "start:schedule"] diff --git a/LICENSE b/LICENSE index 75cea4d..ba172d7 100644 --- a/LICENSE +++ b/LICENSE @@ -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 \ No newline at end of file diff --git a/NOTICE b/NOTICE index dc30fe7..f90604a 100644 --- a/NOTICE +++ b/NOTICE @@ -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 diff --git a/README.md b/README.md index 7b3dfea..a672b76 100644 --- a/README.md +++ b/README.md @@ -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) @@ -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) diff --git a/SECURITY.md b/SECURITY.md index 416e25e..df87a4b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -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) --- diff --git a/assets/logo.png b/assets/logo.png index 188f4b0..6a75762 100644 Binary files a/assets/logo.png and b/assets/logo.png differ diff --git a/compose.yaml b/compose.yaml index 04108e1..6837b46 100644 --- a/compose.yaml +++ b/compose.yaml @@ -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) diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 423e743..da972d0 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -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 "" diff --git a/docs/FAQ.md b/docs/FAQ.md index f5268ae..3babfd9 100644 --- a/docs/FAQ.md +++ b/docs/FAQ.md @@ -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 ---
-**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) diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index 0d88cb4..0000000 --- a/docs/README.md +++ /dev/null @@ -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 - ---- - -
- -**[Start Reading →](index.md)** - -Need help? [Join our Discord](https://discord.gg/h6Z69ZPPCz) - -
diff --git a/docs/docker.md b/docs/docker.md index 75ecb78..b520106 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -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 diff --git a/docs/getting-started.md b/docs/getting-started.md index 96cbcfc..128dbff 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -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) --- diff --git a/docs/git-conflict-resolution.md b/docs/git-conflict-resolution.md index 5261578..b182f8d 100644 --- a/docs/git-conflict-resolution.md +++ b/docs/git-conflict-resolution.md @@ -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 diff --git a/docs/index.md b/docs/index.md index 0466aa2..3e64c22 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,90 +1,52 @@
-Microsoft Rewards Script Logo +# 📚 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)
--- -## 🚀 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 +## � 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) diff --git a/package-lock.json b/package-lock.json index 2f1dc05..5e4ca7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -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" diff --git a/package.json b/package.json index d799c3a..b6344fc 100644 --- a/package.json +++ b/package.json @@ -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", diff --git a/src/functions/Login.ts b/src/functions/Login.ts index d530a23..b862919 100644 --- a/src/functions/Login.ts +++ b/src/functions/Login.ts @@ -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 = { '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) } diff --git a/src/functions/activities/SearchOnBing.ts b/src/functions/activities/SearchOnBing.ts index 1661704..603ed27 100644 --- a/src/functions/activities/SearchOnBing.ts +++ b/src/functions/activities/SearchOnBing.ts @@ -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 }