Skip to content

ary4f/StupidHacks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎣 Master Baiter

A deliberately stupid, rage-baiting desktop app that interrupts you with full-screen memes and brutally savage AI-generated roasts. Built for hackathons and pure chaos.

Version License Ratio Level


🎯 What Does It Do?

Master Baiter is an Electron desktop app that:

  • Lurks in the background waiting to ratio you
  • Triggers full-screen popups at random intervals (5-30 minutes)
  • Shows dank memes from your local collection
  • Generates AI-powered rage bait about your interests using OpenAI GPT-4o-mini
  • Says completely untrue things that will absolutely trigger you
  • Includes an AI Troll chat where you can argue back (and lose)
  • Tracks your L counter β€” how many times you've been ratio'd
  • Test mode for demos (5-15 second intervals)

⚠️ Warning: This is a parody project. Use responsibly and don't run it on someone else's computer without permission!


πŸ“‹ Features

βœ… Electron.js desktop shell
βœ… Express backend API for memes and savage roasts
βœ… OpenAI integration for brutal, personalized rage bait
βœ… Random popup scheduler with test mode
βœ… Full-screen blocking popups (5-second duration)
βœ… AI Troll chat window (argue and take L's)
βœ… Modern meme/troll aesthetic (Discord colors, gradient text, trendy UI)
βœ… Local JSON data storage for interests and L counter
βœ… Meme manager (serves random images from /assets/memes/)
βœ… Says completely untrue things designed to trigger you


πŸš€ Quick Start

Prerequisites

  • Node.js (v16 or higher)
  • npm (comes with Node.js)
  • OpenAI API key (optional but recommended)

Installation

  1. Clone or navigate to the project:

    cd master-baiter
  2. Install dependencies:

    npm install
  3. Set up environment variables:

    cp .env.example .env

    Edit .env and add your OpenAI API key:

    OPENAI_API_KEY=sk-your-actual-api-key-here
    

    Note: The app will work without an API key using fallback insults, but AI-generated roasts won't be available.

  4. Add meme images (optional but recommended):

    • Place .jpg, .png, .gif, or .webp meme images in /assets/memes/
    • The app includes a placeholder image by default

Running the App

Start both backend and Electron app:

npm start

This will:

  • Start the Express backend on http://localhost:3000
  • Launch the Electron desktop app

Alternative (separate terminals):

# Terminal 1: Backend
npm run backend

# Terminal 2: Electron
npm run electron

πŸ“– How to Use

First Launch

  1. The app will ask for your top 3 interests (e.g., Drake, Blue Jays, Toronto)
  2. These are used to generate brutal, personalized rage bait
  3. Click "πŸ”₯ Let's Get Ratio'd" to proceed

Main Controls

  • πŸ”₯ Start Getting Cooked: Begin the random popup scheduler
  • πŸ›‘ I Give Up: Stop the scheduler
  • Test Mode: Enable for faster popups (5-15 sec) β€” great for demos
  • πŸ’¬ Fight the AI (You'll Lose): Launch the chat window to argue with the AI
  • ⚑ Get Ratio'd Right Now: Trigger a popup immediately

Popups

  • Appear full-screen and block all input
  • Display a random meme + savage AI-generated roast
  • Show completely untrue statements about your interests
  • Auto-close after 5 seconds
  • Update your "times ratio'd" stat

AI Troll Chat

  • Open from the main window
  • Chat with a brutal AI that says mean, untrue things
  • Uses your interests to trigger you specifically
  • Disagrees with everything you say
  • Type and press Enter to send messages (and take L's)

πŸ—‚οΈ Project Structure

master-baiter/
β”œβ”€β”€ main.js                    # Electron main process
β”œβ”€β”€ preload.js                 # Preload script (IPC bridge)
β”œβ”€β”€ package.json               # Dependencies and scripts
β”œβ”€β”€ .env.example               # Environment template
β”œβ”€β”€ .gitignore                 # Git ignore rules
β”œβ”€β”€ README.md                  # This file
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ frontend/
β”‚   β”‚   β”œβ”€β”€ index.html         # Main window UI
β”‚   β”‚   β”œβ”€β”€ popup.html         # Full-screen popup UI
β”‚   β”‚   β”œβ”€β”€ trollbot.html      # Trollbot chat UI
β”‚   β”‚   β”œβ”€β”€ style.css          # Horror-themed styling
β”‚   β”‚   └── script.js          # Frontend logic
β”‚   β”‚
β”‚   └── backend/
β”‚       β”œβ”€β”€ server.js          # Express API server
β”‚       β”œβ”€β”€ insults.js         # OpenAI insult generation
β”‚       β”œβ”€β”€ memeManager.js     # Meme file handling
β”‚       └── scheduler.js       # Popup timing logic
β”‚
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ memes/                 # Meme image storage
β”‚   β”‚   β”œβ”€β”€ README.md          # Meme instructions
β”‚   β”‚   └── placeholder.png    # Default meme
β”‚   └── icon.png               # App icon
β”‚
└── data/
    └── user.json              # User interests and stats

πŸ› οΈ Technical Details

Tech Stack

  • Electron.js: Desktop shell and window management
  • Node.js + Express: Backend API server
  • OpenAI API: GPT-4o-mini for insult generation
  • Pure CSS: Horror-themed styling with animations
  • Vanilla JavaScript: No frontend frameworks

API Endpoints

Method Endpoint Description
GET /api/meme Get random meme URL
GET /api/insult Generate AI insult based on interests
GET /api/user Get user data (interests, stats)
POST /api/user/interests Update user interests
POST /api/stats/increment Increment popup counter
POST /api/trollbot/chat Chat with AI trollbot

Scheduler Logic

  • Production mode: 5-30 minute random intervals
  • Test mode: 5-15 second random intervals
  • Uses EventEmitter to trigger popups
  • Automatically reschedules after each popup

Data Storage

User data is stored in /data/user.json:

{
  "interests": ["Drake", "Blue Jays", "Toronto"],
  "rageStats": {
    "popupsShown": 42,
    "popupsSurvived": 42,
    "lastPopup": "2025-11-02T15:30:00.000Z"
  },
  "createdAt": "2025-11-02T00:00:00.000Z"
}

🎨 UI Theme

The app uses a modern meme/troll aesthetic:

  • Colors: Discord purple (#5865F2), hot pink (#EB459E), yellow (#FEE75C)
  • Effects: Rainbow gradients, smooth animations, modern UI
  • Font: System fonts (Segoe UI, San Francisco, etc.)
  • Vibe: Trendy, savage, internet troll culture

πŸ› Troubleshooting

Backend won't start

  • Make sure port 3000 is available
  • Check that Node.js is installed: node --version

Popups not appearing

  • Ensure the backend is running (http://localhost:3000)
  • Check the console for errors
  • Try clicking "πŸ§ͺ Test Popup Now"

AI insults not working

  • Verify your OPENAI_API_KEY in .env
  • Check your OpenAI API quota/balance
  • Fallback insults will be used if API fails

No memes showing

  • Add image files to /assets/memes/
  • Supported formats: .jpg, .jpeg, .png, .gif, .webp

πŸ“ Development

Dev Mode (with auto-restart)

npm run dev

Backend Only

npm run backend

Electron Only

npm run electron

πŸŽ“ Learning Resources

This project demonstrates:

  • Electron IPC (inter-process communication)
  • Express REST API design
  • OpenAI API integration
  • Event-driven architecture
  • CSS animations and effects

🀝 Contributing

This is a hackathon/parody project, but feel free to:

  • Add more fallback insults
  • Create meme templates
  • Improve the UI
  • Add sound effects
  • Make it even more annoying

βš–οΈ License

MIT License - Do whatever you want with this.


🚨 Disclaimer

This is a parody project for entertainment purposes only.

  • Don't use this to actually harass people
  • Get consent before running on shared computers
  • Not responsible for rage-induced damages
  • Use at your own risk

πŸ™ Credits

Built with chaos in mind. Inspired by the internet's love for trolling.

Made with ❀️ and πŸ’€ for hackathons


πŸ“ž Support

Having issues? Remember: that's kind of the point. 😈

But seriously, check the console logs or open an issue if something's broken.


Now go forth and rage! πŸ’€πŸ”₯

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors