Merge branch 'frost' of https://github.com/Aevann1/rDrama into frost
commit
15073496c6
|
@ -5594,6 +5594,15 @@ audio, video {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
#sidebar-lgb--host-notice img {
|
||||
display: block;
|
||||
margin: 1.5rem auto 1rem auto;
|
||||
}
|
||||
#sidebar-lgb--host-notice a {
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#sidebar--directory--head {
|
||||
display: block;
|
||||
font-size: 1.35rem;
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 8.2 KiB |
|
@ -50,7 +50,9 @@ function popclick(e) {
|
|||
popover.getElementsByClassName('pop-banner')[0].src = author["bannerurl"]
|
||||
popover.getElementsByClassName('pop-picture')[0].src = author["profile_url"]
|
||||
popover.getElementsByClassName('pop-username')[0].innerHTML = author["username"]
|
||||
popover.getElementsByClassName('pop-bio')[0].innerHTML = author["bio_html"]
|
||||
if (popover.getElementsByClassName('pop-bio').length > 0) {
|
||||
popover.getElementsByClassName('pop-bio')[0].innerHTML = author["bio_html"]
|
||||
}
|
||||
popover.getElementsByClassName('pop-postcount')[0].innerHTML = author["post_count"]
|
||||
popover.getElementsByClassName('pop-commentcount')[0].innerHTML = author["comment_count"]
|
||||
popover.getElementsByClassName('pop-coins')[0].innerHTML = author["coins"]
|
||||
|
|
|
@ -278,6 +278,8 @@ class User(Base):
|
|||
@property
|
||||
@lazy
|
||||
def paid_dues(self):
|
||||
if not FEATURES['COUNTRY_CLUB']:
|
||||
return True
|
||||
return not self.shadowbanned and not (self.is_banned and not self.unban_utc) and (self.admin_level or self.club_allowed or (self.club_allowed != False and self.truecoins > dues))
|
||||
|
||||
@lazy
|
||||
|
@ -592,8 +594,9 @@ class User(Base):
|
|||
@property
|
||||
@lazy
|
||||
def banner_url(self):
|
||||
if self.bannerurl: return self.bannerurl
|
||||
else: return f"/i/{SITE_NAME}/site_preview.webp?v=3001"
|
||||
if FEATURES['USERS_PROFILE_BANNER'] and self.bannerurl:
|
||||
return self.bannerurl
|
||||
return f"/i/{SITE_NAME}/site_preview.webp?v=3001"
|
||||
|
||||
@property
|
||||
@lazy
|
||||
|
|
|
@ -148,11 +148,16 @@ FEATURES = {
|
|||
'AWARDS': True,
|
||||
'CHAT': True,
|
||||
'PINS': True,
|
||||
'COUNTRY_CLUB': True,
|
||||
'PRONOUNS': False,
|
||||
'BADGES': True,
|
||||
'HOUSES': False,
|
||||
'USERS_SUICIDE': True,
|
||||
'GAMBLING': True,
|
||||
'USERS_PROFILE_BANNER': True,
|
||||
'USERS_PROFILE_BODYTEXT': True,
|
||||
'USERS_PROFILE_SONG': True,
|
||||
'USERS_SUICIDE': True,
|
||||
'MARKUP_COMMANDS': True,
|
||||
}
|
||||
|
||||
EMOJI_MARSEYS = True
|
||||
|
@ -331,9 +336,14 @@ elif SITE == 'lgbdropthet.com':
|
|||
FEATURES['PROCOINS'] = False
|
||||
FEATURES['AWARDS'] = False
|
||||
FEATURES['CHAT'] = False
|
||||
FEATURES['COUNTRY_CLUB'] = False
|
||||
FEATURES['BADGES'] = False
|
||||
FEATURES['USERS_SUICIDE'] = False
|
||||
FEATURES['GAMBLING'] = False
|
||||
FEATURES['USERS_PROFILE_BANNER'] = False
|
||||
FEATURES['USERS_PROFILE_BODYTEXT'] = False
|
||||
FEATURES['USERS_PROFILE_SONG'] = False
|
||||
FEATURES['USERS_SUICIDE'] = False
|
||||
FEATURES['MARKUP_COMMANDS'] = False
|
||||
|
||||
EMOJI_MARSEYS = False
|
||||
EMOJI_SRCS = ['files/assets/emojis.lgbdropthet.json']
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from files.cli import g, app, db_session
|
||||
import click
|
||||
from files.helpers.const import *
|
||||
from files.classes import *
|
||||
|
||||
import files.helpers.lottery as lottery
|
||||
import files.helpers.offsitementions as offsitementions
|
||||
|
@ -10,8 +11,35 @@ import files.routes.static as route_static
|
|||
|
||||
from sys import stdout
|
||||
import datetime
|
||||
import time
|
||||
import requests
|
||||
|
||||
@app.cli.command('cron', help='Run scheduled tasks.')
|
||||
@click.option('--every-5m', is_flag=True, help='Call every 5 minutes.')
|
||||
@click.option('--every-1h', is_flag=True, help='Call every 1 hour.')
|
||||
@click.option('--every-1d', is_flag=True, help='Call every 1 day.')
|
||||
@click.option('--every-1mo', is_flag=True, help='Call every 1 month.')
|
||||
def cron(every_5m, every_1h, every_1d, every_1mo):
|
||||
g.db = db_session()
|
||||
|
||||
if every_5m:
|
||||
lottery.check_if_end_lottery_task()
|
||||
offsitementions.offsite_mentions_task()
|
||||
|
||||
if every_1h:
|
||||
awards.award_timers_bots_task()
|
||||
|
||||
if every_1d:
|
||||
stats.generate_charts_task(SITE)
|
||||
route_static.stats_cached()
|
||||
sub_inactive_purge_task()
|
||||
|
||||
if every_1mo:
|
||||
give_monthly_marseybux_task()
|
||||
|
||||
g.db.commit()
|
||||
g.db.close()
|
||||
stdout.flush()
|
||||
|
||||
def sub_inactive_purge_task():
|
||||
if not HOLE_INACTIVITY_DELETION:
|
||||
|
@ -77,30 +105,3 @@ def give_monthly_marseybux_task():
|
|||
|
||||
return True
|
||||
|
||||
|
||||
@app.cli.command('cron', help='Run scheduled tasks.')
|
||||
@click.option('--every-5m', is_flag=True, help='Call every 5 minutes.')
|
||||
@click.option('--every-1h', is_flag=True, help='Call every 1 hour.')
|
||||
@click.option('--every-1d', is_flag=True, help='Call every 1 day.')
|
||||
@click.option('--every-1mo', is_flag=True, help='Call every 1 month.')
|
||||
def cron(every_5m, every_1h, every_1d, every_1mo):
|
||||
g.db = db_session()
|
||||
|
||||
if every_5m:
|
||||
lottery.check_if_end_lottery_task()
|
||||
offsitementions.offsite_mentions_task()
|
||||
|
||||
if every_1h:
|
||||
awards.award_timers_bots_task()
|
||||
|
||||
if every_1d:
|
||||
stats.generate_charts_task(SITE)
|
||||
route_static.stats_cached()
|
||||
sub_inactive_purge_task()
|
||||
|
||||
if every_1mo:
|
||||
give_monthly_marseybux_task()
|
||||
|
||||
g.db.commit()
|
||||
g.db.close()
|
||||
stdout.flush()
|
|
@ -38,6 +38,10 @@ def end_lottery_session():
|
|||
for _ in range(user.currently_held_lottery_tickets):
|
||||
raffle.append(user.id)
|
||||
|
||||
if len(raffle) == 0:
|
||||
active_lottery.is_active = False
|
||||
return True, "Lottery ended with no participants."
|
||||
|
||||
winner = choice(raffle)
|
||||
active_lottery.winner_id = winner
|
||||
winning_user = next(filter(lambda x: x.id == winner, participating_users))
|
||||
|
@ -58,7 +62,6 @@ def end_lottery_session():
|
|||
|
||||
active_lottery.is_active = False
|
||||
|
||||
|
||||
return True, f'{winning_user.username} won {active_lottery.prize} coins!'
|
||||
|
||||
|
||||
|
|
|
@ -230,7 +230,8 @@ def sanitize(sanitized, edit=False):
|
|||
|
||||
sanitized = link_fix_regex.sub(r'\1https://\2', sanitized)
|
||||
|
||||
sanitized = command_regex.sub(command_regex_matcher, sanitized)
|
||||
if FEATURES['MARKUP_COMMANDS']:
|
||||
sanitized = command_regex.sub(command_regex_matcher, sanitized)
|
||||
|
||||
sanitized = markdown(sanitized)
|
||||
|
||||
|
|
|
@ -98,7 +98,7 @@ def frontlist(v=None, sort="hot", page=1, t="all", ids_only=True, ccmode="false"
|
|||
if not gt and not lt:
|
||||
posts = apply_time_filter(t, posts, Submission)
|
||||
|
||||
if (ccmode == "true"):
|
||||
if (ccmode == "true") and FEATURES['COUNTRY_CLUB']:
|
||||
posts = posts.filter(Submission.club == True)
|
||||
|
||||
posts = posts.filter_by(is_banned=False, private=False, deleted_utc = 0)
|
||||
|
|
|
@ -31,6 +31,8 @@ titleheaders = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWe
|
|||
@app.post("/toggle_club/<pid>")
|
||||
@auth_required
|
||||
def toggle_club(pid, v):
|
||||
if not FEATURES['COUNTRY_CLUB']:
|
||||
abort(403)
|
||||
|
||||
post = get_post(pid)
|
||||
if post.author_id != v.id and v.admin_level < 2: abort(403)
|
||||
|
@ -906,7 +908,9 @@ def submit_post(v, sub=None):
|
|||
|
||||
if len(body_html) > 40000: return error("Submission body_html too long! (max 40k characters)")
|
||||
|
||||
club = bool(request.values.get("club",""))
|
||||
club = False
|
||||
if FEATURES['COUNTRY_CLUB']:
|
||||
club = bool(request.values.get("club",""))
|
||||
|
||||
if embed and len(embed) > 1500: embed = None
|
||||
|
||||
|
|
|
@ -144,7 +144,7 @@ def settings_profile_post(v):
|
|||
|
||||
|
||||
|
||||
elif request.values.get("friends"):
|
||||
elif FEATURES['USERS_PROFILE_BODYTEXT'] and request.values.get("friends"):
|
||||
friends = request.values.get("friends")[:500]
|
||||
|
||||
friends_html = sanitize(friends)
|
||||
|
@ -170,7 +170,7 @@ def settings_profile_post(v):
|
|||
msg="Your friends list has been updated.")
|
||||
|
||||
|
||||
elif request.values.get("enemies"):
|
||||
elif FEATURES['USERS_PROFILE_BODYTEXT'] and request.values.get("enemies"):
|
||||
enemies = request.values.get("enemies")[:500]
|
||||
|
||||
enemies_html = sanitize(enemies)
|
||||
|
@ -196,7 +196,8 @@ def settings_profile_post(v):
|
|||
msg="Your enemies list has been updated.")
|
||||
|
||||
|
||||
elif request.values.get("bio") or request.files.get('file'):
|
||||
elif FEATURES['USERS_PROFILE_BODYTEXT'] and \
|
||||
(request.values.get("bio") or request.files.get('file')):
|
||||
bio = request.values.get("bio")[:1500]
|
||||
|
||||
bio += process_files()
|
||||
|
@ -536,6 +537,9 @@ def settings_images_profile(v):
|
|||
@limiter.limit("1/second;30/minute;200/hour;1000/day", key_func=lambda:f'{SITE}-{session.get("lo_user")}')
|
||||
@auth_required
|
||||
def settings_images_banner(v):
|
||||
if not FEATURES['USERS_PROFILE_BANNER']:
|
||||
abort(403)
|
||||
|
||||
if request.headers.get("cf-ipcountry") == "T1": return {"error":"Image uploads are not allowed through TOR."}, 403
|
||||
|
||||
file = request.files["banner"]
|
||||
|
@ -637,7 +641,8 @@ def settings_block_user(v):
|
|||
)
|
||||
g.db.add(new_block)
|
||||
|
||||
send_notification(user.id, f"@{v.username} has blocked you!")
|
||||
if user.admin_level >= PERMS['USER_BLOCKS_VISIBLE']:
|
||||
send_notification(user.id, f"@{v.username} has blocked you!")
|
||||
|
||||
cache.delete_memoized(frontlist)
|
||||
|
||||
|
@ -659,7 +664,7 @@ def settings_unblock_user(v):
|
|||
|
||||
g.db.delete(x)
|
||||
|
||||
if not v.shadowbanned:
|
||||
if not v.shadowbanned and user.admin_level >= PERMS['USER_BLOCKS_VISIBLE']:
|
||||
send_notification(user.id, f"@{v.username} has unblocked you!")
|
||||
|
||||
cache.delete_memoized(frontlist)
|
||||
|
@ -746,6 +751,8 @@ def settings_name_change(v):
|
|||
@limiter.limit("3/second;10/day", key_func=lambda:f'{SITE}-{session.get("lo_user")}')
|
||||
@auth_required
|
||||
def settings_song_change_mp3(v):
|
||||
if not FEATURES['USERS_PROFILE_SONG']:
|
||||
abort(403)
|
||||
|
||||
file = request.files['file']
|
||||
if file.content_type != 'audio/mpeg':
|
||||
|
@ -776,6 +783,9 @@ def settings_song_change_mp3(v):
|
|||
@limiter.limit("3/second;10/day", key_func=lambda:f'{SITE}-{session.get("lo_user")}')
|
||||
@auth_required
|
||||
def settings_song_change(v):
|
||||
if not FEATURES['USERS_PROFILE_SONG']:
|
||||
abort(403)
|
||||
|
||||
song=request.values.get("song").strip()
|
||||
|
||||
if song == "" and v.song:
|
||||
|
|
|
@ -21,9 +21,12 @@
|
|||
<h5 class="pop-username text-truncate text-black"></h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if FEATURES['USERS_PROFILE_BODYTEXT'] -%}
|
||||
<div class="px-3">
|
||||
<span class="pop-bio popover-bio text-black"></span>
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
{% if FEATURES['BADGES'] -%}
|
||||
<div class="pop-badges ml-3 mr-3 my-2">
|
||||
|
|
|
@ -116,6 +116,7 @@ Text 2
|
|||
<td>:marseyrandom:</td>
|
||||
<td>???</td>
|
||||
</tr>
|
||||
{% if FEATURES['MARKUP_COMMANDS'] -%}
|
||||
<tr>
|
||||
<td>Random Fortune</td>
|
||||
<td>#fortune</td>
|
||||
|
@ -131,6 +132,12 @@ Text 2
|
|||
<td>#factcheck</td>
|
||||
<td>???</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Roll</td>
|
||||
<td>#roll</td>
|
||||
<td>A number 1–9999.</td>
|
||||
</tr>
|
||||
{%- endif %}
|
||||
<tr>
|
||||
<td>
|
||||
Poll — Pick Multiple<br>
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<a class="btn btn-secondary mx-2 smol-fp" href="/toggle_pins/{{sort}}"><i class="fas fas fa-thumbtack fa-rotate--45 mr-2 "></i>Pins</a>
|
||||
{% endif %}
|
||||
|
||||
{% if v and SITE_NAME == 'rDrama' %}
|
||||
{% if v and SITE_NAME == 'rDrama' and FEATURES['COUNTRY_CLUB'] %}
|
||||
{% if v.paid_dues %}
|
||||
{% if ccmode=="true" %}
|
||||
<a data-bs-toggle="tooltip" data-bs-placement="bottom" title="Only show country club posts" class="btn btn-primary text-primary mx-2 smol-fp" href="?sort={{sort}}&t={{t}}&ccmode=false"><i class="fas fa-golf-club mr-2 "></i>CC</a>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{% block content %}
|
||||
<h1><u>LGB RESOURCES AND ORGANIZATIONS</u></h1>
|
||||
<br>
|
||||
<p>If you would like to add additional resources, or find any information on this page is out-of-date, please visit our <a href="/post/47/resources-organizations-megathread-meta">Resources & Organizations mega-thread</a>. to alert site Admins.</p>
|
||||
<p>If you would like to add additional resources, or find any information on this page is out-of-date, please visit our <a href="/post/47/resources-organizations-megathread-meta">Resources & Organizations mega-thread</a> to alert site Admins.</p>
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
<dl><ul>
|
||||
<li><i>About: </i>US organization that advocates for the rights of lesbians and gay men.</li>
|
||||
</ul></dl>
|
||||
<p><a href="#">Get The L Out</a><i> - this link will be updated from SaidIt once we get a proper Wiki on this site</i></p>
|
||||
<p><a href="https://saidit.net/s/GetTheLOut/wiki/gtlo_orgs">Get The L Out</a><i> - this link will be updated from SaidIt once we get a proper Wiki on this site</i></p>
|
||||
<dl><ul>
|
||||
<li><i>About: </i>GetTheLOut is primarily a UK-based group representing lesbians. There are a few other chapters around the world.</li>
|
||||
</ul></dl>
|
||||
|
@ -49,7 +49,7 @@
|
|||
</ul></dl>
|
||||
<br>
|
||||
<p><h2><u>SUPPORTIVE / RELEVANT / ALLIES</u></h2></p>
|
||||
<p><a href="https://www.segm.org/">Society for Evidence-based Gender Medicine</a></p>
|
||||
<p><a href="https://www.segm.org/">Society for Evidence-Based Gender Medicine</a></p>
|
||||
<dl><ul>
|
||||
<li><i>About: </i>Organization of physical and mental health practitioners, researchers and experts who are concerned about the lack of scientific evidence for popular treatments of gender dysphoria.</li>
|
||||
<li><i>Example Article: </i><a href="https://www.segm.org/typology_of_gender_detransition">A Typology of Gender Detransition and Its Implications for Healthcare Providers</a></li>
|
||||
|
@ -150,51 +150,51 @@ The Tavistock’s experiment with puberty blockers, part 5: the belated results<
|
|||
margin: 2rem 1rem;
|
||||
}
|
||||
|
||||
/******** Hides the checkbox/radio button */
|
||||
/******** Hides the checkbox/radio button */
|
||||
|
||||
.sources-wrapper input {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
.sources-wrapper input[type='radio'] {
|
||||
display: none;
|
||||
}
|
||||
.sources-wrapper input {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
z-index: -1;
|
||||
}
|
||||
.sources-wrapper input[type='radio'] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/******** SOURCE TITLES */
|
||||
/******** SOURCE TITLES */
|
||||
|
||||
.sources {
|
||||
color: var(--black);
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
.sources-label {
|
||||
font-size: 1.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 1em;
|
||||
color: var(--primary);
|
||||
.sources {
|
||||
color: var(--black);
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
.sources-label {
|
||||
font-size: 1.5rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 1em;
|
||||
color: var(--primary);
|
||||
border: 1px solid var(--primary);
|
||||
border-radius: 1rem;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/******** SOURCE CONTENT */
|
||||
/******** SOURCE CONTENT */
|
||||
|
||||
.sources-content {
|
||||
max-height: 0;
|
||||
padding: 0 1em;
|
||||
background: transparent !important;
|
||||
transition: all 0.35s;
|
||||
display: none;
|
||||
}
|
||||
.sources-wrapper input:checked ~ .sources-content {
|
||||
max-height: 100%;
|
||||
padding: 1em;
|
||||
display: block;
|
||||
transition: all 0.35s;
|
||||
}
|
||||
.sources-content {
|
||||
max-height: 0;
|
||||
padding: 0 1em;
|
||||
background: transparent !important;
|
||||
transition: all 0.35s;
|
||||
display: none;
|
||||
}
|
||||
.sources-wrapper input:checked ~ .sources-content {
|
||||
max-height: 100%;
|
||||
padding: 1em;
|
||||
display: block;
|
||||
transition: all 0.35s;
|
||||
}
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
<a id="hole-unpin-{{p.id}}" class="dropdown-item {% if not p.hole_pinned %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast(this,'/hole_unpin/{{p.id}}','hole-pin-{{p.id}}','hole-unpin-{{p.id}}','d-none')"><i class="fas fa-thumbtack fa-rotate--45"></i>Unpin fron /h/{{p.sub}}</a>
|
||||
{% endif %}
|
||||
|
||||
{% if v.admin_level > 1 or v.id == p.author_id %}
|
||||
{% if FEATURES['COUNTRY_CLUB'] and (v.admin_level > 1 or v.id == p.author_id) %}
|
||||
<a id="club-{{p.id}}" class="dropdown-item {% if p.club %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast(this,'/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}','d-none')"><i class="fas fa-eye-slash"></i>Mark club</a>
|
||||
<a id="unclub-{{p.id}}" class="dropdown-item {% if not p.club %}d-none{% endif %} list-inline-item text-info" role="button" onclick="post_toast(this,'/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}','d-none')"><i class="fas fa-eye"></i>Unmark club</a>
|
||||
{% endif %}
|
||||
|
|
|
@ -39,8 +39,10 @@
|
|||
<button id="delete-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deletePostModal" onclick="delete_postModal('{{p.id}}')"><i class="far fa-trash-alt mr-3"></i>Delete</button>
|
||||
|
||||
|
||||
{% if FEATURES['COUNTRY_CLUB'] -%}
|
||||
<button id="club3-{{p.id}}" class="{% if p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" role="button" onclick="post_toast(this,'/toggle_club/{{p.id}}','club3-{{p.id}}','unclub3-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-slash mr-3"></i>Mark club</button>
|
||||
<button id="unclub3-{{p.id}}" class="{% if not p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" role="button" onclick="post_toast(this,'/toggle_club/{{p.id}}','club3-{{p.id}}','unclub3-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye mr-3"></i>Unmark club</button>
|
||||
{%- endif %}
|
||||
|
||||
<button id="mark3-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" onclick="post_toast(this,'/toggle_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center mr-3"></i>Mark +18</button>
|
||||
<button id="unmark3-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" onclick="post_toast(this,'/toggle_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="far fa-eye-evil text-center mr-3"></i>Unmark +18</button>
|
||||
|
|
|
@ -13,8 +13,10 @@
|
|||
<button class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-dismiss="modal" onclick="togglePostEdit('{{p.id}}')"><i class="far fa-edit text-center text-muted mr-3"></i>Edit</button>
|
||||
{% endif %}
|
||||
|
||||
{% if FEATURES['COUNTRY_CLUB'] -%}
|
||||
<button id="club2-{{p.id}}" class="{% if p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-info text-left" role="button" onclick="post_toast(this,'/toggle_club/{{p.id}}','club2-{{p.id}}','unclub2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-slash mr-3"></i>Mark club</button>
|
||||
<button id="unclub2-{{p.id}}" class="{% if not p.club %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-info text-left" role="button" onclick="post_toast(this,'/toggle_club/{{p.id}}','club2-{{p.id}}','unclub2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye mr-3"></i>Unmark club</button>
|
||||
{%- endif %}
|
||||
|
||||
<button id="distinguish2-{{p.id}}" class="{% if p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" role="button" onclick="post_toast(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-crown text-center text-primary mr-3"></i>Distinguish</button>
|
||||
|
||||
|
|
|
@ -242,6 +242,8 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% if FEATURES['USERS_PROFILE_BANNER'] -%}
|
||||
<h2 class="h5">Profile Banner</h2>
|
||||
|
||||
<div class="settings-section rounded">
|
||||
|
@ -275,6 +277,7 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
<h2 class="h5" id="referral" name="referral">Referrals</h2>
|
||||
|
||||
|
@ -389,6 +392,8 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% if FEATURES['USERS_PROFILE_SONG'] -%}
|
||||
<div class="body d-lg-flex border-bottom">
|
||||
|
||||
<label class="text-black w-lg-25">Profile Anthem</label>
|
||||
|
@ -422,6 +427,8 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
<div class="body d-lg-flex border-bottom">
|
||||
|
||||
<label class="text-black w-lg-25">Name Color</label>
|
||||
|
@ -599,7 +606,7 @@
|
|||
{% endif %}
|
||||
|
||||
|
||||
|
||||
{% if FEATURES['USERS_PROFILE_BODYTEXT'] -%}
|
||||
<div class="body d-lg-flex border-bottom">
|
||||
|
||||
<label class="text-black w-lg-25">Bio</label>
|
||||
|
@ -671,6 +678,7 @@
|
|||
</div>
|
||||
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
|
||||
{% if v.patron or v.id == MOOSE_ID %}
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
{% endif %}
|
||||
|
||||
<p class="text-center text-md mb-4">
|
||||
<a class="sidebar-link" href="/badges" data-bs-toggle="tooltip" data-bs-placement="top" title="Badges"><i class="fas fa-hexagon"></i></a>
|
||||
<a class="sidebar-link" href="/admins" data-bs-toggle="tooltip" data-bs-placement="top" title="Admins"><i class="fas fa-crown"></i></a>
|
||||
<a class="sidebar-link" href="/log" data-bs-toggle="tooltip" data-bs-placement="top" title="Moderation Log"><i class="fas fa-scroll-old"></i></a>
|
||||
<a class="sidebar-link" href="/transfers" data-bs-toggle="tooltip" data-bs-placement="top" title="Transfers"><i class="fas fa-arrow-right-arrow-left"></i></a>
|
||||
|
@ -100,6 +99,11 @@
|
|||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
<hr>
|
||||
<div id="sidebar-lgb--host-notice">
|
||||
<img src="{{asset_siteimg('sidebar_host.webp')}}" />
|
||||
<a href="https://rdrama.net/">Proudly hosted by rDrama.</a>
|
||||
</div>
|
||||
<pre>
|
||||
|
||||
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
<a href="/h/child">Child</a>
|
||||
<a href="/h/misc">Misc</a>
|
||||
<a href="/h/request">Request</a>
|
||||
<a href="/h/discussion">Discussion</a>
|
||||
<a href="/h/meta">Meta</a>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -24,9 +24,12 @@
|
|||
<h5 class="pop-username text-truncate text-black"></h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if FEATURES['USERS_PROFILE_BODYTEXT'] -%}
|
||||
<div class="px-3">
|
||||
<span class="pop-bio popover-bio text-black"></span>
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
{% if FEATURES['BADGES'] -%}
|
||||
<div class="pop-badges ml-3 mr-3 my-2">
|
||||
|
|
|
@ -176,10 +176,12 @@
|
|||
<label class="custom-control-label" for="private">Draft</label>
|
||||
</div>
|
||||
|
||||
{% if FEATURES['COUNTRY_CLUB'] -%}
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input autocomplete="off" type="checkbox" class="custom-control-input" id="club" name="club">
|
||||
<label class="custom-control-label" for="club">{{CC_TITLE}} thread</label>
|
||||
</div>
|
||||
{%- endif %}
|
||||
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input onchange='draft(this);' autocomplete="off" type="checkbox" class="custom-control-input" id="ghost" name="ghost" {% if v.coins < 100 %}disabled{% endif %}>
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<span id="profile--lastactive" class="ml-2">last active <span id="profile--lastactive--time" data-bs-toggle="tooltip" data-bs-placement="bottom" onmouseover="timestamp('profile--lastactive--time','{{u.last_active}}')">{{u.last_active_date}}</span></span>
|
||||
{%- endif %}
|
||||
|
||||
{% if not hide_bios and u.bio_html %}
|
||||
{% if FEATURES['USERS_PROFILE_BODYTEXT'] and not hide_bios and u.bio_html %}
|
||||
<div class="card-text mt-3">{{u.bio_html | safe}}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
<div class="row d-none d-md-block">
|
||||
<div class="col px-0">
|
||||
<div class="jumbotron jumbotron-fluid jumbotron-guild d-none d-md-block" style="background-image: url({{u.banner_url}})">
|
||||
<div class="jumbotron jumbotron-fluid jumbotron-guild d-none d-md-block" {% if FEATURES['USERS_PROFILE_BANNER'] %}style="background-image: url({{u.banner_url}})"{% endif %}>
|
||||
<div class="jumbotron-overlay"></div>
|
||||
<div class="w-100 my-3">
|
||||
<div class="container-fluid nobackground">
|
||||
|
@ -128,9 +128,11 @@
|
|||
<img alt="marseybux" class="ml-1 mb-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Marseybux" height="20" width="46" src="/i/marseybux.webp?v=2000">
|
||||
{% endif %}
|
||||
|
||||
<a href="/@{{u.username}}/followers" id="profile--followers">{{u.stored_subscriber_count}} follower{{'s' if u.stored_subscriber_count != 1 else ''}}</a>
|
||||
{% if PERMS['USER_FOLLOWS_VISIBLE'] == 0 or (v and v.admin_level >= PERMS['USER_FOLLOWS_VISIBLE']) -%}
|
||||
<a href="/@{{u.username}}/followers" id="profile--followers">{{u.stored_subscriber_count}} follower{{'s' if u.stored_subscriber_count != 1 else ''}}</a>
|
||||
|
||||
<a href="/@{{u.username}}/following" id="profile--following">follows {{u.follow_count}} user{{'s' if u.follow_count != 1 else ''}}</a>
|
||||
<a href="/@{{u.username}}/following" id="profile--following">follows {{u.follow_count}} user{{'s' if u.follow_count != 1 else ''}}</a>
|
||||
{%- endif %}
|
||||
|
||||
<span id="profile--joined">joined <span id="profile--joined--time" data-bs-toggle="tooltip" data-bs-placement="bottom" onmouseover="timestamp('profile--joined--time','{{u.created_utc}}')">{{u.created_date}}</span></span>
|
||||
|
||||
|
@ -140,22 +142,24 @@
|
|||
</div>
|
||||
{% if u.basedcount %}<p class="text-muted" id="profile--based">Based Count: {{u.basedcount}}</p>{% endif %}
|
||||
|
||||
{% if u.bio_html %}
|
||||
<pre></pre>
|
||||
<div class="text-muted font-weight-bolder" id="profile--bio">{{u.bio_html | safe}}</div>
|
||||
{% else %}
|
||||
<p class="text-muted" id="profile--bio">No bio...</p>
|
||||
{% endif %}
|
||||
{% if FEATURES['USERS_PROFILE_BODYTEXT'] -%}
|
||||
{% if u.bio_html %}
|
||||
<pre></pre>
|
||||
<div class="text-muted font-weight-bolder" id="profile--bio">{{u.bio_html | safe}}</div>
|
||||
{% else %}
|
||||
<p class="text-muted" id="profile--bio">No bio...</p>
|
||||
{% endif %}
|
||||
|
||||
{% if u.friends_html %}
|
||||
<p class="text-muted font-weight-bold">Friends:</p>
|
||||
<div id="profile--friends">{{u.friends_html | safe}}</div>
|
||||
{% endif %}
|
||||
{% if u.friends_html %}
|
||||
<p class="text-muted font-weight-bold">Friends:</p>
|
||||
<div id="profile--friends">{{u.friends_html | safe}}</div>
|
||||
{% endif %}
|
||||
|
||||
{% if u.enemies_html %}
|
||||
<p class="text-muted font-weight-bold">Enemies:</p>
|
||||
<div id="profile--enemies">{{u.enemies_html | safe}}</div>
|
||||
{% endif %}
|
||||
{% if u.enemies_html %}
|
||||
<p class="text-muted font-weight-bold">Enemies:</p>
|
||||
<div id="profile--enemies">{{u.enemies_html | safe}}</div>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
|
||||
{% if u.received_awards and FEATURES['AWARDS'] %}
|
||||
<div class="text-white rounded p-2 mb-3" id="profile--awards" style="background-color: rgba(50, 50, 50, 0.6); width: 30%;">
|
||||
|
@ -249,7 +253,7 @@
|
|||
<a href="/views" class="btn btn-secondary">Profile views</a>
|
||||
{% endif %}
|
||||
|
||||
{% if u.song and v and (v.id == u.id or v.mute and not u.unmutable) %}
|
||||
{% if FEATURES['USERS_PROFILE_SONG'] and u.song and v and (v.id == u.id or v.mute and not u.unmutable) %}
|
||||
<a class="btn btn-secondary" role="button" onclick="toggle()">Toggle anthem</a>
|
||||
{% endif %}
|
||||
|
||||
|
@ -326,8 +330,11 @@
|
|||
<input type="submit" onclick="disable(this)" class="btn btn-danger" value="Remove User's Content">
|
||||
</form>
|
||||
<pre></pre>
|
||||
{% if FEATURES['COUNTRY_CLUB'] -%}
|
||||
<button id="grant2" class="{% if u.paid_dues %}d-none{% endif %} btn btn-success" onclick="post_toast(this,'/@{{u.username}}/club_allow','grant2','bar2','d-none')">Grant club access</button>
|
||||
<button id="bar2" class="{% if u.club_allowed == False %}d-none{% endif %} btn btn-danger" onclick="post_toast(this,'/@{{u.username}}/club_ban','grant2','bar2','d-none')">Bar from club</button>
|
||||
{%- endif %}
|
||||
|
||||
{% endif %}
|
||||
<pre></pre>
|
||||
<div id="profile--info">
|
||||
|
@ -444,9 +451,11 @@
|
|||
<img alt="marseybux" class="ml-1 mb-1" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Marseybux" height="15" width="35" src="/i/marseybux.webp?v=2000">
|
||||
{% endif %}
|
||||
|
||||
<a href="/@{{u.username}}/followers" class="font-weight-bold" id="profile-mobile--followers">{{u.stored_subscriber_count}} follower{{'s' if u.stored_subscriber_count != 1 else ''}}</a>
|
||||
{% if PERMS['USER_FOLLOWS_VISIBLE'] == 0 or (v and v.admin_level >= PERMS['USER_FOLLOWS_VISIBLE']) -%}
|
||||
<a href="/@{{u.username}}/followers" class="font-weight-bold" id="profile-mobile--followers">{{u.stored_subscriber_count}} follower{{'s' if u.stored_subscriber_count != 1 else ''}}</a>
|
||||
|
||||
<a href="/@{{u.username}}/following" class="font-weight-bold" id="profile-mobile--following" style="display:block">follows {{u.follow_count}} user{{'s' if u.follow_count != 1 else ''}}</a>
|
||||
<a href="/@{{u.username}}/following" class="font-weight-bold" id="profile-mobile--following" style="display:block">follows {{u.follow_count}} user{{'s' if u.follow_count != 1 else ''}}</a>
|
||||
{%- endif %}
|
||||
|
||||
{% if u.basedcount %}
|
||||
<br><span id="profile-mobile--based">Based count: {{u.basedcount}}</span>
|
||||
|
@ -458,19 +467,22 @@
|
|||
<br><span id="profile-mobile--lastactive">last active <span id="profile-mobile--lastactive--time" data-bs-toggle="tooltip" data-bs-placement="bottom" onmouseover="timestamp('profile-mobile--lastactive--time','{{u.last_active}}')" class="font-weight-bold">{{u.last_active_date}}</span></span>
|
||||
{%- endif %}
|
||||
</div>
|
||||
{% if u.bio_html %}
|
||||
<div class="text-muted text-break" id="profile-mobile--bio">{{u.bio_html | safe}}</div>
|
||||
{% endif %}
|
||||
|
||||
{% if u.friends_html %}
|
||||
<p class="text-muted font-weight-bold mt-3">Friends:</p>
|
||||
<div id="profile-mobile--friends">{{u.friends_html | safe}}</div>
|
||||
{% endif %}
|
||||
{% if FEATURES['USERS_PROFILE_BODYTEXT'] -%}
|
||||
{% if u.bio_html %}
|
||||
<div class="text-muted text-break" id="profile-mobile--bio">{{u.bio_html | safe}}</div>
|
||||
{% endif %}
|
||||
|
||||
{% if u.enemies_html %}
|
||||
<p class="text-muted font-weight-bold mt-3">Enemies:</p>
|
||||
<div id="profile-mobile--enemies">{{u.enemies_html | safe}}</div>
|
||||
{% endif %}
|
||||
{% if u.friends_html %}
|
||||
<p class="text-muted font-weight-bold mt-3">Friends:</p>
|
||||
<div id="profile-mobile--friends">{{u.friends_html | safe}}</div>
|
||||
{% endif %}
|
||||
|
||||
{% if u.enemies_html %}
|
||||
<p class="text-muted font-weight-bold mt-3">Enemies:</p>
|
||||
<div id="profile-mobile--enemies">{{u.enemies_html | safe}}</div>
|
||||
{% endif %}
|
||||
{%- endif %}
|
||||
|
||||
{% if u.received_awards and FEATURES['AWARDS'] %}
|
||||
<div class="text-white rounded p-2 my-3 text-center" id="profile-mobile--awards" style="background-color: rgba(50, 50, 50, 0.6);">
|
||||
|
@ -509,7 +521,7 @@
|
|||
<a href="/views" class="btn btn-secondary">Profile views</a>
|
||||
{% endif %}
|
||||
|
||||
{% if u.song and v and (v.id == u.id or v.mute and not u.unmutable) %}
|
||||
{% if FEATURES['USERS_PROFILE_SONG'] and u.song and v and (v.id == u.id or v.mute and not u.unmutable) %}
|
||||
<a class="btn btn-secondary" role="button" onclick="toggle()">Toggle anthem</a>
|
||||
{% endif %}
|
||||
|
||||
|
@ -574,8 +586,10 @@
|
|||
|
||||
{% if v.admin_level > 1 %}
|
||||
|
||||
{% if FEATURES['COUNTRY_CLUB'] -%}
|
||||
<button id="grant" class="{% if u.paid_dues %}d-none{% endif %} btn btn-success" onclick="post_toast(this,'/@{{u.username}}/club_allow','grant','bar','d-none')">Grant club access</button>
|
||||
<button id="bar" class="{% if u.club_allowed == False %}d-none{% endif %} btn btn-danger" onclick="post_toast(this,'/@{{u.username}}/club_ban','grant','bar','d-none')">Bar from club</button>
|
||||
{%- endif %}
|
||||
|
||||
<br><br>
|
||||
<div class="body d-lg-flex border-bottom">
|
||||
|
@ -770,7 +784,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
{% if u.song %}
|
||||
{% if FEATURES['USERS_PROFILE_SONG'] and u.song %}
|
||||
{% if v and v.id == u.id %}
|
||||
<div id="v_username" class="d-none">{{v.username}}</div>
|
||||
{% else %}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{%-
|
||||
set CACHE_VER = {
|
||||
'css/main.css': 426,
|
||||
'css/main.css': 427,
|
||||
'css/catalog.css': 2,
|
||||
|
||||
'css/4chan.css': 61,
|
||||
|
@ -18,7 +18,7 @@ set CACHE_VER = {
|
|||
|
||||
'js/award_modal.js': 253,
|
||||
'js/bootstrap.js': 275,
|
||||
'js/comments+submission_listing.js': 264,
|
||||
'js/comments+submission_listing.js': 265,
|
||||
'js/submission_listing.js': 261,
|
||||
'js/emoji_modal.js': 312,
|
||||
'js/formatting.js': 240,
|
||||
|
|
Loading…
Reference in New Issue