Skip to content

feature: Add inline image, video, and link embeds#19

Open
D4M13N-D3V wants to merge 6 commits into
wodencafe:masterfrom
D4M13N-D3V:feature/inline-embeds
Open

feature: Add inline image, video, and link embeds#19
D4M13N-D3V wants to merge 6 commits into
wodencafe:masterfrom
D4M13N-D3V:feature/inline-embeds

Conversation

@D4M13N-D3V
Copy link
Copy Markdown

@D4M13N-D3V D4M13N-D3V commented Jan 24, 2026

Summary

  • Images display as thumbnails in chat, click to open full-size scalable viewer
  • YouTube/Vimeo links show video thumbnail with play button overlay, click opens in browser
  • Direct video files (.mp4, .webm, .mov, .mkv) show placeholder with play button, click opens VLCJ player
  • Link previews fetch OpenGraph metadata and display preview cards with dark overlay
  • Async loading with caching for performance
  • Embeds appear below URLs in chat with proper formatting
  • Fix chat scroll anchoring to stay at bottom when new messages arrive

New Dependencies

  • jsoup 1.18.3 - HTML parsing for OpenGraph link previews
  • vlcj 4.8.3 - Video playback for direct video files (requires VLC installed on system)

Configuration

New options in application.yml under irc.embeds:

irc:
  embeds:
    enabled: true
    images-enabled: true
    videos-enabled: true
    link-previews-enabled: true
    max-thumbnail-width: 400
    max-thumbnail-height: 300
    cache-size-bytes: 52428800  # 50MB
    fetch-timeout-ms: 10000

Test plan

  • Send message with image URL (e.g., .png, .jpg, .gif) - should show thumbnail
  • Click image thumbnail - should open full-size viewer
  • Send YouTube/Vimeo URL - should show video thumbnail with play button
  • Click video thumbnail - should open in browser
  • Send direct video URL (.mp4) - should show placeholder with play button
  • Send regular website URL - should show link preview with OG image if available
  • Disable embeds in config - should not show any embeds
  • Verify chat stays scrolled to bottom as new messages arrive

🤖 Generated with Claude Code

Damien added 2 commits January 24, 2026 01:50
- Images display as thumbnails, click to open full-size viewer
- YouTube/Vimeo links show thumbnail and open in browser
- Direct video files (.mp4, .webm, .mov, .mkv) show placeholder with play button
- Link previews fetch OpenGraph metadata and display preview images
- Embeds appear below URLs in chat with proper formatting

New dependencies:
- jsoup 1.18.3 for HTML parsing
- vlcj 4.8.3 for video playback (requires VLC installed)

Configuration options in application.yml under irc.embeds:
- enabled, images-enabled, videos-enabled, link-previews-enabled
- max-thumbnail-width/height, cache-size-bytes, fetch-timeout-ms
- Halve link preview card size (200x150 default)
- Center OG image at original size, crop sides
- Dark overlay with word-wrapped title and description
- Smaller fonts for compact display
Damien added 2 commits January 24, 2026 02:19
- Add VLCJ-based frame grabbing for direct video file thumbnails
- Fix chat not staying anchored to bottom by deferring scroll to after layout
@wodencafe
Copy link
Copy Markdown
Owner

Nice work @D4M13N-D3V
With regard to videos, can we embed a JavaFX WebView wrapping the video instead of the requirement on VLC?

Damien added 2 commits January 24, 2026 03:37
- Add JavaFX plugin and web/swing modules for WebView support
- Create VideoPlayerPanel using JFXPanel + WebView for inline playback
- Support YouTube, Vimeo embeds, and HTML5 video for direct files
- Add fullscreen toggle (ESC to exit)
- Videos play inline below chat area with close button
- Remove VLCJ dependency (no longer requires VLC installed)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants