forked from MarseyWorld/MarseyWorld
101 lines
3.1 KiB
Python
101 lines
3.1 KiB
Python
from flask import g
|
|
import time
|
|
from files.helpers.alerts import send_repeatable_notification
|
|
from files.helpers.const import *
|
|
from files.classes.badges import Badge
|
|
from files.classes.user import User
|
|
|
|
def award_timers(v, bot=False):
|
|
now = time.time()
|
|
|
|
def notify_if_not_bot(msg):
|
|
if not bot:
|
|
send_repeatable_notification(v.id, msg)
|
|
|
|
if v.patron_utc and v.patron_utc < now:
|
|
v.patron = 0
|
|
v.patron_utc = 0
|
|
notify_if_not_bot(f"Your {patron} status has expired!")
|
|
if v.unban_utc and v.unban_utc < now:
|
|
v.is_banned = 0
|
|
v.unban_utc = 0
|
|
v.ban_reason = None
|
|
notify_if_not_bot("You have been unbanned!")
|
|
if v.agendaposter and v.agendaposter != 1 and v.agendaposter < now:
|
|
v.agendaposter = 0
|
|
notify_if_not_bot("Your chud theme has expired!")
|
|
badge = v.has_badge(28)
|
|
if badge: g.db.delete(badge)
|
|
if v.flairchanged and v.flairchanged < now:
|
|
v.flairchanged = None
|
|
notify_if_not_bot("Your flair lock has expired. You can now change your flair!")
|
|
badge = v.has_badge(96)
|
|
if badge: g.db.delete(badge)
|
|
if v.marseyawarded and v.marseyawarded < now:
|
|
v.marseyawarded = None
|
|
notify_if_not_bot("Your marsey award has expired!")
|
|
badge = v.has_badge(98)
|
|
if badge: g.db.delete(badge)
|
|
if v.longpost and v.longpost < now:
|
|
v.longpost = None
|
|
notify_if_not_bot("Your pizzashill award has expired!")
|
|
badge = v.has_badge(97)
|
|
if badge: g.db.delete(badge)
|
|
if v.bird and v.bird < now:
|
|
v.bird = None
|
|
notify_if_not_bot("Your bird site award has expired!")
|
|
badge = v.has_badge(95)
|
|
if badge: g.db.delete(badge)
|
|
if v.progressivestack and v.progressivestack < now:
|
|
v.progressivestack = None
|
|
notify_if_not_bot("Your progressive stack has expired!")
|
|
badge = v.has_badge(94)
|
|
if badge: g.db.delete(badge)
|
|
if v.rehab and v.rehab < now:
|
|
v.rehab = None
|
|
notify_if_not_bot("Your rehab has finished!")
|
|
badge = v.has_badge(109)
|
|
if badge: g.db.delete(badge)
|
|
if v.deflector and v.deflector < now:
|
|
v.deflector = None
|
|
notify_if_not_bot("Your deflector has expired!")
|
|
if v.owoify and v.owoify < now:
|
|
v.owoify = None
|
|
notify_if_not_bot("Your OwOify status has expired!")
|
|
badge = v.has_badge(167)
|
|
if v.bite and v.bite < now:
|
|
v.bite = None
|
|
notify_if_not_bot("Your vampire status has ended!")
|
|
v.house = v.old_house
|
|
v.old_house = ''
|
|
badge = v.has_badge(168)
|
|
if badge: g.db.delete(badge)
|
|
if v.earlylife and v.earlylife < now:
|
|
v.earlylife = None
|
|
notify_if_not_bot("Your earlylife status has expired!")
|
|
badge = v.has_badge(169)
|
|
if badge: g.db.delete(badge)
|
|
if v.marsify and v.marsify < now and v.marsify != 1:
|
|
v.marsify = 0
|
|
if SITE_NAME != 'rDrama': notify_if_not_bot("Your marsify status has expired!")
|
|
badge = v.has_badge(170)
|
|
if badge: g.db.delete(badge)
|
|
if v.rainbow and v.rainbow < now:
|
|
v.rainbow = None
|
|
notify_if_not_bot("Your rainbow has expired!")
|
|
badge = v.has_badge(171)
|
|
if badge: g.db.delete(badge)
|
|
if v.spider and v.spider != 1 and v.spider < now:
|
|
v.spider = 0
|
|
notify_if_not_bot("Your spider friend has left you!")
|
|
badge = v.has_badge(179)
|
|
if badge: g.db.delete(badge)
|
|
|
|
g.db.add(v)
|
|
|
|
|
|
def award_timers_bots_task():
|
|
accs = g.db.query(User).filter(User.id.in_(bots))
|
|
for u in accs:
|
|
award_timers(u, bot=True)
|