206 lines
9.3 KiB
HTML
206 lines
9.3 KiB
HTML
{% extends "base.html" %}
|
||
{% import "utils.html" as utils %}
|
||
|
||
{% block title %}
|
||
{% if sub.title != "" %}{{ sub.title }}
|
||
{% else if sub.name != "" %}{{ sub.name }}
|
||
{% else %}Redlib{% endif %}
|
||
{% endblock %}
|
||
|
||
{% block search %}
|
||
{% call utils::search(["/r/", sub.name.as_str()].concat(), "") %}
|
||
{% endblock %}
|
||
|
||
{% block subscriptions %}
|
||
{% call utils::sub_list(sub.name.as_str()) %}
|
||
{% endblock %}
|
||
|
||
{% block body %}
|
||
<main>
|
||
{% if !is_filtered %}
|
||
<div id="column_one">
|
||
<form id="sort">
|
||
<div id="sort_options">
|
||
{% if sub.name.is_empty() %}
|
||
{% call utils::sort("", ["hot", "new", "top", "rising", "controversial"], sort.0) %}
|
||
{% else %}
|
||
{% call utils::sort(["/r/", sub.name.as_str()].concat(), ["hot", "new", "top", "rising", "controversial"], sort.0) %}
|
||
{% endif %}
|
||
</div>
|
||
{% if sort.0 == "top" || sort.0 == "controversial" %}<select id="timeframe" name="t" title="Timeframe">
|
||
{% call utils::options(sort.1, ["hour", "day", "week", "month", "year", "all"], "day") %}
|
||
</select>
|
||
<button id="sort_submit" class="submit">
|
||
<svg width="15" viewBox="0 0 110 100" fill="none" stroke-width="10" stroke-linecap="round">
|
||
<path d="M20 50 H100" />
|
||
<path d="M75 15 L100 50 L75 85" />
|
||
→
|
||
</svg>
|
||
</button>
|
||
{% endif %}
|
||
</form>
|
||
|
||
{% if sub.name.contains("+") %}
|
||
<form action="/r/{{ sub.name }}/subscribe?redirect={{ redirect_url }}" method="POST">
|
||
<button id="multisub" class="subscribe" title="Subscribe to each sub in this multireddit">Subscribe to Multireddit</button>
|
||
</form>
|
||
{% endif %}
|
||
|
||
{% if all_posts_hidden_nsfw %}
|
||
<center>All posts are hidden because they are NSFW. Enable "Show NSFW posts" in settings to view.</center>
|
||
{% endif %}
|
||
|
||
{% if no_posts %}
|
||
<center>No posts were found.</center>
|
||
{% endif %}
|
||
|
||
{% if all_posts_filtered %}
|
||
<center>(All content on this page has been filtered)</center>
|
||
{% else %}
|
||
<div id="posts">
|
||
{% for post in posts %}
|
||
{% if !(post.flags.nsfw && prefs.show_nsfw != "on") %}
|
||
<hr class="sep" />
|
||
{% call utils::post_in_list(post) %}
|
||
{% endif %}
|
||
{% endfor %}
|
||
{% if prefs.ffmpeg_video_downloads == "on" %}
|
||
<script src="/ffmpeg/ffmpeg.js"></script>
|
||
<script src="/ffmpeg/ffmpeg-util.js"></script>
|
||
{% endif %}
|
||
{% if prefs.use_hls == "on" || prefs.ffmpeg_video_downloads == "on" %}
|
||
<script src="/hls.min.js"></script>
|
||
<script src="/videoUtils.js"></script>
|
||
{% endif %}
|
||
</div>
|
||
{% endif %}
|
||
|
||
<footer>
|
||
{% if !ends.0.is_empty() %}
|
||
<a href="?sort={{ sort.0 }}&t={{ sort.1 }}&before={{ ends.0 }}" accesskey="P">< PREV</a>
|
||
{% endif %}
|
||
|
||
{% if !ends.1.is_empty() %}
|
||
<a href="?sort={{ sort.0 }}&t={{ sort.1 }}&after={{ ends.1 }}" accesskey="N">NEXT ></a>
|
||
{% endif %}
|
||
</footer>
|
||
</div>
|
||
{% endif %}
|
||
{% if is_filtered || (!sub.name.is_empty() && sub.name != "all" && sub.name != "popular" && !sub.name.contains("+")) && prefs.hide_sidebar_and_summary != "on" %}
|
||
<aside>
|
||
{% if is_filtered %}
|
||
<center>(Content from r/{{ sub.name }} has been filtered)</center>
|
||
{% endif %}
|
||
{% if !sub.name.is_empty() && sub.name != "all" && sub.name != "popular" && !sub.name.contains("+") %}
|
||
<details class="panel" id="subreddit" open>
|
||
<summary id="subreddit_label">Subreddit</summary>
|
||
{% if sub.wiki %}
|
||
<div id="top">
|
||
<div>Posts</div>
|
||
<a href="/r/{{ sub.name }}/wiki/index">Wiki</a>
|
||
</div>
|
||
{% endif %}
|
||
{% if prefs.hide_banner != "on" %}
|
||
{% block head %}
|
||
{% call super() %}
|
||
<link rel="preload" as="image" href="{{ sub.banner }}">
|
||
{% endblock %}
|
||
{% endif %}
|
||
<div {% if prefs.hide_banner != "on" %}style="background: linear-gradient(to bottom, rgba(255,255,255,0) 10%, var(--outside)), url({{ sub.banner }});background-size: 100%;background-size: cover;background-position: center center;"{% endif %} id="iconbanner">
|
||
<img loading="lazy" id="sub_icon" src="{{ sub.icon }}" alt="Icon for r/{{ sub.name }}">
|
||
</div>
|
||
<div id="sub_meta">
|
||
<h1 id="sub_title">{{ sub.title }}</h1>
|
||
<p id="sub_name">r/{{ sub.name }}</p>
|
||
{% if crate::utils::enable_rss() %}
|
||
<a href="/r/{{ sub.name }}.rss" title="RSS feed for r/{{ sub.name }}">
|
||
<button>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||
<g fill="none" fill-rule="evenodd">
|
||
<path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z" />
|
||
<path fill="currentColor" d="M18 3a3 3 0 0 1 2.995 2.824L21 6v12a3 3 0 0 1-2.824 2.995L18 21H6a3 3 0 0 1-2.995-2.824L3 18V6a3 3 0 0 1 2.824-2.995L6 3zM8.5 14a1.5 1.5 0 1 0 0 3a1.5 1.5 0 0 0 0-3M8 10.5a1 1 0 1 0 0 2a3.5 3.5 0 0 1 3.5 3.5a1 1 0 1 0 2 0A5.5 5.5 0 0 0 8 10.5M8.5 7q-.285 0-.566.019a1 1 0 0 0 .132 1.995a6.5 6.5 0 0 1 6.92 6.92a1 1 0 1 0 1.995.132A8.5 8.5 0 0 0 8.5 7" />
|
||
</g>
|
||
</svg>
|
||
</button >
|
||
</a>
|
||
{% endif %}
|
||
<p id="sub_description">{{ sub.description }}</p>
|
||
<div id="sub_details">
|
||
<label>Members</label>
|
||
<label>Active</label>
|
||
<label>Created</label>
|
||
<div title="{{ sub.members.1 }}">{{ sub.members.0 }}</div>
|
||
<div title="{{ sub.active.1 }}">{{ sub.active.0 }}</div>
|
||
<div>{{ sub.created }}</div>
|
||
</div>
|
||
<hr>
|
||
<div id="sub_actions">
|
||
<div id="sub_subscription">
|
||
{% if prefs.subscriptions.contains(sub.name) %}
|
||
<form action="/r/{{ sub.name }}/unsubscribe?redirect={{ redirect_url }}" method="POST">
|
||
<button class="unsubscribe">Unsubscribe</button>
|
||
</form>
|
||
{% else %}
|
||
<form action="/r/{{ sub.name }}/subscribe?redirect={{ redirect_url }}" method="POST">
|
||
<button class="subscribe">Subscribe</button>
|
||
</form>
|
||
{% endif %}
|
||
</div>
|
||
<div id="sub_filter">
|
||
{% if prefs.filters.contains(sub.name) %}
|
||
<form action="/r/{{ sub.name }}/unfilter?redirect={{ redirect_url }}" method="POST">
|
||
<button class="unfilter">Unfilter</button>
|
||
</form>
|
||
{% else %}
|
||
<form action="/r/{{ sub.name }}/filter?redirect={{ redirect_url }}" method="POST">
|
||
<button class="filter">Filter</button>
|
||
</form>
|
||
{% endif %}
|
||
</div>
|
||
<div id="sub_quicklist">
|
||
{% if prefs.quicklist.contains(sub.name) %}
|
||
<form action="/r/{{ sub.name }}/unquicklist?redirect={{ redirect_url }}" method="POST">
|
||
<button>
|
||
<svg class="unquick" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||
<g fill="none">
|
||
<path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z" />
|
||
<path fill="currentColor" d="M16 2a3 3 0 0 1 3 3v11h-3a3 3 0 0 0-2.997 2.87L12 18.202l-4.668 3.112C6.335 21.978 5 21.264 5 20.066V5a3 3 0 0 1 3-3zm6 16a1 1 0 0 1 .117 1.993L22 20h-6a1 1 0 0 1-.117-1.993L16 18z" />
|
||
</g>
|
||
</svg>
|
||
</button>
|
||
</form>
|
||
{% else %}
|
||
<form action="/r/{{ sub.name }}/quicklist?redirect={{ redirect_url }}" method="POST">
|
||
<button>
|
||
<svg class="quick" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
|
||
<g fill="none" fill-rule="evenodd">
|
||
<path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z" />
|
||
<path fill="currentColor" d="M10 2a3 3 0 0 0-3 3a3 3 0 0 0-3 3v13.018c0 1.226 1.39 1.934 2.382 1.213l4.118-2.995l4.118 2.995c.991.721 2.382.013 2.382-1.213v-2.236l.618.45c.991.72 2.382.012 2.382-1.214V5a3 3 0 0 0-3-3zm7 14.309l1 .727V5a1 1 0 0 0-1-1h-7a1 1 0 0 0-1 1h5a3 3 0 0 1 3 3z" />
|
||
</g>
|
||
</svg>
|
||
</button>
|
||
</form>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
</details>
|
||
<details class="panel" id="sidebar" open>
|
||
<summary id="sidebar_label">Sidebar</summary>
|
||
<div id="sidebar_contents">
|
||
{{ sub.info|safe }}
|
||
{# <hr>
|
||
<h2>Moderators</h2>
|
||
<br>
|
||
<ul>
|
||
{% for moderator in sub.moderators %}
|
||
<li><a style="color: var(--accent)" href="/u/{{ moderator }}">{{ moderator }}</a></li>
|
||
{% endfor %}
|
||
</ul> #}
|
||
</div>
|
||
</details>
|
||
{% endif %}
|
||
</aside>
|
||
{% endif %}
|
||
</main>
|
||
{% endblock %}
|