๐ฅ 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
netshcommands - macOS: Reads from keychain
- Linux: Uses NetworkManager
- Windows: Uses
- ๐ฅฉ 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:
-
Clone the repository:
git clone https://github.com/foglomon/bbqr cd bbqr
-
Install dependencies:
pip install -r requirements.txt
-
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 profilesto list saved networks - Retrieves passwords with
netsh wlan show profile key=clear
macOS:
- Reads from system keychain using
securitycommand - Falls back to
networksetupfor 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:
- Enter SSID (network name)
- Select security type (WPA/WPA2, WEP, Open)
- 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
- Upload file to 0x0.st (30-day expiration)
- Generate QR code containing download information
- Scan QR code to download and reassemble file
- 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 generationPillow: Image processingpyperclip: Clipboard operationscolorama: Cross-platform colored outputwatchdog: File monitoringpyzbar: QR code decodingrequests: 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
--saveto create PNG files with auto-generated names - Larger
--sizevalues 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
- Fork the repository
- Create a feature branch
- Add your BBQ-themed improvements
- Test thoroughly across platforms
- 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
-
Clone or download this repository:
git clone <repository-url> cd bbqr
-
Install dependencies:
pip install -r requirements.txt
-
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
- Fork the repository
- Create a feature branch
- Add your BBQ-themed improvements
- Test thoroughly
- 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
--outputto save QR codes as image files - Larger
--sizevalues 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
699b43d93f0110fa62a05683e05c30a42df52d6394699b094e138d62f8b105d5
|
|
| MD5 |
b4657400a0128fd41bfc31f04c75f450
|
|
| BLAKE2b-256 |
47b6878e3879451421256b0c51bd4e0bd3af7cf88153277135a9ba658de43fc0
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5230d011ecd9a72df1e0fa1bc14ebec50a84e3a6a97cedfefbc1bdea564560f6
|
|
| MD5 |
76fed2b3b4ae9f6cae9e21aca9cd4d1a
|
|
| BLAKE2b-256 |
1aa24fa9ac4896896cf442744b79b985e88d8d6b739e7ed7879bbdaeba164cad
|