{% import "user.html" as user_defs %} {% import "domain.html" as domain_defs %} {% set video_factor = 5.0 / 7.0 %} {% macro post_comments_url(post) -%} {%- if post.url_slug -%} {{ '{}/{}-{}/' | format(post.domain.url, post.url_slug, post.id) }} {%- else -%} {{ '{}/comments/{}/' | format(post.domain.url, post.id) }} {%- endif %} {%- endmacro %} {% macro post_all_comments_count_caption(post) -%} {%- if post.comments_count == 0 -%} {{ _('комментировать') }} {%- else -%} {{ post.comments_count }} {{ post.comments_count | pluralize(ngettext('комментарий', 'комментария', 0), 'комментариев')}} {%- endif -%} {%- endmacro %} {% macro post_new_comments_count_caption(post) -%} {{ post.unread_comments_count }} {{ post.comments_count | pluralize(ngettext('новый', 'новых', 0), 'новых') }} {%- endmacro %} {% macro post_all_comments_link(post, mobile = False) -%} {% if mobile -%} {%- endif %} {{ ('' | safe) if post.comments_count > 0 and post.comments_count == post.unread_comments_count else '' }} {{ post_all_comments_count_caption(post) }}{{ ('' | safe) if post.comments_count > 0 and post.comments_count == post.unread_comments_count else '' }} {%- endmacro %} {% macro post_new_comments_link(post) -%} {% if post.unread_comments_count > 0 and post.comments_count != post.unread_comments_count -%} / {{ post_new_comments_count_caption(post) }} {%- endif %} {%- endmacro %} {% macro post_domain(post, BASE_DOMAIN_ID) -%} {% if not domain and post.domain.id != BASE_DOMAIN_ID and not (post.data.type == 'inbox') and not post.advertising -%}
{{ post.domain.prefix }}
{%- endif %} {%- endmacro %} {% macro post_pin(post, tag_name = 'a') -%} {% if post.pinned and domain -%} <{{ tag_name }} class="b-post_pinned_icon" href="{{ post_comments_url(post) }}" title="{{ _('закреплённый пост') }}"> {%- endif %} {%- endmacro %} {% macro post_snippet_icon(post, user) -%} {% if post.data.link.type == 'web' -%} {%- endif %} {%- endmacro %} {% macro post_estimate(post) -%} {% if post.estimate < 60 %} {{ _('меньше минуты') }} {% elif post.estimate < 3600 %} {{ (post.estimate / 60) | round(0, 'ceil') }} {{ (post.estimate / 60) | round(0, 'ceil') | pluralize(ngettext('минута', 'минуты', 0), 'минут')}} {% else %} {{ _('больше часа') }} {% endif %} — {{ _('Время на прочтение') }} {%- endmacro %} {% macro post_golden_icon_mobile(post) -%} {% if post.golden == -1 or post.golden == 1 -%} {%- endif %} {%- endmacro %} {% macro post_footer_mobile(post, user) -%}
{%- if post.advertising -%} {{ _('Объявление от {user}') | format(user = user_defs.user_profile_link(post.user)) }} {%- else -%} {{ user_defs.user_profile_link(post.user) }} {%- endif -%} {{ ('{}' | format(_('Только для совершеннолетних'), _('18+')) if post.domain.is_adult else '') | safe }}
{{ post_all_comments_link(post, True) }} {{ post_new_comments_link(post) }}
{% if not post.advertising -%}
{{ post_controls(post, user) }} {{ post_voting(post, user) if not (post.data.type == 'inbox') else '' }}
{%- endif %}
{%- endmacro %} {% macro post_location(post, user, BASE_DOMAIN_ID) -%} {% if post.domain.id != BASE_DOMAIN_ID %}
{{ _('Опубликовано на {}{}{}') | format( '' | format(post.domain.url) ,post.domain.prefix,'') | safe }} {{ '{}' | format(_('Только для совершеннолетних'), _('18+') if post.domain.is_adult else '') | safe }} {{ domain_defs.domain_subscribe_controls(post.domain, user) }}
{% endif %} {%- endmacro %} {% macro post_tags(post) -%} {%- endmacro %} {% macro post_voting(post, user, full = False) -%} {% set is_article = post.data.type == 'article' or post.data.type == 'gallery' or post.data.type == 'stream' %} {% if full %} {% if is_article %}
{% endif %}
{% else %}
{% endif %} {% if (user and user.id != post.user.id) or not user %} {% endif %} {% if post.hidden_rating_time_to_show %} {% else %} {{ post.rating }} {% endif %} {% if (user and user.id != post.user.id) or not user %} {% endif %}
{% if full and (is_article or post.data.type == 'stream') %}
{% endif %} {%- endmacro %} {% macro post_gif_play_button(src, preview_src, video_src = '', src_width = '', src_height = '') -%}   {%- endmacro %} {% macro post_video_play_button(media_provider, media_provider_id, width = '', height = '', start_time = '') -%}   {%- endmacro %} {% macro post_preview_pic(post) -%} {% if (post.data.media.thumbnails or post.data.link.thumbnails) and (post.data.render_type == 'midi' or post.advertising) %} {% set sizes = post.data.media.thumbnails or post.data.link.thumbnails %} {% set video = post.data.media.video or post.data.link.video %} {% set max_size = post.data.media if post.data.media.url else (sizes.original or sizes.width_700) %} {% if post.data.link.type == 'embed' and post.data.link.embed.provider != 'imgur' %} {% set sizes = post.data.link.thumbnails %} {{ post_video_play_button(post.data.link.embed.provider, post.data.link.embed.id, 700 * video_factor, 700 * video_factor *(max_size.height/max_size.width)) }} {% elif post.data.link.type == 'video' %} {% elif post.data.link.type != 'embed' or post.data.link.embed.provider == 'imgur' %} {% set post_is_animated = 1 if post.data.link.embed.is_animated or post.data.media.is_animated or post.data.link.is_animated else 0 %} {% set video = 'https://i.imgur.com/'+post.data.link.embed.id+'.mp4' if post.data.link.embed.provider == 'imgur' else post.data.media.video or post.data.link.video %} {% if post_is_animated %} {% if video %} {{ post_gif_play_button(max_size.url, sizes.width_120.url, video, max_size.width, max_size.height) }} {% else %} {{ post_gif_play_button(max_size.url, sizes.width_120.url) }} {% endif %} {% endif %} {% endif %} {% endif %} {%- endmacro %} {% macro post_pic(post) -%} {% if not post.advertising and (post.data.media.thumbnails or post.data.link.thumbnails) and (post.data.render_type == 'maxi' or not post.data.render_type) %} {% set sizes = post.data.media.thumbnails or post.data.link.thumbnails %} {% set max_size = post.data.media if post.data.media.url else (sizes.original or sizes.width_700) %} {% if post.data.link.type == 'embed' and post.data.link.embed.provider != 'imgur' %} {% set sizes = post.data.link.thumbnails %}
{{ post_video_play_button(post.data.link.embed.provider, post.data.link.embed.id, 700 * video_factor, 700 * video_factor *(max_size.height/max_size.width)) }}
{% elif post.data.link.type == 'video' %} {% elif post.data.link.type != 'embed' or post.data.link.embed.provider == 'imgur' %} {% set post_is_animated = 1 if post.data.link.embed.is_animated or post.data.media.is_animated or post.data.link.is_animated else 0 %} {% set video = 'https://i.imgur.com/'+post.data.link.embed.id+'.mp4' if post.data.link.embed.provider == 'imgur' else post.data.media.video or post.data.link.video %} {% if post_is_animated %} {% if video %} {{ post_gif_play_button(max_size.url, sizes.width_700.url, video, max_size.width, max_size.height) }} {% else %} {{ post_gif_play_button(max_size.url, sizes.width_700.url, '', max_size.width, max_size.height ) }} {% endif %} {% endif %} {% endif %} {% endif %} {%- endmacro %} {% macro post_gallery(post) -%} {% set gallery = post.data.gallery %}
{% for image in gallery %} {% if loop.index < 6 %}
{% endif %} {% endfor %}
{%- endmacro %} {% macro post_moderate_show_panel_action(post) -%} postControlsHandler.showPanel({button:this, {{'' }}post_id:'{{ post.id }}', {{'' }}post_type:'{{ post.data.type }}', {{'' }}post_has_acl:{{ 'true' if post.data.type == 'inbox' else 'false' }}, {{'' }}user_id:'{{ post.user.id }}', {{'' }}user_login : '{{ post.user.login }}', {{'' }}user_gender: '{{ post.user.gender }}', {{'' }}published: 'true', {{'' }}domain_id: '{{ post.domain.id }}', {{'' }}domain_prefix: '{{ post.domain.prefix }}', {{'' }}wysiwyg: {{ 'true' if post.data else 'false' }}, {{'' }}post_is_ad: {{ 'true' if post.advertising else 'false' }}, {{'' }}options:[ {{'' }}'{{ 'post_edit' if post.can_edit and post.data.type == 'link' or post.data.type == 'inbox' else '' }}', {{'' }}'{{ 'post_edit_redirect' if post.can_edit and post.data.type != 'link' and post.data.type != 'inbox' else '' }}', {{'' }}'{{ 'moderate_pin_post' if domain and post.can_edit and post.data.type != 'inbox' else '' }}', {{'' }}'{{ 'moderate_unpin_post' if domain and post.can_edit and post.data.type != 'inbox' else '' }}', {{'' }}'{{ 'move_to_drafts' if post.can_unpublish else '' }}', {{'' }}'{{ 'moderate_delete_post' if post.can_delete else '' }}', {{'' }}'{{ 'moderate_ban_user' if post.can_ban else '' }}', {{'' }}'{{ 'moderate_remove_user_docs' if post.can_ban else ''}}', {{'' }}'{{ 'moderate_remove_user_activity' if post.can_wipe else '' }}']}); {{'' }}tipsHandler.hideAllTips(); {{'' }}return false; {%- endmacro %} {% macro post_delete_show_panel_action(post, user) -%} postControlsHandler.showPanel({button:this, {{'' }}post_id:'{{ post.id }}', {{'' }}post_has_acl:{{ 'true' if post.data.type == 'inbox' else 'false' }}, {{'' }}user_id:'{{ post.user.id }}', {{'' }}user_login : '{{ post.user.login }}', {{'' }}user_gender: '{{ post.user.gender }}', {{'' }}published: 'true', {{'' }}domain_id: '{{ post.domain.id }}', {{'' }}domain_url : '{{ post.domain.url }}', {{'' }}wysiwyg: {{ 'true' if post.data else 'false' }}, {{'' }}options:[ {{'' }}'{{ 'inbox_delete' if post.data.type == 'inbox' else '' }}', {{'' }}'{{ 'my_things_delete' if post.in_interests else '' }}', {{'' }}{% if not (post.data.type == 'inbox') -%} '{{ 'domain_unsubscribe' if post.domain.is_subscribed else '' }}', {{'' }}'{{ 'domain_ignore' if not post.domain.is_ignored else '' }}', {{'' }}'{{ 'user_unsubscribe' if post.user.id != user.id and post.user.subscribed else '' }}', {{'' }}'{{ 'user_ignore' if post.user.id != user.id and not post.user.is_ignored else '' }}', {%- endif %} ]}); {{'' }}tipsHandler.hideAllTips(); {{'' }}return false; {%- endmacro %} {% macro post_controls(post, user, can_publish_ia) -%} {% if user and not (post.data.type == 'inbox') %} {{ (post.attributes.favourites_count or post.favourites_count) if (post.attributes.favourites_count or post.favourites_count) else ''}} {{ (post.attributes.favourites_count or post.favourites_count) if (post.attributes.favourites_count or post.favourites_count) else ''}} {% endif %} {% if post.can_moderate %} {% endif %} {% if not post.advertising and user %} {% if post.data.type == 'inbox' or post.user.id != user.id %} {% endif %} {% endif %} {% if can_publish_ia %} ia {% endif %} {%- endmacro %} {% macro post_body(post) -%} {% if post.data.snippet %} {{ post.data.snippet | safe }} развернутьсвернуть {% else %} {% if post.data.type == 'link' or post.data.type == 'inbox' %} {{ (post.data.text or '') | safe }} {% elif post.data.subtitle %} {{ post.data.subtitle | safe }} {% endif %} {% endif %} {%- endmacro %} {% macro render(post, user, BASE_DOMAIN_ID) -%}
{{ post_domain(post, BASE_DOMAIN_ID) }} {% if post.data.type == 'article' %} {% if post.data.preview_image.thumbnails %} {% else %}

{{ post_pin(post) }} {{ post.data.title | safe }} {{ post_golden_icon_mobile(post) }}

{% if post.data.subtitle %}
{{ post_body(post) }}
{% endif %}
{% endif %} {% else %}

{{ post_snippet_icon(post, user) }} {{ post_pin(post) }} {% if post.data.title != '' %} {{ post.data.title | safe }} {% else %} #{{ post.id }} {% endif %} {{ post_golden_icon_mobile(post) }}

{% if post.data.type == 'link' %}
{{ post_preview_pic(post) }}
{{ post_pic(post) }}
{{ post_body(post) }}
{% elif post.data.type == 'gallery' %} {% set gallery = post.data.gallery %} {{ _('Всего {number} {object}') | format(number = (gallery | length), object = gallery | length | pluralize(ngettext('картинка', 'картинки', 0), 'картинок')) }}
{{ post_gallery(post) }}
{{ post_body(post) }}
{% elif post.data.type == 'stream' %}
{{ _('трансляция') }}
{% elif post.data.type == 'comics' %}
{% endif %} {% endif %} {{ post_footer_mobile(post, user) }}
{% if post.advertising %} {{ _('Объявление от {rank} {user}') | format( rank = post.user.rank if post.user.rank else '', user = user_defs.user_profile_link(post.user) ) | safe }} {% else %} {% if post.user.gender == 'male' %} {{ _('Написал {rank} {user}') | format( rank = post.user.rank if post.user.rank else '', user = user_defs.user_profile_link(post.user) ) | safe }} {% else %} {{ _('Написала {rank} {user}') | format( rank = post.user.rank if post.user.rank else '', user = user_defs.user_profile_link(post.user) ) | safe }} {% endif %} · {{ ('· {}' | format(_('Только для совершеннолетних'), _('18+')) if post.domain.is_adult else '') | safe }} {% endif %} {% if not post.show_comments_link %} · {{ post_all_comments_link(post) }} {{ post_new_comments_link(post) }} {% endif %} {% if post.golden == -1 or post.golden == 1 %}   {% endif %} {% if post.advertising and (post.data.type != 'article') %} · {{ _('следующее') }} {% endif %} {{ post_controls(post, user) }} {% if not post.advertising and not (post.data.type == 'inbox') %} {{ post_voting(post, user) }} {% endif %}
{%- endmacro %} {% macro render_hidden_post(post, user) -%}
{{ _('Закрытый для вас пост') }}
{%- endmacro %}