{% extends 'layout.html.twig' %}
{% block title %}
{%- if author and (author.name ?? false) -%}
{{ author.name }} - Nostr Event
{%- else -%}
Nostr Event
{%- endif -%}
{% endblock %}
{% block ogtags %}
{# Set og:type dynamically based on event kind #}
{% set ogType = 'article' %}
{% if event.kind == 21 or event.kind == 22 %}
{% set ogType = 'video.other' %}
{% elseif event.kind == 20 %}
{% set ogType = 'article' %} {# Could use 'image' but 'article' is more widely supported #}
{% endif %}
{# OG Description - use event content or fallback #}
{% set ogDescription = event.content|default('View this Nostr event')|striptags|slice(0, 200) %}
{# URL #}
{# Image - try to extract from event or use author image #}
{% set ogImage = null %}
{# For picture events (kind 20), try to get image from url tag #}
{% if event.kind == 20 %}
{% for tag in event.tags %}
{% if tag[0] == 'url' and ogImage is null %}
{% set ogImage = tag[1] %}
{% endif %}
{% endfor %}
{% endif %}
{# For video events (kind 21/22), try to get thumbnail #}
{% if (event.kind == 21 or event.kind == 22) and ogImage is null %}
{% for tag in event.tags %}
{% if tag[0] == 'thumb' and ogImage is null %}
{% set ogImage = tag[1] %}
{% elseif tag[0] == 'image' and ogImage is null %}
{% set ogImage = tag[1] %}
{% endif %}
{% endfor %}
{% endif %}
{# Fallback to author image if available #}
{% if ogImage is null and author and (author.image ?? false) %}
{% set ogImage = author.image %}
{% endif %}
{# Use default icon if no image found #}
{% if ogImage is null %}
{% set ogImage = app.request.schemeAndHttpHost ~ asset('icons/apple-touch-icon.png') %}
{% endif %}
{# Twitter Card tags #}
{# Article metadata #}
{% if event.created_at is defined %}
{% endif %}
{% if author and (author.name ?? false) %}
{% endif %}
{# Site name #}
{% endblock %}
{% block body %}
{# Title from tags #}
{% set title = 'Untitled' %}
{% for tag in event.tags %}
{% if tag[0] == 'title' %}
{% set title = tag[1] %}
{% endif %}
{% endfor %}
{{ title }}
{{ event|json_encode(constant('JSON_PRETTY_PRINT')) }}