Skip to content

foglomon/bbqr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”₯ BBQR (Barbequer) - QR Code Generator πŸ”₯

BBQR (pronounced "barbequer"), the hottest terminal-based QR code generator that grills your data to perfection!

PyPI - Status PyPI - Version

πŸ– Features

BBQR can handle all your QR code grilling needs:

Core QR Generation

  • 🌐 URLs - Grill web links into scannable codes
  • πŸ“ Text - Smoke any text into QR perfection
  • πŸ–ΌοΈ Images - Convert images to base64 QR codes
  • πŸ“‹ Clipboard - Automatically grab clipboard content
  • πŸ”„ Piped Input - Accept data from pipes and redirects
  • 🎨 Logo Embedding - Add custom logos to QR codes with high-quality rendering

WiFi QR Codes (Cross-Platform)

  • πŸ“Ά Saved WiFi Profiles:
    • Windows: Uses netsh commands
    • macOS: Reads from keychain
    • Linux: Uses NetworkManager
  • πŸ₯© Manual WiFi Entry: Enter SSID, password, security type
  • Supports WPA/WPA2, WEP, and Open networks

File Operations

  • ⬆️ File Upload: Upload files to 0x0.st with QR download codes
  • πŸ“¦ Large File Support: Automatic chunking for files >512MB
  • πŸ”— Parallel Processing: Multi-threaded uploads/downloads
  • ⏰ Auto-Expiration: Files removed after 30 days

Advanced Features

  • πŸ‘€ File Watching: Auto-generate QR codes when files change
  • πŸ“‚ Multi QR Generation: Process multiple lines from files
  • πŸ” QR Code Reader: Decode and handle various QR content types
  • 🎨 BBQ Theme: Colorful, fun interface with ASCII art
  • πŸ–ΌοΈ High-Quality Logo Support: aspect ratio preservation

πŸ”§ Installation

Installation

pip install bbqr

Then start grilling:

bbqr --help

Development Setup

If you want to contribute or run from source:

  1. Clone the repository:

    git clone https://github.com/foglomon/bbqr
    cd bbqr
  2. Install dependencies:

    pip install -r requirements.txt
  3. Start grilling:

    python bbqr.py

πŸš€ Usage

Command Line Options

# Basic QR generation
bbqr --url "https://github.com"
bbqr --text "Hello, World!"
bbqr --image photo.jpg
bbqr --clipboard
bbqr --wifi

# File operations
bbqr --file document.pdf
bbqr --read qrcode.png

# Advanced features
bbqr --watch notes.txt
bbqr --multi urls.txt
bbqr --watch journal.md --output qr_codes/

# Options
bbqr --text "Hello" --size 15 --save --copy
bbqr --url "https://github.com" --save

# Logo embedding
bbqr --url "https://mycompany.com" --logo company_logo.png
bbqr --wifi --logo logo.png --logo-size 25
bbqr --text "Hello World!" --logo brand.jpg --save

# Piped input
echo "Secret message" | bbqr
date | bbqr --save
curl -s https://api.github.com/users/octocat | bbqr

Interactive Mode

Run without arguments for the BBQ-themed menu:

bbqr

You'll see a beautiful interface:

πŸ”₯ Welcome to BBQR - The Barbequer! πŸ”₯
Time to grill your data into delicious QR codes!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

πŸ– Interactive Mode - What would you like to grill?
1. 🌐 URL
2. πŸ“ Text
3. πŸ–ΌοΈ  Image
4. πŸ“‹ Clipboard
5. πŸ›œ  WiFi
6. ⬆️  Upload File
7. πŸ‘€ Watch File
8. πŸ“‚ Multi QR from File
9. πŸ” Read QR Code

πŸ’Ύ Output Options

πŸ–₯️ Terminal Display (Always)

  • Dark/Light Mode Compatible: Uses ASCII blocks optimized for both themes
  • Instant Preview: See your QR code immediately without files
  • Beautiful ASCII Art: Clean, scannable terminal QR codes

πŸ’Ύ File Saving (Optional)

  • Auto-generated filenames: bbqr_[type]_[YYYYMMDD_HHMMSS].png
  • Safe naming: No overwriting, proper extensions
  • Multiple formats supported: PNG output for all QR types

🎨 Logo Embedding

BBQR now supports adding custom logos to your QR codes with professional-quality rendering:

Features

  • High-Quality Processing: LANCZOS resampling for crisp logo rendering
  • Aspect Ratio Preservation: Logos maintain their original proportions
  • Multiple Format Support: PNG, JPG, JPEG, GIF, BMP, TIFF
  • Transparency Support: Full RGBA and palette transparency handling
  • Error Correction: Automatically uses higher error correction for logo QR codes
  • Auto-Save: QR codes with logos are automatically saved to files

Usage

# Add logo via command line
bbqr --text "Hello World!" --logo company_logo.png
bbqr --wifi --logo brand.jpg --logo-size 25
bbqr --url "https://mysite.com" --logo logo.png --logo-size 15

# Interactive mode prompts for logo options
bbqr

Logo Size Options

  • Size range: 10-30% of QR code size
  • Default: 20% (optimal for most designs)
  • Larger logos may affect scannability

Technical Details

  • Uses higher error correction (ERROR_CORRECT_H) when logos are embedded
  • Logos are centered and scaled proportionally
  • Output files include timestamp: bbqr_[type]_with_logo_[timestamp].png

πŸ“Ά WiFi QR Codes

Cross-Platform Profile Support

Windows:

  • Uses netsh wlan show profiles to list saved networks
  • Retrieves passwords with netsh wlan show profile key=clear

macOS:

  • Reads from system keychain using security command
  • Falls back to networksetup for profile listing

Linux:

  • Uses NetworkManager (nmcli) for profile management
  • Falls back to /etc/wpa_supplicant/wpa_supplicant.conf

Manual WiFi Setup

For new networks or when automatic retrieval fails:

  1. Enter SSID (network name)
  2. Select security type (WPA/WPA2, WEP, Open)
  3. Enter password if required

Generated QR codes work with all modern smartphones!

πŸ“ File Upload & Sharing

BBQR integrates with 0x0.st for easy file sharing:

Features

  • Large File Support: Automatic chunking for files >512MB
  • Parallel Processing: Multi-threaded uploads/downloads
  • Progress Tracking: Real-time progress bars
  • Integrity Checking: SHA256 hash verification
  • Auto-Cleanup: Temporary files automatically removed

How It Works

  1. Upload file to 0x0.st (30-day expiration)
  2. Generate QR code containing download information
  3. Scan QR code to download and reassemble file
  4. Automatic integrity verification

πŸ” QR Code Reading

BBQR can decode various QR code types:

WiFi QR Codes

  • Displays network name, security type, password
  • Can automatically connect on Windows
  • Supports standard WiFi QR format

File Upload QR Codes

  • Shows file info (name, size, chunks)
  • Downloads and reassembles automatically
  • Verifies file integrity

Image QR Codes

  • Extracts base64-encoded images
  • Saves to Pictures directory
  • Supports multiple image formats

Text/URL QR Codes

  • Displays content with formatting
  • Opens URLs in browser
  • Copies content to clipboard

πŸ‘€ File Watching

Monitor files for changes and auto-generate QR codes:

# Watch file with default output
python bbqr.py --watch notes.txt

# Custom output location
python bbqr.py --watch journal.md --output qr_codes/journal_qr.png

# Custom QR size
python bbqr.py --watch data.txt --size 15

Uses cross-platform file watching (falls back to polling if needed).

πŸ“‚ Multi QR Generation

Generate QR codes from multiple lines in a file:

python bbqr.py --multi urls.txt
python bbqr.py --multi contact_list.txt --size 12

Creates numbered QR code files in a qrcodes/ directory.

οΏ½ Technical Details

Dependencies

  • qrcode[pil]: QR code generation
  • Pillow: Image processing
  • pyperclip: Clipboard operations
  • colorama: Cross-platform colored output
  • watchdog: File monitoring
  • pyzbar: QR code decoding
  • requests: HTTP operations for file upload

File Structure

bbqr.py              # Main script
requirements.txt     # Dependencies
README.md           # This file
QUICKSTART.md       # Quick start guide
LICENSE             # MIT License

Performance

  • Multi-threaded file operations
  • Efficient chunking algorithm
  • Memory-conscious processing
  • Progress tracking for long operations

🎨 BBQ Theme

BBQR uses a fun BBQ theme throughout:

  • πŸ”₯ Fire emojis for active operations
  • πŸ₯© Meat emojis for success messages
  • πŸ’¨ Smoke emojis for info messages
  • πŸ’₯ Explosion emojis for errors
  • BBQ-themed terminology ("grilling", "smoking", "cooking")

πŸ”₯ Examples

Basic Usage

# Quick URL QR
python bbqr.py -u "https://example.com"

# Text with custom size
python bbqr.py -t "Meeting at 3PM" -s 12

# Clipboard content
python bbqr.py -c

Advanced Usage

# File upload with save
python bbqr.py --file presentation.pdf --save

# Watch file with custom output
python bbqr.py --watch todo.txt --output ~/Desktop/todo_qr.png

# Multi QR generation
python bbqr.py --multi contact_list.txt

# Read and handle QR code
python bbqr.py --read wifi_qr.png

Piped Usage

# From file
cat secret.txt | python bbqr.py

# From command output
date | python bbqr.py --save

# Chain commands
curl -s https://api.github.com/users/octocat | python bbqr.py --copy

πŸ’‘ Tips

  • QR codes display directly in terminal using ASCII art
  • Use --save to create PNG files with auto-generated names
  • Larger --size values create more detailed QR codes
  • WiFi QR codes work with most modern smartphones
  • File watching supports both real-time monitoring and polling fallback
  • Multi QR generation creates organized numbered files
  • QR reading handles multiple content types intelligently

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add your BBQ-themed improvements
  4. Test thoroughly across platforms
  5. Submit a pull request

πŸ“„ License

MIT License - Feel free to grill this code however you like!


Happy Grilling! πŸ”₯πŸ–πŸ”₯

"Where data meets the grill, and QR codes are always perfectly cooked!"

πŸ”§ Installation

Prerequisites

  • Python 3.7 or higher
  • Windows OS (for WiFi profile management)

Quick Setup

  1. Clone or download this repository:

    git clone <repository-url>
    cd bbqr
  2. Install dependencies:

    pip install -r requirements.txt
  3. Make it executable (optional):

    pip install -e .

πŸš€ Usage

Command Line Options

# Generate QR from URL
python bbqr.py --url https://github.com

# Generate QR from text
python bbqr.py --text "Hello, World!"

# Generate QR from image
python bbqr.py --image photo.jpg

# Generate QR from clipboard
python bbqr.py --clipboard

# Generate WiFi QR code
python bbqr.py --wifi

# Piped input
echo "Secret message" | python bbqr.py

# Custom size and auto-save with timestamp
python bbqr.py --text "Hello" --size 15 --save

# Save any QR code with auto-generated filename (works with all input types)
python bbqr.py --url "https://github.com" --save
python bbqr.py --wifi --save

πŸ’Ύ Output Functionality

BBQR has a safe dual output system:

πŸ–₯️ Terminal Display (Always)

  • Dark Mode Compatible: Uses white blocks that show clearly on dark backgrounds
  • Light Mode Compatible: Uses proper spacing for light backgrounds
  • ASCII Art: Beautiful terminal-based QR code display
  • Instant View: See your QR code immediately without opening files

Interactive Mode

Run without arguments for interactive mode:

python bbqr.py

You'll see a beautiful BBQ-themed menu:

πŸ”₯ Welcome to BBQR - The Barbequer! πŸ”₯
Time to grill your data into delicious QR codes!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

πŸ– Interactive Mode - What would you like to grill?
1. 🌐 URL
2. πŸ“ Text
3. πŸ–ΌοΈ  Image
4. πŸ“‹ Clipboard
5. πŸ“Ά WiFi

WiFi QR Codes

The WiFi feature offers two grilling methods:

πŸ”₯ Saved WiFi Profiles

  • Automatically discovers all saved Windows WiFi profiles
  • Retrieves stored passwords using Windows netsh
  • One-click QR generation for known networks

πŸ₯© Manual WiFi Entry

  • Enter SSID, security type, and password manually
  • Supports WPA/WPA2, WEP, and Open networks
  • Perfect for sharing guest networks

πŸ“± WiFi QR Code Format

Generated WiFi QR codes use the standard format:

WIFI:T:WPA;S:NetworkName;P:password;;

When scanned, devices will automatically prompt to join the network!

🎨 BBQ Theme

BBQR brings the heat with:

  • πŸ”₯ Fire emojis for emphasis
  • πŸ₯© Meat-themed progress indicators
  • πŸ– Grill terminology throughout
  • πŸ’¨ Smoke effects for processing

πŸ”§ Technical Details

Dependencies

  • qrcode[pil] - QR code generation with PIL imaging
  • Pillow - Image processing
  • pyperclip - Clipboard access
  • click - Command-line interface enhancements
  • colorama - Cross-platform colored terminal text

Windows WiFi Integration

Uses Windows netsh command for:

  • Listing saved WiFi profiles
  • Retrieving stored passwords
  • No additional dependencies required

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Add your BBQ-themed improvements
  4. Test thoroughly
  5. Submit a pull request

πŸ“„ License

GNU GPLv3

πŸ”₯ Examples

Basic Usage

# Quick URL QR
python bbqr.py -u "https://example.com"

# Text with custom size
python bbqr.py -t "Meeting at 3PM" -s 12

# Clipboard content
python bbqr.py -c

Piped Usage

# From file
cat secret.txt | python bbqr.py

# From command output
date | python bbqr.py

# Chain commands
curl -s https://api.github.com/users/octocat | python bbqr.py

WiFi Sharing

# Interactive WiFi setup
python bbqr.py --wifi

# This will show:
# 1. πŸ”₯ Use saved WiFi profile
# 2. πŸ₯© Add new WiFi credentials

πŸ’‘ Tips

  • QR codes are displayed directly in the terminal using ASCII art
  • Use --output to save QR codes as image files
  • Larger --size values create more detailed QR codes
  • WiFi QR codes work with most modern smartphones
  • Pipe any command output to instantly create QR codes

Happy Grilling! πŸ”₯πŸ–πŸ”₯

"Where data meets the grill, and QR codes are always perfectly cooked!"

About

πŸ”₯ BBQR (Barbequer) - A terminal-based QR code generator that grills your data to perfection! Generate QR codes from URLs, text, images, clipboard, WiFi credentials, and files with cross-platform WiFi support, file uploading, logo embedding, and a fun BBQ-themed interface.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages