Resource icon

Hotlink Converter 1.0.0

No permission to download
Compatible XF 2.x versions
  1. 2.3
Additional requirements
XenForo Resource Manager (XFRM) 2.3.0+
License
Free / Open Source
Visible branding
No
Hotlink Converter is an admin tool that batch-converts externally hotlinked images in XFRM resource descriptions into locally-stored XenForo attachments. It scans [IMG]https://external.com/pic.jpg[/IMG] BB code tags, downloads the images, creates proper XF attachments, and replaces the BB code with [ATTACH=full]id[/ATTACH].

Built as a one-time migration tool for forums with legacy resource content that hotlinks images from external hosts that may go offline at any time.



Key Features​

  • Admin Dashboard - Shows how many resource updates contain hotlinked images, conversion statistics (converted/failed/skipped/pending), and action buttons.
  • Dry Run Mode - Preview what will be converted without downloading anything. Results appear in the conversion log as "pending" entries.
  • Live Conversion - Downloads external images, creates XF attachments, and replaces [IMG] tags with [ATTACH=full] tags. Runs as a resumable background job.
  • Confirmation Overlay - Live conversion requires explicit confirmation since it modifies resource content irreversibly.
  • Conversion Log - Paginated log of every URL processed, with status badges, attachment links, file sizes, error messages, and timestamps. Filterable by status.
  • Smart Handling - Handles all [IMG] tag variants ([IMG width="400" height="300"], [IMG alt="desc"], etc.).
  • URL Deduplication - If the same external URL appears multiple times in one resource update, it's downloaded once and all instances share the same attachment.
  • Local URL Skipping - URLs pointing to your own board are automatically skipped.
  • Idempotent - Safe to re-run. Already-converted URLs are skipped on subsequent runs. No duplicate downloads or attachments.
  • Failure Resilience - Failed downloads (404s, timeouts, invalid images) are logged with specific error messages. The job continues processing remaining URLs.
  • Clean Uninstall - Drops the conversion log table on uninstall.



How It Works​

  1. Navigate to AdminCP > Tools > Hotlink Converter
  2. Review the dashboard - See how many resource updates contain external [IMG] tags
  3. Run a Dry Run - Click "Dry Run" to scan without converting. Check the log to see what would be processed.
  4. Convert All - Click "Convert All", confirm in the overlay, and the background job handles the rest. It downloads each image, creates an XF attachment, and updates the resource description.
  5. Check the Log - Review the conversion log for any failures. Filter by status to focus on issues.



What Gets Converted​

Before:
Code:
Check out this screenshot: [IMG]https://external-site.com/image.jpg[/IMG]

After:
Code:
Check out this screenshot: [ATTACH=full]12345[/ATTACH]

The image is now stored locally as a proper XF attachment, associated with the resource update. It will survive even if the external host goes offline.



Technical Details​

  • Architecture: Service + Job + Repository pattern. One database table (xf_qubn_hlc_conversion_log) for audit logging.
  • Downloads: Uses XF's built-in getUntrusted() HTTP reader with SSRF protection. 15-second timeout, 10MB file size limit per image.
  • Supported formats: JPG, JPEG, PNG, GIF, WebP, BMP
  • Attachment creation: Uses XF's native PreparerService - same API as manual uploads. Properly updates attach_count on the resource update.
  • Job processing: Cursor-based resumable job. Processes 50 resource updates per batch with time-limit checks. Can be cancelled from the AdminCP job queue.
  • Compatibility: Requires XenForo 2.3.0+ and XF Resource Manager 2.3.0+
  • Code Quality: PHPStan level 3 clean. No class extensions - completely self-contained.



Installation​

  1. Download and extract the ZIP file
  2. Upload the Qubn/HotlinkConverter/ folder to src/addons/
  3. Go to AdminCP > Add-ons > Install from archive (or Install/upgrade)
  4. Navigate to AdminCP > Tools > Hotlink Converter



Addon ID: Qubn/HotlinkConverter
Vendor: Qubn
License: Free / Open Source
  • 01-dashboard-clean.webp
    01-dashboard-clean.webp
    27.6 KB · Views: 12
  • 02-dashboard-after-dryrun.webp
    02-dashboard-after-dryrun.webp
    27.5 KB · Views: 11
  • 03-log-dryrun-entries.webp
    03-log-dryrun-entries.webp
    27.6 KB · Views: 11
  • 04-log-filtered-pending.webp
    04-log-filtered-pending.webp
    25.3 KB · Views: 10
  • 05-confirmation-overlay.webp
    05-confirmation-overlay.webp
    13.9 KB · Views: 8
  • 06-dashboard-after-conversion.webp
    06-dashboard-after-conversion.webp
    27.9 KB · Views: 6
  • 07-log-all-statuses.webp
    07-log-all-statuses.webp
    27.5 KB · Views: 7
  • 08-navigation-sidebar.webp
    08-navigation-sidebar.webp
    8.7 KB · Views: 11
  • Like
Reactions: mrdoitnyce
Author
qubn
Downloads
2
Views
29
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from qubn

Back
Top Bottom