heystreamer/templates/partials/media_item.html
Bashy 6ad661c220 Initial commit — BashyOverlay v1
Twitch stream event platform with OBS browser source overlay.

Features:
- Twitch OAuth login (streamer + mod access)
- EventSub WebSocket for subs, gift subs, bits, channel points, follows, raids
- Chat commands via tmi.js in the overlay
- Gap audio — tone plays on new chat message after silence, volume/pitch scale with gap length
- Self-hosted media library (upload sounds and videos)
- Action configuration — map any event to sound, video, or alert
- Per-action cooldowns, test button, enable/disable toggle
- Multiple actions per event (all matching actions fire)
- Activity log dashboard with EventSub connection status
- Layout editor — iframe-based WYSIWYG with drag handles, live style preview
- Custom CSS and custom JS injection into overlay
- Custom DOM events (bashyoverlay:sub, bashyoverlay:raid, etc.) for custom JS hooks
- deploy.sh — one-shot setup and launch script

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-22 23:48:35 +03:00

18 lines
772 B
HTML

<div class="media-item" id="media-{{ file.id }}">
<div class="media-info">
<span class="media-type-badge {{ file.file_type }}">{{ file.file_type }}</span>
<strong>{{ file.original_name }}</strong>
</div>
{% if file.file_type == "audio" %}
<audio controls src="/static/media/{{ file.filename }}" preload="none"></audio>
{% else %}
<video controls src="/static/media/{{ file.filename }}" preload="none" style="max-width:200px;max-height:120px"></video>
{% endif %}
<button hx-delete="/media/{{ file.id }}"
hx-target="#media-{{ file.id }}"
hx-swap="outerHTML"
hx-confirm="Delete {{ file.original_name }}?"
class="outline secondary small-btn">
Delete
</button>
</div>