use SITE_FULL_IMAGES whenever u possibly can

master
Aevann 2023-07-22 19:24:16 +03:00
parent 6f6c59e7b3
commit 988a14f187
33 changed files with 66 additions and 63 deletions

View File

@ -4097,7 +4097,7 @@ small, .small {
width: 28px;
height: 28px;
}
.profile-pic-20, .pp20, img[src^="/uid/"], img[src^="/pp/"]:not(img[alt^=":"]) {
.profile-pic-20, .pp20, img[src*="/uid/"], img[src*="/pp/"]:not(img[alt^=":"]) {
margin-right: 0.25rem !important;
width: 20px;
height: 20px;
@ -5397,7 +5397,7 @@ textarea {
}
}
.in-comment-image, .img, img[alt^="![]("],
.preview img:not(img[src*="/uid/"], img[src*="/pp/"], img[src$="/pic"], img[src="/i/hand.webp"], img[src*="/e/"]) {
.preview img:not(img[src*="/uid/"], img[src*="/pp/"], img[src$="/pic"], img[src$="/i/hand.webp"], img[src*="/e/"]) {
max-height: 150px !important;
max-width: 100% !important;
border-radius: 0.2rem !important;
@ -5527,21 +5527,21 @@ span[data-bs-toggle], .pat-preview {
position: relative;
display: inline-block;
}
img[src="/i/hand.webp"] {
img[src$="/i/hand.webp"] {
position: absolute;
width: 90%;
height: 90%;
margin-top: -10%;
z-index: 1;
}
img[src="/i/hand.webp"]+img {
img[src$="/i/hand.webp"]+img {
animation: pat-pfp-anim 0.3s infinite;
transform-origin: bottom center;
margin-top: 10%;
text-align: center;
object-fit: contain;
}
img[src="/i/hand.webp"]+img[src^="/pp/"], img[src="/i/hand.webp"]+img[src$="/pic"] {
img[src$="/i/hand.webp"]+img[src*="/pp/"], img[src$="/i/hand.webp"]+img[src$="/pic"] {
border-radius: 50%;
}
@keyframes pat-pfp-anim {
@ -5688,8 +5688,8 @@ img.golden, img[g]:not([data-src]) {
animation: golden 1s infinite alternate linear;
}
img[src="/i/hand.webp"]+img[g]:not([data-src]),
img[src="/i/hand.webp"]+img.golden {
img[src$="/i/hand.webp"]+img[g]:not([data-src]),
img[src$="/i/hand.webp"]+img.golden {
animation: golden 1s infinite alternate linear,
pat-pfp-anim .3s infinite;
}
@ -5703,7 +5703,7 @@ img[glow]:not([data-src]) {
animation: glowing 1s infinite alternate linear;
}
img[src="/i/hand.webp"]+img[glow]:not([data-src]) {
img[src$="/i/hand.webp"]+img[glow]:not([data-src]) {
animation: glowing 1s infinite alternate linear,
pat-pfp-anim .3s infinite;
}
@ -7547,7 +7547,7 @@ th.disable-sort-click[disabled] {
overflow: visible
}
img[src="/e/marseycursor.webp"] {
img[src$="/e/marseycursor.webp"] {
width: 29px !important;
height: 29px !important;
image-rendering: pixelated;

View File

@ -209,7 +209,7 @@ function formatNormalizedBets(bets) {
function buildPokerChip(avatar) {
return `
<div class="roulette-poker-chip">
<img loading="lazy" src="/i/pokerchip.webp" width="40" height="40">
<img loading="lazy" src="${SITE_FULL_IMAGES}/i/pokerchip.webp" width="40" height="40">
<img loading="lazy" src="${avatar}" width="40" height="40">
</div>
`;
@ -221,7 +221,7 @@ function buildRouletteBets(bets) {
const normalizedBets = formatNormalizedBets(bets);
const coinImgHtml = `
<img
src="/i/rDrama/coins.webp?x=6"
src="${SITE_FULL_IMAGES}/i/rDrama/coins.webp?x=6"
alt="coin"
width="32"
data-bs-toggle="tooltip"
@ -230,7 +230,7 @@ function buildRouletteBets(bets) {
`;
const marseybuxImgHtml = `
<img
src="/i/marseybux.webp?x=6"
src="${SITE_FULL_IMAGES}/i/marseybux.webp?x=6"
alt="marseybux"
data-bs-toggle="tooltip"
data-bs-placement="bottom"

View File

@ -213,7 +213,7 @@ socket.on('online', function(data){
online += `<li>`
if (admin_level && Object.keys(data[1]).includes(u[0].toLowerCase()))
online += '<b class="text-danger muted" data-bs-toggle="tooltip" title="Muted">X</b> '
online += `<a class="font-weight-bold" target="_blank" href="/@${u[0]}" style="color:#${u[2]}"><img loading="lazy" class="mr-1" src="/pp/${u[1]}">${u[0]}</a></li>`
online += `<a class="font-weight-bold" target="_blank" href="/@${u[0]}" style="color:#${u[2]}"><img loading="lazy" class="mr-1" src="${SITE_FULL_IMAGES}/pp/${u[1]}">${u[0]}</a></li>`
online2 += `<br>@${u[0]}`
}
document.getElementById('online').innerHTML = online

View File

@ -1,3 +1,5 @@
const SITE_FULL_IMAGES = document.getElementById('SITE_FULL_IMAGES').value
function getMessageFromJsonData(success, json) {
let message = success ? "Success!" : "Error, please try again later";
let key = success ? "message" : "error";

View File

@ -21,7 +21,7 @@ marked.use({
},
renderer(token) {
const u = token.raw;
return `<a href="/${u}"><img loading="lazy" src="/${u}/pic" class="pp20"> ${u}</a>`;
return `<a href="/${u}"><img loading="lazy" src="${SITE_FULL_IMAGES}/${u}/pic" class="pp20"> ${u}</a>`;
}
},
{
@ -102,9 +102,9 @@ function markdown(t) {
if (emoji.endsWith('pat') && emoji != 'marseyunpettablepat') {
emoji = emoji.substr(0, emoji.length - 3);
const url = old.indexOf('@') != -1 ? `/@${emoji}/pic` : `/e/${emoji}.webp`;
input = input.replace(old, `<span class="pat-preview ${mirroredClass}" data-bs-toggle="tooltip"><img loading="lazy" src="/i/hand.webp"><img loading="lazy" class="${emojiClass}" src="${url}"></span>`);
input = input.replace(old, `<span class="pat-preview ${mirroredClass}" data-bs-toggle="tooltip"><img loading="lazy" src="${SITE_FULL_IMAGES}/i/hand.webp"><img loading="lazy" class="${emojiClass}" src="${url}"></span>`);
} else {
input = input.replace(old, `<img loading="lazy" class="${emojiClass} ${mirroredClass}" src="/e/${emoji}.webp">`);
input = input.replace(old, `<img loading="lazy" class="${emojiClass} ${mirroredClass}" src="${SITE_FULL_IMAGES}/e/${emoji}.webp">`);
}
}
}

View File

@ -89,7 +89,7 @@ function updatebgselection(){
let bgsDir = backgrounds[bgselector.selectedIndex].folder;
for (i=0; i < bgsToDisplay.length; i++) {
let onclickPost = bgsDir + "/" + bgsToDisplay[i];
str += `<button class="btn btn-secondary bg-button"><img loading="lazy" class='bg-image' src="/i/backgrounds/${bgsDir}/${bgsToDisplay[i]}?x=6" alt="${bgsToDisplay[i]}-background" data-nonce="${nonce}" data-onclick="post('/settings/personal?background=${onclickPost}')"></button>`;
str += `<button class="btn btn-secondary bg-button"><img loading="lazy" class='bg-image' src="${SITE_FULL_IMAGES}/i/backgrounds/${bgsDir}/${bgsToDisplay[i]}?x=6" alt="${bgsToDisplay[i]}-background" data-nonce="${nonce}" data-onclick="post('/settings/personal?background=${onclickPost}')"></button>`;
}
bgContainer.innerHTML = str;

View File

@ -374,7 +374,7 @@ class Comment(Base):
if not body: return ""
if not (self.parent_post and self.post.sub == 'chudrama'):
body = censor_slurs(body, v).replace('<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="/e/marseytrain.webp">', ':marseytrain:')
body = censor_slurs(body, v).replace(f'<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="{SITE_FULL_IMAGES}/e/marseytrain.webp">', ':marseytrain:')
return body

View File

@ -323,7 +323,7 @@ class Post(Base):
if not body: return ""
if self.sub != 'chudrama':
body = censor_slurs(body, v).replace('<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="/e/marseytrain.webp">', ':marseytrain:')
body = censor_slurs(body, v).replace(f'<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="{SITE_FULL_IMAGES}/e/marseytrain.webp">', ':marseytrain:')
body = normalize_urls_runtime(body, v)
@ -343,7 +343,7 @@ class Post(Base):
title = self.title
if self.sub != 'chudrama':
title = censor_slurs(title, v).replace('<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="/e/marseytrain.webp">', ':marseytrain:')
title = censor_slurs(title, v).replace(f'<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="{SITE_FULL_IMAGES}/e/marseytrain.webp">', ':marseytrain:')
return title

View File

@ -573,9 +573,9 @@ class User(Base):
def bio_html_eager(self):
if self.bio_html == None: return ''
return self.bio_html.replace('data-src', 'src') \
.replace('src="/i/loading.webp?x=6"', '') \
.replace('src="/i/loading.webp"', '') \
.replace('src="/i/l.webp"', '')
.replace(f'src="{SITE_FULL_IMAGES}/i/loading.webp?x=6"', '') \
.replace(f'src="{SITE_FULL_IMAGES}/i/loading.webp"', '') \
.replace(f'src="{SITE_FULL_IMAGES}/i/l.webp"', '')
@property
@lazy

View File

@ -130,10 +130,10 @@ SLURS = {
"fag": "strag",
"(?<![a-z])spic(?![a-z])": "hard-working American",
"(?<![a-z])spics(?![a-z])": "hard-working Americans",
"trannie": '<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="/e/marseytrain.webp">',
"tranny": '<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="/e/marseytrain.webp">',
"troon": '<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="/e/marseytrain.webp">',
"tranner": '<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="/e/marseytrain.webp">',
"trannie": f'<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="{SITE_FULL_IMAGES}/e/marseytrain.webp">',
"tranny": f'<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="{SITE_FULL_IMAGES}/e/marseytrain.webp">',
"troon": f'<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="{SITE_FULL_IMAGES}/e/marseytrain.webp">',
"tranner": f'<img loading="lazy" data-bs-toggle="tooltip" alt=":marseytrain:" title=":marseytrain:" src="{SITE_FULL_IMAGES}/e/marseytrain.webp">',
"kike": "jewish chad",
"(?<![a-z])heeb": "jewish chad",
"daisy's destruction": "Cars 2",

View File

@ -239,12 +239,12 @@ def render_emoji(html, regexp, golden, emojis_used, b=False, is_title=False):
if emoji.endswith('pat') and emoji != 'marseyunpettablepat':
if path.isfile(f"files/assets/images/emojis/{emoji.replace('pat','')}.webp"):
emoji_html = f'<span alt=":{old}:" data-bs-toggle="tooltip" title=":{old}:"><img loading="lazy" src="/i/hand.webp">{emoji_partial_pat.format(old, f"/e/{emoji[:-3]}.webp", attrs)}</span>'
emoji_html = f'<span alt=":{old}:" data-bs-toggle="tooltip" title=":{old}:"><img loading="lazy" src="{SITE_FULL_IMAGES}/i/hand.webp">{emoji_partial_pat.format(old, f"{SITE_FULL_IMAGES}/e/{emoji[:-3]}.webp", attrs)}</span>'
elif emoji.startswith('@'):
if u := get_user(emoji[1:-3], graceful=True):
emoji_html = f'<span alt=":{old}:" data-bs-toggle="tooltip" title=":{old}:"><img loading="lazy" src="/i/hand.webp">{emoji_partial_pat.format(old, f"/pp/{u.id}", attrs)}</span>'
emoji_html = f'<span alt=":{old}:" data-bs-toggle="tooltip" title=":{old}:"><img loading="lazy" src="{SITE_FULL_IMAGES}/i/hand.webp">{emoji_partial_pat.format(old, f"/pp/{u.id}", attrs)}</span>'
elif path.isfile(f'files/assets/images/emojis/{emoji}.webp'):
emoji_html = emoji_partial.format(old, f'/e/{emoji}.webp', attrs)
emoji_html = emoji_partial.format(old, f'{SITE_FULL_IMAGES}/e/{emoji}.webp', attrs)
if emoji_html:
@ -412,7 +412,7 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=False, count_emojis
u = users_dict.get(m.group(1).lower())
if not u or (v and u.id in v.all_twoway_blocks):
return m.group(0)
return f'<a href="/id/{u.id}"><img loading="lazy" src="/pp/{u.id}">@{u.username}</a>'
return f'<a href="/id/{u.id}"><img loading="lazy" src="{SITE_FULL_IMAGES}/pp/{u.id}">@{u.username}</a>'
sanitized = mention_regex.sub(replacer, sanitized)
@ -435,7 +435,7 @@ def sanitize(sanitized, golden=True, limit_pings=0, showmore=False, count_emojis
soup = BeautifulSoup(sanitized, 'lxml')
for tag in soup.find_all("img"):
if tag.get("src") and not tag["src"].startswith('/pp/') and not tag["src"].startswith('/e/'):
if tag.get("src") and not tag["src"].startswith('/pp/') and not tag["src"].startswith(f'{SITE_FULL_IMAGES}/e/'):
if not is_safe_url(tag["src"]):
a = soup.new_tag("a", href=tag["src"], rel="nofollow noopener", target="_blank")
a.string = tag["src"]

View File

@ -214,7 +214,7 @@ def approve_emoji(v, name):
ma = ModAction(
kind="approve_emoji",
user_id=v.id,
_note=f'<img loading="lazy" data-bs-toggle="tooltip" alt=":{name}:" title=":{name}:" src="/e/{name}.webp">'
_note=f'<img loading="lazy" data-bs-toggle="tooltip" alt=":{name}:" title=":{name}:" src="{SITE_FULL_IMAGES}/e/{name}.webp">'
)
g.db.add(ma)
@ -491,7 +491,7 @@ def update_emoji(v):
ma = ModAction(
kind="update_emoji",
user_id=v.id,
_note=f'<img loading="lazy" data-bs-toggle="tooltip" alt=":{name}:" title=":{name}:" src="/e/{name}.webp">'
_note=f'<img loading="lazy" data-bs-toggle="tooltip" alt=":{name}:" title=":{name}:" src="{SITE_FULL_IMAGES}/e/{name}.webp">'
)
g.db.add(ma)

View File

@ -34,7 +34,7 @@
<td>
{% if item[1] != "Unknown" %}
<a href="/id/{{item[2]}}">
<img loading="lazy" src="/pp/{{item[2]}}">
<img loading="lazy" src="{{SITE_FULL_IMAGES}}/pp/{{item[2]}}">
@{{item[1]}}
</a>
{% endif %}
@ -45,7 +45,7 @@
Modmail
{% else %}
<a href="/id/{{item[4]}}">
<img loading="lazy" src="/pp/{{item[4]}}">
<img loading="lazy" src="{{SITE_FULL_IMAGES}}/pp/{{item[4]}}">
@{{item[3]}}
</a>
{% endif %}

View File

@ -88,7 +88,7 @@
{%- macro leaderboard(text, css_class, marsey, color) -%}
<div class="casino-game-leaderboard">
<div class="leaderboard-marsey-trophy">
<img loading="lazy" class="leaderboard-marsey-trophy__marsey" src="/e/{{marsey}}.webp">
<img loading="lazy" class="leaderboard-marsey-trophy__marsey" src="{{SITE_FULL_IMAGES}}/e/{{marsey}}.webp">
<i class="fas fa-trophy leaderboard-marsey-trophy__trophy" style="color: {{color}};"></i>
</div>
<div class="casino-game-leaderboard-info">

View File

@ -20,7 +20,7 @@ Bets
<div class="roulette-bet-summary--heading">
<div class="roulette-poker-chip">
<img loading="lazy" src="{{SITE_FULL_IMAGES}}/i/pokerchip.webp" width="40" height="40">
<img loading="lazy" src="/e/marseycodecellove.webp" width="40" height="40">
<img loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseycodecellove.webp" width="40" height="40">
</div>
<p>111 is betting 4 and 4:
</p>

View File

@ -3,7 +3,7 @@
{% block body %}
{% block pulltorefresh %}
<div id="pulltorefresh">
<img id="pulltorefresh-img" src="/e/marseyunamused.webp">
<img id="pulltorefresh-img" src="{{SITE_FULL_IMAGES}}/e/marseyunamused.webp">
</div>
{% endblock %}
{% block banner %}

View File

@ -23,7 +23,7 @@
<tr>
<td>{{loop.index}}</td>
<td>{{emoji.name}}</td>
<td><img class="emoji" loading="lazy" data-bs-toggle="tooltip" alt=":#{{emoji.name}}:" title=":{{emoji.name}}:" src="/e/{{emoji.name}}.webp"></td>
<td><img class="emoji" loading="lazy" data-bs-toggle="tooltip" alt=":#{{emoji.name}}:" title=":{{emoji.name}}:" src="{{SITE_FULL_IMAGES}}/e/{{emoji.name}}.webp"></td>
<td>{{emoji.count}}</td>
{% if FEATURES['ASSET_SUBMISSIONS'] %}
{% set user = emoji.user %}

View File

@ -83,7 +83,7 @@
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-5">
<img alt=":#marseyconfused:" loading="lazy" src="/e/marseyconfused.webp">
<img alt=":#marseyconfused:" loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseyconfused.webp">
<h5 class=" mt-1">Not Found</h5>
<p class="text-muted mb-3">
That wasn't found.

View File

@ -83,7 +83,7 @@
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-5">
<img alt=":#marseycapysorenjump2:" loading="lazy" src="/e/marseycapysorenjump2.webp">
<img alt=":#marseycapysorenjump2:" loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseycapysorenjump2.webp">
<h5 class=" mt-1">502 Bad Gateway</h5>
<p class="text-muted mb-3">
Aevann is probably restarting server or sum shit, just keep refreshing lmao

View File

@ -6,7 +6,7 @@
<div class="col-10 col-md-5">
<div class="text-center px-3 my-5">
{% if img -%}
<img alt=":#{{img}}:" loading="lazy" src="/e/{{img}}.webp">
<img alt=":#{{img}}:" loading="lazy" src="{{SITE_FULL_IMAGES}}/e/{{img}}.webp">
{%- endif %}
<h5 class=" mt-1">{{code}} {{title}}</h5>
<p class="text-muted error-description">{{msg|safe}}</p>

View File

@ -5,7 +5,7 @@
<div class="row justify-content-center">
<div class="col col-md-5">
<div class="text-center px-3 mt-3">
<img alt=":#marseytwerking:" loading="lazy" src="/e/marseytwerking.webp">
<img alt=":#marseytwerking:" loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseytwerking.webp">
<h5>Are you over 18?</h5>
<p class="mb-3">This post is rated +18 (Adult-Only). You must be 18 or older to continue. Are you sure you want to proceed?</p>
<div class="btn-toolbar justify-content-center mb-4">

View File

@ -83,7 +83,7 @@
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-5">
<img alt=":#marseyconfused:" loading="lazy" src="/e/marseyconfused.webp">
<img alt=":#marseyconfused:" loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseyconfused.webp">
<h5 class=" mt-1">Not Found - where did it go?</h5>
<p class="text-muted mb-3">
Someone typed something wrong and it was probably you, please do better.

View File

@ -83,7 +83,7 @@
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-5">
<img alt=":#marseycapysorenjump2:" loading="lazy" src="/e/marseycapysorenjump2.webp">
<img alt=":#marseycapysorenjump2:" loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseycapysorenjump2.webp">
<h5 class=" mt-1">502 Bad Gateway</h5>
<p class="text-muted mb-3">
Aevann is probably restarting server or sum shit, just keep refreshing lmao

View File

@ -2,7 +2,7 @@
{% set gingerbread_count = p.award_count("gingerbread", v) * 2 if p.award_count("gingerbread", v) <= 10 else 20 %}
{% for i in range(gingerbread_count) %}
<div class="fall-snowflake">
<img loading="lazy" src="/assets/events/fistmas/images/awards/gingerbread.webp?x=6" class="animate-spin object-contain" style="width: 40px; height: 40px;" alt="animate marsey gingerbread icon" />
<img loading="lazy" src="{{SITE_FULL_IMAGES}}/assets/events/fistmas/images/awards/gingerbread.webp?x=6" class="animate-spin object-contain" style="width: 40px; height: 40px;" alt="animate marsey gingerbread icon" />
</div>
{% endfor %}

View File

@ -4,7 +4,7 @@
<a rel="nofollow noopener noreferrer" href="https://www.youtube.com/watch?v=BuKft9LpL_0" style="text-decoration: none !important">
{% if SITE_NAME == 'rDrama' and range(1, 20)|random() == 1 %}
<img loading="lazy" src="/assets/events/fistmas/images/banner_new.webp" style="width:100%" />
<img loading="lazy" src="{{SITE_FULL_IMAGES}}/assets/events/fistmas/images/banner_new.webp" style="width:100%" />
{% else %}
<link rel="stylesheet" href="{{'events/fistmas/css/banner.css' | asset}}">
{% if SITE_NAME == 'rDrama' %}

View File

@ -80,32 +80,32 @@ Text 2
<tr>
<td>Emojis</td>
<td>:marseylove:</td>
<td><img loading="lazy" data-bs-toggle="tooltip" class="emoji" alt=":marseylove:" title=":marseylove:" height="30" src="/e/marseylove.webp"></td>
<td><img loading="lazy" data-bs-toggle="tooltip" class="emoji" alt=":marseylove:" title=":marseylove:" height="30" src="{{SITE_FULL_IMAGES}}/e/marseylove.webp"></td>
</tr>
<tr>
<td>Mirrored Emojis</td>
<td>:!marseylove:</td>
<td><img loading="lazy" data-bs-toggle="tooltip" class="emoji mirrored" alt=":!marseylove:" title=":!marseylove:" height="30" src="/e/marseylove.webp"></td>
<td><img loading="lazy" data-bs-toggle="tooltip" class="emoji mirrored" alt=":!marseylove:" title=":!marseylove:" height="30" src="{{SITE_FULL_IMAGES}}/e/marseylove.webp"></td>
</tr>
<tr>
<td>Large Emojis</td>
<td>:#marseylove:</td>
<td><img loading="lazy" data-bs-toggle="tooltip" b alt=":marseylove:" title=":marseylove:" src="/e/marseylove.webp"></td>
<td><img loading="lazy" data-bs-toggle="tooltip" b alt=":marseylove:" title=":marseylove:" src="{{SITE_FULL_IMAGES}}/e/marseylove.webp"></td>
</tr>
<tr>
<td>Large Mirrored Emojis</td>
<td>:#!marseylove:</td>
<td><img loading="lazy" data-bs-toggle="tooltip" b alt=":!marseylove:" title=":!marseylove:" src="/e/marseylove.webp"></td>
<td><img loading="lazy" data-bs-toggle="tooltip" b alt=":!marseylove:" title=":!marseylove:" src="{{SITE_FULL_IMAGES}}/e/marseylove.webp"></td>
</tr>
<tr>
<td>Pat Emojis</td>
<td>:marseylovepat:</td>
<td><span alt=":marseylovepat:" data-bs-toggle="tooltip" title=":marseylovepat:"><img loading="lazy" src="{{SITE_FULL_IMAGES}}/i/hand.webp"><img alt=":marseylovepat:" b loading="lazy" pat src="/e/marseylove.webp"></span></td>
<td><span alt=":marseylovepat:" data-bs-toggle="tooltip" title=":marseylovepat:"><img loading="lazy" src="{{SITE_FULL_IMAGES}}/i/hand.webp"><img alt=":marseylovepat:" b loading="lazy" pat src="{{SITE_FULL_IMAGES}}/e/marseylove.webp"></span></td>
</tr>
<tr>
<td>Pat User</td>
<td>:@snappypat:</td>
<td><span alt=":@snappypat:" data-bs-toggle="tooltip" title=":@snappypat:"><img loading="lazy" src="{{SITE_FULL_IMAGES}}/i/hand.webp"><img alt=":@snappypat:" b loading="lazy" pat src="/pp/3"></span></td>
<td><span alt=":@snappypat:" data-bs-toggle="tooltip" title=":@snappypat:"><img loading="lazy" src="{{SITE_FULL_IMAGES}}/i/hand.webp"><img alt=":@snappypat:" b loading="lazy" pat src="{{SITE_FULL_IMAGES}}/pp/3"></span></td>
</tr>
<tr>
<td>Random Marsey</td>
@ -212,7 +212,7 @@ Text 2
<tr>
<td>Username Mention</td>
<td>@QuadNarca</td>
<td><a class="d-inline-block" href="/@QuadNarca"><img alt="@QuadNarca profile picture" loading="lazy" src="/pp/29">@QuadNarca</a></td>
<td><a class="d-inline-block" href="/@QuadNarca"><img alt="@QuadNarca profile picture" loading="lazy" src="{{SITE_FULL_IMAGES}}/pp/29">@QuadNarca</a></td>
</tr>
<tr>
<td>Subreddit Mention</td>

View File

@ -46,7 +46,7 @@
{% include "user_in_table.html" %}
{% endwith %}
{% if owner %}
<img class="mx-2 group-owner" data-bs-toggle="tooltip" alt="Owner" title="Owner" src="/e/marseykingretard.webp">
<img class="mx-2 group-owner" data-bs-toggle="tooltip" alt="Owner" title="Owner" src="{{SITE_FULL_IMAGES}}/e/marseykingretard.webp">
{% endif %}
</td>

View File

@ -35,7 +35,7 @@
{% else %}
{%- set VISITORS_HERE_FLAVOR = [
"incels currently stalking roasties",
'gooners currently edging to <img loading="lazy" src="/e/marseycumjar3.webp" style="height:1.5em!important">',
'gooners currently edging to <img loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseycumjar3.webp" style="height:1.5em!important">',
"fanboys currently obsessing over Carp",
"NEETs currently LDARmaxxing",
"valid women currently dilating",

View File

@ -34,13 +34,13 @@
<div class="dropdown dropdown-actions">
<button type="button" class="btn btn-secondary dropdown-toggle" id="dropdownMenuButton" data-bs-toggle="dropdown">
{% if admin %}<img loading="lazy" src="/@{{admin}}/pic" alt="avatar" class="profile-pic-20 mr-2">{{admin}}{% else %}<img loading="lazy" src="/e/marseyjanny.webp" alt="avatar" class="profile-pic-20 mr-2">All{% endif %}
{% if admin %}<img loading="lazy" src="{{SITE_FULL_IMAGES}}/@{{admin}}/pic" alt="avatar" class="profile-pic-20 mr-2">{{admin}}{% else %}<img loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseyjanny.webp" alt="avatar" class="profile-pic-20 mr-2">All{% endif %}
</button>
<div class="dropdown-menu" x-placement="bottom-start" style="position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(0px, 31px, 0px); max-height: 50vh;
overflow: auto;">
<a class="dropdown-item" href="{% if sub %}/h/{{sub}}{% endif %}/log{% if type %}?kind={{type}}{% endif %}"><img loading="lazy" src="/e/marseyjanny.webp" alt="avatar" class="profile-pic-20 mr-2">All</a>
<a class="dropdown-item" href="{% if sub %}/h/{{sub}}{% endif %}/log{% if type %}?kind={{type}}{% endif %}"><img loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseyjanny.webp" alt="avatar" class="profile-pic-20 mr-2">All</a>
{% for a in admins %}
<a class="dropdown-item" href="?{{single_user_url}}={{a}}{% if type %}&kind={{type}}{% endif %}"><img loading="lazy" src="/@{{a}}/pic" alt="avatar" class="profile-pic-20 mr-2">{{a}}</a>
<a class="dropdown-item" href="?{{single_user_url}}={{a}}{% if type %}&kind={{type}}{% endif %}"><img loading="lazy" src="{{SITE_FULL_IMAGES}}/@{{a}}/pic" alt="avatar" class="profile-pic-20 mr-2">{{a}}</a>
{% endfor %}
</div>
</div>

View File

@ -3,7 +3,7 @@
{% block pagetype %}message-success{% endblock %}
{% block content %}
<div class="text-center py-6 py-md-8">
<img class="mb-3" alt=":#marseyparty:" loading="lazy" src="/e/marseyparty.webp">
<img class="mb-3" alt=":#marseyparty:" loading="lazy" src="{{SITE_FULL_IMAGES}}/e/marseyparty.webp">
<div class="font-weight-bold text-muted mb-4">{{title}}</div>
<p class="text-muted">{{message}}</p>
</div>

View File

@ -33,6 +33,7 @@
<input hidden id="gbrowser" value="{{g.browser}}">
<input hidden id="IMAGE_FORMATS" value="{{IMAGE_FORMATS}}">
<input hidden id="approved_embed_hosts" value="{{approved_embed_hosts}}">
<input hidden id="SITE_FULL_IMAGES" value="{{SITE_FULL_IMAGES}}">
<script src="{{'js/top.js' | asset}}"></script>
{% block body required %}{% endblock %}
{{html_head.stylesheets_lower()}}

View File

@ -152,7 +152,7 @@
{% if mfa_secret %}
<p><span class="font-weight-bold">Step 1:</span> Scan this QR code (or enter the code) using a two-factor authentication app such as Google Authenticator or Authy.</p>
<div class="text-center mb-3">
<img alt="two-factor QR code" loading="lazy" class="img-fluid" width=175 src="/2faqr/{{mfa_secret}}">
<img alt="two-factor QR code" loading="lazy" class="img-fluid" width=175 src="{{SITE_FULL_IMAGES}}/2faqr/{{mfa_secret}}">
<div class="text-small text-muted mt-1">Or enter this code: {{mfa_secret}}</div>
</div>
<p><span class="font-weight-bold">Step 2:</span> Enter the six-digit code generated in the authenticator app and your {{SITE_NAME}} account password.</p>

View File

@ -232,7 +232,7 @@
{% macro chat_group_template(id, m) %}
<div class="chat-group">
<a class="font-weight-bold userlink" target="_blank" {% if m %}style="color:#{{m['namecolor']}}" href="/@{{m['username']}}" {% endif %}><div class="avatar profile-pic-20-wrapper mr-1"><img loading="lazy" class="avatar-pic pp20 mr-1" {% if m %}src="/pp/{{m['user_id']}}"{% endif %}><img class="avatar-hat profile-pic-20-hat hat" loading="lazy" {% if m %}src="{{m['hat']}}"{% endif %}></div>{% if m %}{{m['username']}}{% else %}NULL{% endif %}</a>
<a class="font-weight-bold userlink" target="_blank" {% if m %}style="color:#{{m['namecolor']}}" href="/@{{m['username']}}" {% endif %}><div class="avatar profile-pic-20-wrapper mr-1"><img loading="lazy" class="avatar-pic pp20 mr-1" {% if m %}src="{{SITE_FULL_IMAGES}}/pp/{{m['user_id']}}"{% endif %}><img class="avatar-hat profile-pic-20-hat hat" loading="lazy" {% if m %}src="{{m['hat']}}"{% endif %}></div>{% if m %}{{m['username']}}{% else %}NULL{% endif %}</a>
<span class="text-black time ml-1 mb-3 text-center">{% if m %}{{m['time'] | timestamp}}{% else %}just now{% endif %}</span>
<input hidden class="user_id" {% if m %}value="{{m['user_id']}}"{% endif %}>
{% endmacro %}