Skip to content

Conversation

@kofany
Copy link

@kofany kofany commented Dec 7, 2025

Add self-hosted media sharing service for TeleIRC that enables sharing photos, videos, and voice messages from Telegram to IRC via web links.

Features:

  • Modern responsive web player for video/audio with dark/light mode
  • Image viewer with lightbox and thumbnails
  • File list page with media previews and mini-players
  • Automatic cleanup of expired files based on configurable retention
  • Bilingual support (English/Polish)
  • SQLite database for metadata storage
  • API key authentication for uploads
  • Docker support with included Dockerfile

Changes:

  • New MediaShare microservice in internal/mediashare/
  • Telegram handler integration for media uploads
  • Configuration options in env.example
  • Documentation in docs/user/mediashare.md
  • Docker compose example with MediaShare service

kofany and others added 8 commits December 7, 2025 23:06
Add self-hosted media sharing service for TeleIRC that enables sharing
photos, videos, and voice messages from Telegram to IRC via web links.

Features:
- Modern responsive web player for video/audio with dark/light mode
- Image viewer with lightbox and thumbnails
- File list page with media previews and mini-players
- Automatic cleanup of expired files based on configurable retention
- Bilingual support (English/Polish)
- SQLite database for metadata storage
- API key authentication for uploads
- Docker support with included Dockerfile

Changes:
- New MediaShare microservice in internal/mediashare/
- Telegram handler integration for media uploads
- Configuration options in env.example
- Documentation in docs/user/mediashare.md
- Docker compose example with MediaShare service

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add #t=0.5 to video source URL to show frame at 0.5s as thumbnail
instead of black square before playback starts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Replace SQLite CURRENT_TIMESTAMP (UTC) with Go time.Now() (local time)
to fix 1-hour timezone difference in last opened display.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Don't update last_opened_at when accessing /r/{id} (raw file) because
mini-players on the list page use this endpoint. Only update when
user opens the dedicated player page (/{id}).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add MEDIASHARE_SHOW_LIST config option (default: false) to control
whether the file list is displayed on the main page. Disabled by
default for privacy - only direct file links work when disabled.

Config: MEDIASHARE_SHOW_LIST=true/false or -showlist flag

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add MEDIASHARE_MAIN_IMG config option to display a custom image on
the main page. When set, shows the image in a styled container with
dark/light mode support. Takes priority over ShowList.

Config: MEDIASHARE_MAIN_IMG=/path/to/image.png or -mainimg flag

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add /main-image endpoint to serve the configured main image file.
The template now uses this endpoint instead of the filesystem path
which browsers cannot access.

Supports both local paths and external URLs:
- Local path: served via /main-image endpoint
- URL (http/https): used directly in img src

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
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.

1 participant