Skip to content
/ bbdrop Public

Workflow-driven upload orchestration for image galleries — multi-host distribution, intelligent queues, tabs, hooks, customizable BBCode. Upload smarter, not harder.

License

Notifications You must be signed in to change notification settings

twwat/bbdrop

Repository files navigation

BBDrop

Desktop app for uploading image galleries to imx.to and 6 file hosts, generating BBCode, and tracking upload status.

GitHub Release GitHub Actions Workflow Status GitHub License Python Qt Windows macOS Linux


Install

Binary (recommended)

  1. Go to the Releases page
  2. Download the latest version for your operating system
  3. Extract and run the executable (bbdrop)

From source

git clone https://github.com/twwat/bbdrop.git
cd bbdrop
pip install -r requirements.txt
python bbdrop.py --gui

Usage

GUI

python bbdrop.py --gui

Drag folders into the upload queue, configure settings, and click Start All. Results appear in the BBCode viewer.

To add a folder to an already-running instance:

python bbdrop.py --gui /path/to/gallery

CLI

python bbdrop.py /path/to/images
python bbdrop.py /path/to/images --name "Gallery Name" --template "Forum Post"
All CLI flags
Flag Description Default
folder_paths Paths to folders containing images --
-v, --version Print version and exit --
--gui Launch GUI off
--name NAME Gallery name folder name
--size {1,2,3,4,6} Thumbnail size: 1=100, 2=180, 3=250, 4=300, 6=150 3
--format {1,2,3,4} Thumbnail format: 1=fixed width, 2=proportional, 3=square, 4=fixed height 2
--max-retries N Retry attempts for failed uploads 3
--parallel N Simultaneous upload count 4
--template, -t NAME BBCode template name default
--setup-secure Set up secure password storage (interactive) --
--rename-unnamed Rename all unnamed galleries from previous uploads --
--debug Print all log messages to console off
--install-context-menu Install Windows right-click menu entry --
--remove-context-menu Remove Windows right-click menu entry --

Windows context menu

python bbdrop.py --install-context-menu

Right-click any folder and select "Upload to imx.to (GUI)" to add it to the queue. Remove with --remove-context-menu.


Supported Hosts

Host Auth Max File Size Storage Notes
IMX.to API / Session Unlimited Unlimited Gallery/thumbnail hosting, status checking
FileBoom API 10 GiB 20 TiB* Multi-step, deduplication
Filedot Session Varies 10 TiB CAPTCHA handling, CSRF protection
Filespace Cookie Varies 50+ GiB (varies) Cookie-based auth, storage monitoring
Keep2Share API 10 GiB 20 TiB* Multi-step, deduplication
Rapidgator API / Token 5 GiB 4+ TiB (varies) MD5 verification, polling
TezFiles API Varies 20 TiB* Multi-step, deduplication

* 20 TiB combined storage shared between FileBoom, Keep2Share, and TezFiles.

All hosts support automatic retry, connection pooling, and token caching.


Features

  • Upload engine -- concurrent workers, batch processing, drag-and-drop queue, resume, duplicate detection, progress tracking
  • BBCode templates -- 18 placeholders, multiple templates, switch on the fly
  • Archive management -- create ZIP/7Z archives with configurable compression and split support; extract ZIP, 7Z, RAR, TAR
  • File host uploads -- upload to any combination of 6 file hosts alongside imx.to
  • Proxy system -- per-host SOCKS5/HTTP proxy support
  • Statistics -- upload history, bandwidth tracking, per-host metrics
  • Online monitoring -- check availability of previously uploaded files
  • Credential storage -- OS keyring with encrypted fallback
  • Hook system -- run external scripts on upload events
  • GUI -- PyQt6, dark/light themes, system tray, single-instance mode, keyboard shortcuts, custom tabs

Configuration

Config file: ~/.bbdrop/bbdrop.ini Data directory: ~/.bbdrop/ Templates: ~/.bbdrop/*.template.txt

File host credentials are configured in Settings > File Hosts. Use Test Connection to verify.

BBCode placeholders (18)
Placeholder Description
#folderName# Gallery name
#width# Average width
#height# Average height
#longest# Longest dimension
#extension# Common format
#pictureCount# Number of images
#folderSize# Total size
#galleryLink# imx.to gallery URL
#allImages# BBCode for all images
#hostLinks# File host download links
#custom1# -- #custom4# User-defined fields
#ext1# -- #ext4# External link fields (from hooks)

Security

Feature Implementation
Credential Storage OS Keyring (Windows Credential Manager / macOS Keychain / Linux Secret Service) with Fernet AES-128-CBC fallback
Password Hashing PBKDF2-HMAC-SHA256 (100,000 iterations) with cryptographic salt
Transport Security TLS 1.2+ with SSL certificate verification via certifi CA bundle
Token Management Encrypted token caching with configurable TTL and automatic refresh
Database Security Parameterized SQL queries, SQLite WAL mode
Thread Safety 60+ threading locks protecting shared state
Timing Attack Prevention Constant-time password comparison via secrets.compare_digest()
Input Validation Path normalization, SQL wildcard escaping, column whitelist validation

Building

pyinstaller bbdrop.spec
Development setup
git clone https://github.com/twwat/bbdrop.git
cd bbdrop
python -m venv venv
source venv/bin/activate   # Linux/Mac
./venv/scripts/activate    # Windows
pip install -r requirements.txt
pip install -r requirements-dev.txt
pytest tests/
Dependencies

Core: PyQt6 6.9.1, requests 2.32.4, pycurl 7.45.7, Pillow 11.3.0, cryptography 45.0.5, keyring 25.0+, psutil 5.9+, certifi, markdown, standard-imghdr, tqdm, colorama

Archive: py7zr, rarfile, splitzip

Windows only: pywin32-ctypes, winregistry

See requirements.txt for pinned versions.

System requirements
  • OS: Windows 10+, Linux (Ubuntu 20.04+, Fedora 35+), macOS 15+
  • Python: 3.14+ (when running from source)
  • RAM: 512 MB minimum, 2 GB recommended
  • Disk: 100 MB minimum, 500 MB recommended (logs/cache)

Contributing

See CONTRIBUTING.md. Bug reports and feature requests: GitHub Issues.

License

MIT -- see LICENSE.


Docs | Changelog | Issues

About

Workflow-driven upload orchestration for image galleries — multi-host distribution, intelligent queues, tabs, hooks, customizable BBCode. Upload smarter, not harder.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages