Skip to main content

๐Ÿ”ฅ BBQR - The hottest terminal-based QR code generator that grills your data to perfection!

Project description

๐Ÿ”ฅ BBQR (Barbequer) - QR Code Generator ๐Ÿ”ฅ

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

๐Ÿ– 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!"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bbqr-0.2.0.tar.gz (40.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bbqr-0.2.0-py3-none-any.whl (39.3 kB view details)

Uploaded Python 3

File details

Details for the file bbqr-0.2.0.tar.gz.

File metadata

  • Download URL: bbqr-0.2.0.tar.gz
  • Upload date:
  • Size: 40.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for bbqr-0.2.0.tar.gz
Algorithm Hash digest
SHA256 699b43d93f0110fa62a05683e05c30a42df52d6394699b094e138d62f8b105d5
MD5 b4657400a0128fd41bfc31f04c75f450
BLAKE2b-256 47b6878e3879451421256b0c51bd4e0bd3af7cf88153277135a9ba658de43fc0

See more details on using hashes here.

File details

Details for the file bbqr-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: bbqr-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 39.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.1

File hashes

Hashes for bbqr-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5230d011ecd9a72df1e0fa1bc14ebec50a84e3a6a97cedfefbc1bdea564560f6
MD5 76fed2b3b4ae9f6cae9e21aca9cd4d1a
BLAKE2b-256 1aa24fa9ac4896896cf442744b79b985e88d8d6b739e7ed7879bbdaeba164cad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page