fix bug when both queen and namelock expire at the same time

pull/168/head
Aevann 2023-07-08 19:11:29 +03:00
parent bc419a52da
commit f22a362f37
4 changed files with 8 additions and 10 deletions

View File

@ -186,7 +186,6 @@ def _process_timer(attr, badge_ids, text, extra_attrs={}):
if isinstance(val, InstrumentedAttribute):
val = str(val).split('.')[1]
val = getattr(user, val)
print(f'k: {k}, val: {val}', flush=True)
setattr(user, k, val)
#remove corresponding badges
@ -215,10 +214,7 @@ def _award_timers_task():
_process_timer(User.earlylife, [169], "The earlylife award you received has expired!")
_process_timer(User.marsify, [170], "The marsify award you received has expired!")
_process_timer(User.rainbow, [171], "The rainbow award you received has expired!")
_process_timer(User.queen, [285], "The queen award you received has expired!", {
User.username: User.prelock_username,
User.prelock_username: None,
})
_process_timer(User.queen, [285], "The queen award you received has expired!")
_process_timer(User.spider, [179], "The spider award you received has expired!")
_process_timer(User.namechanged, [281], "The namelock award you received has expired. You're now back to your old username!", {
User.username: User.prelock_username,

View File

@ -346,6 +346,8 @@ def award_thing(v, thing_type, id):
if author.queen and time.time() < author.queen: author.queen += 86400
else: author.queen = int(time.time()) + 86400
author.namechanged = author.queen
badge_grant(user=author, badge_id=285)
elif kind == "chud":

View File

@ -737,7 +737,7 @@ def settings_advanced_get(v:User):
@limiter.limit(DEFAULT_RATELIMIT, key_func=get_ID)
@is_not_permabanned
def settings_name_change(v):
if v.namechanged or v.queen: abort(403)
if v.namechanged: abort(403)
if v.shadowbanned: abort(500)

View File

@ -163,10 +163,10 @@
<p>Your original username will always stay reserved for you: <code>{{v.original_username}}</code></p>
<form action="/settings/name_change" method="post">
<input hidden name="formkey" value="{{v|formkey}}">
<input id="name-body" autocomplete="off" type="text" name="name" class="form-control" value="{{v.username}}" {% if v.namechanged or v.queen %}disabled{% endif %}>
<input id="name-body" autocomplete="off" type="text" name="name" class="form-control" value="{{v.username}}" {% if v.namechanged %}disabled{% endif %}>
<small>3-25 characters, including letters, numbers, _ , and -</small>
<div class="d-flex mt-2">
<input autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Change Display Name" {% if v.namechanged or v.queen%}disabled{% endif %}>
<input autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Change Display Name" {% if v.namechanged %}disabled{% endif %}>
</div>
</form>
</div>
@ -272,8 +272,8 @@
<script defer src="{{'js/flairchanged.js' | asset}}"></script>
{% endif %}
{% if v.namechanged or v.queen%}
<input hidden id="namechanged" value="{{v.namechanged if v.namechanged else v.queen}}">
{% if v.namechanged %}
<input hidden id="namechanged" value="{{v.namechanged}}">
<script defer src="{{'js/namechanged.js' | asset}}"></script>
{% endif %}