2022-05-04 23:09:46 +00:00
{% extends "default.html" %}
2022-08-05 23:16:44 +00:00
{% block title %}
{% if sub %}
2022-11-21 22:52:38 +00:00
< title > /h/{{sub.name}}< / title >
2022-11-21 08:52:22 +00:00
{% elif request.path == '/' %}
< title > {{SITE_NAME}}< / title >
2022-08-05 23:16:44 +00:00
{% else %}
{{super()}}
{% endif %}
{% endblock %}
2022-11-21 22:52:38 +00:00
{% block pagetitle %}{{SITE_NAME if not sub else '/h/' ~ sub.name}}{% endblock %}
2022-08-05 22:28:22 +00:00
2022-11-21 08:52:22 +00:00
{% block head_final %}
{% set preview = sub.siderbarurl if sub and sub.sidebarurl else sub.bannerurl %}
2022-11-21 20:02:42 +00:00
{% if sub %}
2022-11-21 08:52:22 +00:00
< meta property = "og:type" content = "article" >
< meta property = "og:title" content = "/h/{{sub}}" >
< meta property = "og:site_name" content = "{{SITE}}" >
< meta property = "og:image" content = "{{preview}}" >
< meta property = "og:url" content = "{{request.full_path}}" >
< meta property = "og:author" name = "author" content = "{{SITE_FULL}}" >
< meta name = "twitter:card" content = "summary_large_image" >
< meta name = "twitter:site" content = "{{SITE_FULL}}" >
2022-11-21 22:52:38 +00:00
< meta name = "twitter:title" content = "/h/{{sub.name}}" >
2022-11-21 08:52:22 +00:00
< meta name = "twitter:creator" content = "{{SITE_FULL}}" >
< meta name = "twitter:image" content = "{{preview}}" >
< meta name = "twitter:url" content = "{{request.full_path}}" >
2022-11-21 20:02:42 +00:00
{% endif %}
2022-11-21 08:52:22 +00:00
{% if sub.sidebar %}
< meta property = "og:description" name = "description" content = "{{sub.sidebar}}" >
< meta name = "twitter:description" content = "{{sub.sidebar}}" >
{% endif %}
{% endblock %}
2022-05-04 23:09:46 +00:00
{% block desktopBanner %}
< div class = "row" style = "overflow: visible;padding-top:5px;" >
< div class = "col" >
2022-11-21 22:52:38 +00:00
< a class = "btn btn-primary btn-block mt-3" href = "{% if sub %}/h/{{sub.name}}{% endif %}/submit" > < i class = "fas fa-feather-alt mr-2" > < / i > Create Post< / a >
2022-09-16 20:18:24 +00:00
2022-08-24 21:11:54 +00:00
{% if sub %}
{% if v %}
{%- set hole_prefix = '/h/' if not HOLE_STYLE_FLAIR else '' -%}
2022-08-19 21:31:26 +00:00
2022-08-24 21:11:54 +00:00
{% if sub.stealth %}
2022-11-21 22:52:38 +00:00
< button type = "button" id = "subscribe-sub" class = "btn btn-primary btn-block {% if v.subscribes(sub.name) %}d-none{% endif %}" onclick = "postToastSwitch(this,'/h/{{sub.name}}/subscribe','subscribe-sub','unsubscribe-sub','d-none')" > < i class = "fas fa-eye mr-2" > < / i > Unblock {{hole_prefix}}{{sub.name}}< / button >
< button type = "button" id = "unsubscribe-sub" class = "btn btn-primary btn-block {% if not v.subscribes(sub.name) %}d-none{% endif %}" onclick = "postToastSwitch(this,'/h/{{sub.name}}/unsubscribe','subscribe-sub','unsubscribe-sub','d-none')" > < i class = "fas fa-eye-slash mr-2" > < / i > Block {{hole_prefix}}{{sub.name}}< / button >
2022-05-04 23:09:46 +00:00
{% else %}
2022-11-21 22:52:38 +00:00
< button type = "button" id = "block-sub" class = "btn btn-primary btn-block mt-3 {% if v.blocks(sub.name) %}d-none{% endif %}" onclick = "postToastSwitch(this,'/h/{{sub.name}}/block','block-sub','unblock-sub','d-none')" > < i class = "fas fa-eye-slash mr-2" > < / i > Block {{hole_prefix}}{{sub.name}}< / button >
< button type = "button" id = "unblock-sub" class = "btn btn-primary btn-block mt-3 {% if not v.blocks(sub.name) %}d-none{% endif %}" onclick = "postToastSwitch(this,'/h/{{sub.name}}/unblock','block-sub','unblock-sub','d-none')" > < i class = "fas fa-eye mr-2" > < / i > Unblock {{hole_prefix}}{{sub.name}}< / button >
2022-05-04 23:09:46 +00:00
{% endif %}
2022-08-24 21:11:54 +00:00
2022-11-21 22:52:38 +00:00
< button type = "button" id = "follow-sub" class = "btn btn-primary btn-follow {% if v.follows(sub.name) %}d-none{% endif %}" onclick = "postToastSwitch(this,'/h/{{sub.name}}/follow','follow-sub','unfollow-sub','d-none')" > < i class = "fas fa-bell mr-2" > < / i > Follow {{hole_prefix}}{{sub.name}}< / button >
< button type = "button" id = "unfollow-sub" class = "btn btn-primary btn-follow {% if not v.follows(sub.name) %}d-none{% endif %}" onclick = "postToastSwitch(this,'/h/{{sub.name}}/unfollow','follow-sub','unfollow-sub','d-none')" > < i class = "fas fa-bell-slash mr-2" > < / i > Unfollow {{hole_prefix}}{{sub.name}}< / button >
2022-08-24 21:11:54 +00:00
{% else %}
2022-11-21 22:52:38 +00:00
< a class = "btn btn-primary btn-block" href = "/login?redirect={{request.full_path | urlencode}}" > < i class = "fas fa-eye-slash mr-2" > < / i > Block {{hole_prefix}}{{sub.name}}< / a >
< a class = "btn btn-primary btn-block" href = "/login?redirect={{request.full_path | urlencode}}" > < i class = "fas fa-bell mr-2" > < / i > Follow {{hole_prefix}}{{sub.name}}< / a >
2022-08-24 21:11:54 +00:00
{% endif %}
2022-05-04 23:09:46 +00:00
{% endif %}
2022-09-16 20:18:24 +00:00
< div class = "d-flex justify-content-between align-items-center pt-3 pb-2 sorting" style = "float:right" >
2022-05-04 23:09:46 +00:00
{% block navbar %}
< div class = "d-flex align-items-center" >
2022-11-07 00:44:31 +00:00
{% if SITE_NAME != 'WPD' and not sub %}
2022-11-30 11:29:45 +00:00
< style >
@media (max-width: 427px) {
.smol-fp {
font-size: 2.7vw;
padding-left: 2.5vw;
padding-right: 2.1vw;
}
}
< / style >
2022-11-21 21:23:35 +00:00
{% set hcolor = "primary" if holes else "secondary" %}
2022-11-07 02:01:13 +00:00
< a class = "btn btn-{{hcolor}} text-{{hcolor}} mx-2 smol-fp" href = "/toggle_holes" > < i class = "fas fas fa-manhole mr-2 " > < / i > Holes< / a >
2022-05-04 23:09:46 +00:00
{% endif %}
2022-11-30 11:40:52 +00:00
{% set pcolor = "primary" if pins else "secondary" %}
< a class = "btn btn-{{pcolor}} text-{{pcolor}} mx-2 smol-fp" href = "/toggle_pins/{{sort}}" > < i class = "fas fas fa-thumbtack fa-rotate--45 mr-2 " > < / i > Pins< / a >
2022-11-07 02:01:13 +00:00
< div class = "dropdown dropdown-actions mx-2" >
2022-10-28 23:35:14 +00:00
< button type = "button" class = "btn btn-secondary dropdown-toggle smol-fp" id = "dropdownMenuButton" data-bs-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" >
2022-05-04 23:09:46 +00:00
{% if t=="hour" %}< i class = "fas fa-clock mr-2 " > < / i >
{% elif t=="day" %}< i class = "fas fa-calendar-day mr-2 " > < / i >
{% elif t=="week" %}< i class = "fas fa-calendar-week mr-2 " > < / i >
{% elif t=="month" %}< i class = "fas fa-calendar-alt mr-2 " > < / i >
{% elif t=="year" %}< i class = "fas fa-calendar mr-2 " > < / i >
{% elif t=="all" %}< i class = "fas fa-infinity mr-2 " > < / i >
{% endif %}
{{t | capitalize}}
< / button >
2022-07-13 17:31:35 +00:00
< div class = "dropdown-menu smol-fp" aria-labelledby = "dropdownMenuButton" x-placement = "bottom-start" style = "position: absolute; will-change: transform; top: 0px; left: 0px;" >
2022-11-07 00:44:31 +00:00
{% if t != "hour" %}< a class = "dropdown-item" href = "?sort={{sort}}&t=hour" > < i class = "fas fa-clock mr-2 " > < / i > Hour< / a > {% endif %}
{% if t != "day" %}< a class = "dropdown-item" href = "?sort={{sort}}&t=day" > < i class = "fas fa-calendar-day mr-2 " > < / i > Day< / a > {% endif %}
{% if t != "week" %}< a class = "dropdown-item" href = "?sort={{sort}}&t=week" > < i class = "fas fa-calendar-week mr-2 " > < / i > Week< / a > {% endif %}
{% if t != "month" %}< a class = "dropdown-item" href = "?sort={{sort}}&t=month" > < i class = "fas fa-calendar-alt mr-2 " > < / i > Month< / a > {% endif %}
{% if t != "year" %}< a class = "dropdown-item" href = "?sort={{sort}}&t=year" > < i class = "fas fa-calendar mr-2 " > < / i > Year< / a > {% endif %}
{% if t != "all" %}< a class = "dropdown-item" href = "?sort={{sort}}&t=all" > < i class = "fas fa-infinity mr-2 " > < / i > All< / a > {% endif %}
2022-05-04 23:09:46 +00:00
< / div >
< / div >
2022-11-07 02:01:13 +00:00
< div class = "dropdown dropdown-actions ml-2" >
2022-10-28 23:35:14 +00:00
< button type = "button" class = "btn btn-secondary dropdown-toggle smol-fp" id = "dropdownMenuButton2" data-bs-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" >
2022-05-04 23:09:46 +00:00
{% if sort=="hot" %}< i class = "fas fa-fire mr-2 " > < / i > {% endif %}
{% if sort=="bump" %}< i class = "fas fa-arrow-up mr-2 " > < / i > {% endif %}
{% if sort=="top" %}< i class = "fas fa-arrow-alt-circle-up mr-2 " > < / i > {% endif %}
{% if sort=="bottom" %}< i class = "fas fa-arrow-alt-circle-down mr-2 " > < / i > {% endif %}
{% if sort=="new" %}< i class = "fas fa-sparkles mr-2 " > < / i > {% endif %}
{% if sort=="old" %}< i class = "fas fa-book mr-2 " > < / i > {% endif %}
{% if sort=="controversial" %}< i class = "fas fa-bullhorn mr-2 " > < / i > {% endif %}
{% if sort=="comments" %}< i class = "fas fa-comments mr-2 " > < / i > {% endif %}
{{sort | capitalize}}
< / button >
2022-07-13 17:31:35 +00:00
< div class = "dropdown-menu smol-fp" aria-labelledby = "dropdownMenuButton2" x-placement = "bottom-start" style = "position: absolute; will-change: transform; top: 0px; left: 0px;" >
2022-11-07 00:44:31 +00:00
{% if sort != "hot" %}< a class = "dropdown-item" href = "?sort=hot&t={{t}}" > < i class = "fas fa-fire mr-2 " > < / i > Hot< / a > {% endif %}
{% if sort != "bump" %}< a class = "dropdown-item" href = "?sort=bump&t={{t}}" > < i class = "fas fa-arrow-up mr-2 " > < / i > Bump< / a > {% endif %}
{% if sort != "top" %}< a class = "dropdown-item" href = "?sort=top&t={{t}}" > < i class = "fas fa-arrow-alt-circle-up mr-2 " > < / i > Top< / a > {% endif %}
{% if sort != "bottom" %}< a class = "dropdown-item" href = "?sort=bottom&t={{t}}" > < i class = "fas fa-arrow-alt-circle-down mr-2 " > < / i > Bottom< / a > {% endif %}
{% if sort != "new" %}< a class = "dropdown-item" href = "?sort=new&t={{t}}" > < i class = "fas fa-sparkles mr-2 " > < / i > New< / a > {% endif %}
{% if sort != "old" %}< a class = "dropdown-item" href = "?sort=old&t={{t}}" > < i class = "fas fa-book mr-2 " > < / i > Old< / a > {% endif %}
{% if sort != "controversial" %}< a class = "dropdown-item" href = "?sort=controversial&t={{t}}" > < i class = "fas fa-bullhorn mr-2 " > < / i > Controversial< / a > {% endif %}
{% if sort != "comments" %}< a class = "dropdown-item" href = "?sort=comments&t={{t}}" > < i class = "fas fa-comments mr-2 " > < / i > Comments< / a > {% endif %}
2022-05-04 23:09:46 +00:00
< / div >
< / div >
< / div >
{% endblock %}
< / div >
< / div >
< / div >
{% endblock %}
2022-11-21 08:52:22 +00:00
{% block PseudoSubmitForm %}{% endblock %}
2022-05-04 23:09:46 +00:00
{% block content %}
< div class = "row no-gutters {% if listing %}mt-md-3{% elif not listing %}my-md-3{% endif %}" >
2022-11-08 00:59:28 +00:00
< div class = "col-12" >
2022-05-04 23:09:46 +00:00
< div class = "posts" id = "posts" >
{% include "submission_listing.html" %}
< / div >
< / div >
< / div >
{% endblock %}
{% block pagenav %}
{% if listing %}
< nav aria-label = "Page navigation" >
< ul class = "pagination pagination-sm mb-0" >
{% if page>1 %}
< li class = "page-item" >
2022-11-07 00:44:31 +00:00
< small > < a class = "page-link" href = "?sort={{sort}}&page={{page-1}}&t={{t}}" tabindex = "-1" > Prev< / a > < / small >
2022-05-04 23:09:46 +00:00
< / li >
{% else %}
< li class = "page-item disabled" > < span class = "page-link" > Prev< / span > < / li >
{% endif %}
{% if next_exists %}
< li class = "page-item" >
2022-11-07 00:44:31 +00:00
< small > < a class = "page-link" href = "?sort={{sort}}&page={{page+1}}&t={{t}}" > Next< / a > < / small >
2022-05-04 23:09:46 +00:00
< / li >
{% else %}
< li class = "page-item disabled" > < span class = "page-link" > Next< / span > < / li >
{% endif %}
< / ul >
< / nav >
{% endif %}
2022-11-15 16:55:00 +00:00
{% if request.path == '/' and PUSHER_ID != DEFAULT_CONFIG_VALUE and v %}
2022-07-13 18:14:37 +00:00
< div class = "d-none" id = "strid" > {{SITE}}{{v.id}}< / div >
2022-06-27 18:42:41 +00:00
< div class = "d-none" id = "pusherid" > {{PUSHER_ID}}< / div >
2022-11-18 19:16:40 +00:00
< script defer src = "{{'js/vendor/pusher.js' | asset}}" > < / script >
2022-06-27 18:42:41 +00:00
< script >
if (typeof Android != 'undefined') {
2022-07-13 18:14:37 +00:00
Android.Subscribe('{{SITE}}{{v.id}}');
2022-06-27 18:42:41 +00:00
}
< / script >
2022-05-04 23:09:46 +00:00
{% endif %}
2022-11-30 13:03:15 +00:00
{% if request.path == '/' and not g.webview and time.time() > session.get('tooltip_last_dismissed',0)+86400*30 %}
2022-08-11 19:28:03 +00:00
< style >
2022-11-21 18:52:08 +00:00
.dismiss-beg {
2022-08-11 19:28:03 +00:00
color: #919191;
float: left;
2022-11-21 18:52:08 +00:00
font-size: 14px;
padding-top: 0.25rem;
2022-11-26 22:08:08 +00:00
padding-right: 0.7rem;
2022-08-11 19:28:03 +00:00
}
< / style >
2022-05-04 23:09:46 +00:00
< div id = "mobile-prompt-container" class = "fixed-top" >
2022-11-21 18:52:08 +00:00
< div id = "mobile-prompt" data-bs-toggle = "tooltip" data-bs-container = "#mobile-prompt-container" data-bs-placement = "top" data-bs-trigger = "click" data-bs-html = "true" title = "<i class='dismiss-beg fas fa-x'></i>Click me to install the {{SITE_NAME}} mobile app!" > < / div >
2022-05-04 23:09:46 +00:00
< / div >
< script >
2022-11-21 18:45:27 +00:00
if (!window.matchMedia('(display-mode: minimal-ui)')['matches']) {
2022-05-04 23:09:46 +00:00
if (window.innerWidth < = 737) {
2022-09-08 19:08:42 +00:00
document.addEventListener('DOMContentLoaded', function() {
2022-09-08 17:12:46 +00:00
const tt = bootstrap.Tooltip.getOrCreateInstance(document.getElementById('mobile-prompt'))
tt.show()
2022-11-21 18:52:08 +00:00
document.getElementsByClassName('tooltip')[0].onclick = function(e) {
2022-09-08 17:12:46 +00:00
tt.hide()
var xhr = new XMLHttpRequest();
xhr.withCredentials=true;
xhr.open("POST", '/dismiss_mobile_tip', true);
2022-11-12 05:46:21 +00:00
xhr.setRequestHeader('xhr', 'xhr');
2022-09-08 17:12:46 +00:00
xhr.send();
2022-11-21 18:52:08 +00:00
if (!e.target.classList.contains('dismiss-beg'))
location.href = "/app"
2022-09-08 17:12:46 +00:00
}
})
2022-05-04 23:09:46 +00:00
}
}
< / script >
< style >
#mobile-prompt + .bs-tooltip-bottom {
transform: None !important;
inset: 0px 0px auto auto !important;
}
< / style >
{% endif %}
2022-11-09 19:49:21 +00:00
{% if request.path == '/' and v and FP %}
2022-07-09 08:35:47 +00:00
{% if not v.fp %}
< script >
function fp(fp) {
const xhr = new XMLHttpRequest();
xhr.open("POST", '/fp/'+fp);
xhr.setRequestHeader('xhr', 'xhr');
2022-07-23 08:57:53 +00:00
const form = new FormData()
2022-07-09 08:35:47 +00:00
form.append("formkey", formkey());
xhr.send(form);
};
const fpPromise = new Promise((resolve, reject) => {
const script = document.createElement('script');
script.onload = resolve;
script.onerror = reject;
script.async = true;
2022-11-18 19:16:40 +00:00
script.src = "{{'js/vendor/fp.js' | asset}}";
2022-07-09 08:35:47 +00:00
document.head.appendChild(script);
})
.then(() => FingerprintJS.load({token: '{{FP}}'}));
fpPromise
.then(fp => fp.get())
.then(result => {if (result.visitorId != '{{v.fp}}') fp(result.visitorId);})
< / script >
{% endif %}
{% endif %}
2022-05-29 02:11:04 +00:00
{% endblock %}