Don't show lotteries on the sister sites

remotes/1693045480750635534/spooky-22
Outrun Colors, LLC 2022-05-29 20:43:16 -05:00
parent a0cc7e1cf6
commit b9dc28e6d1
9 changed files with 51 additions and 29 deletions

View File

@ -1016,18 +1016,19 @@ linefeeds_regex = re.compile("([^\n])\n([^\n])", flags=re.A)
def make_name(*args, **kwargs): return request.base_url
# Lottery
LOTTERY_TICKET_COST = 12
# The amount of dramacoins permanently removed from the economy to reduce expected value
LOTTERY_SINK_RATE = 3
# The amount of dramacoins the lottery founders receive
LOTTERY_ROYALTY_RATE = 1
# The account in which royalties are to be deposited
LOTTERY_ROYALTY_ACCOUNT_ID = 9
# LOTTERY_ROYALTY_ACCOUNT_ID = 8239 # (McCoxmaul)
# The account in which the prize is held to be accessed by anyone
LOTTERY_MANAGER_ACCOUNT_ID = 3
# LOTTERY_MANAGER_ACCOUNT_ID = 11651 (Lottershe)
if SITE_NAME == 'rDrama':
LOTTERY_ENABLED = True
LOTTERY_TICKET_COST = 12
LOTTERY_SINK_RATE = 3
LOTTERY_ROYALTY_RATE = 1
LOTTERY_ROYALTY_ACCOUNT_ID = 9
# LOTTERY_ROYALTY_ACCOUNT_ID = 8239 # (McCoxmaul)
LOTTERY_MANAGER_ACCOUNT_ID = 3
# LOTTERY_MANAGER_ACCOUNT_ID = 11651 (Lottershe)
else:
LOTTERY_ENABLED = False
LOTTERY_TICKET_COST = 0
LOTTERY_SINK_RATE = 0
LOTTERY_ROYALTY_RATE = 0
LOTTERY_ROYALTY_ACCOUNT_ID = 0
LOTTERY_MANAGER_ACCOUNT_ID = 0

View File

@ -50,4 +50,9 @@ def timestamp(timestamp):
@app.context_processor
def inject_constants():
return {"environ":environ, "SITE":SITE, "SITE_NAME":SITE_NAME, "SITE_FULL":SITE_FULL, "AUTOJANNY_ID":AUTOJANNY_ID, "NOTIFICATIONS_ID":NOTIFICATIONS_ID, "PUSHER_ID":PUSHER_ID, "CC":CC, "CC_TITLE":CC_TITLE, "listdir":listdir, "MOOSE_ID":MOOSE_ID, "AEVANN_ID":AEVANN_ID, "PIZZASHILL_ID":PIZZASHILL_ID, "config":app.config.get, "DEFAULT_COLOR":DEFAULT_COLOR, "COLORS":COLORS, "ADMIGGERS":ADMIGGERS, "datetime":datetime, "time":time}
return {"environ":environ, "SITE":SITE, "SITE_NAME":SITE_NAME, "SITE_FULL":SITE_FULL,
"AUTOJANNY_ID":AUTOJANNY_ID, "NOTIFICATIONS_ID":NOTIFICATIONS_ID, "PUSHER_ID":PUSHER_ID,
"CC":CC, "CC_TITLE":CC_TITLE, "listdir":listdir, "MOOSE_ID":MOOSE_ID, "AEVANN_ID":AEVANN_ID,
"PIZZASHILL_ID":PIZZASHILL_ID, "config":app.config.get, "DEFAULT_COLOR":DEFAULT_COLOR,
"COLORS":COLORS, "ADMIGGERS":ADMIGGERS, "datetime":datetime, "time":time,
"LOTTERY_ENABLED": LOTTERY_ENABLED}

View File

@ -64,7 +64,6 @@ def start_new_lottery_session():
one_week_from_now = epoch_time + 60 * 60 * 24 * 7
lottery.ends_at = one_week_from_now
lottery.is_active = True
lottery.winner_id = 1
g.db.add(lottery)
g.db.commit()
@ -82,8 +81,7 @@ def purchase_lottery_ticket(v):
v.currently_held_lottery_tickets += 1
v.total_held_lottery_tickets += 1
net_ticket_value = LOTTERY_TICKET_COST - \
LOTTERY_SINK_RATE - LOTTERY_ROYALTY_RATE
net_ticket_value = LOTTERY_TICKET_COST - LOTTERY_SINK_RATE - LOTTERY_ROYALTY_RATE
most_recent_lottery.prize += net_ticket_value
most_recent_lottery.tickets_sold += 1

View File

@ -137,4 +137,15 @@ def admin_level_required(x):
wrapper.__name__ = f.__name__
return wrapper
return wrapper_maker
return wrapper_maker
def lottery_required(f):
def wrapper(*args, **kwargs):
v = get_logged_in_user()
if not LOTTERY_ENABLED: abort(404)
return make_response(f(v=v))
wrapper.__name__ = f.__name__
return wrapper

View File

@ -669,7 +669,6 @@ def api_comment(v):
parent_post.comment_count += 1
g.db.add(parent_post)
v.coins += 20000
g.db.commit()
if request.headers.get("Authorization"): return c.json

View File

@ -3,11 +3,13 @@ from files.helpers.wrappers import *
from files.helpers.alerts import *
from files.helpers.get import *
from files.helpers.const import *
from files.helpers.wrappers import *
from files.helpers.lottery import *
@app.post("/lottery/end")
@auth_required
@admin_level_required(3)
@lottery_required
def lottery_end(v):
if v.admin_level > 2:
success, message = end_lottery_session()
@ -17,7 +19,8 @@ def lottery_end(v):
@app.post("/lottery/start")
@auth_required
@admin_level_required(3)
@lottery_required
def lottery_start(v):
if v.admin_level > 2:
start_new_lottery_session()
@ -29,6 +32,7 @@ def lottery_start(v):
@app.post("/lottery/buy")
@limiter.limit("1/second;30/minute;200/hour;1000/day")
@auth_required
@lottery_required
def lottery_buy(v):
success, message = purchase_lottery_ticket(v)
lottery, participants = get_active_lottery_stats()
@ -42,6 +46,7 @@ def lottery_buy(v):
@app.get("/lottery/active")
@limiter.limit("1/second;30/minute;200/hour;1000/day")
@auth_required
@lottery_required
def lottery_active(v):
lottery, participants = get_active_lottery_stats()

View File

@ -75,7 +75,7 @@
{% if not err %}
<a class="mobile-nav-icon d-md-none" href="/random_user"><i class="fas fa-music align-middle text-gray-500 black"></i></a>
<a class="mobile-nav-icon d-md-none" href="/random_post"><i class="fas fa-random align-middle text-gray-500 black"></i></a>
{% if v %}
{% if v and LOTTERY_ENABLED %}
<a
href="#"
class="mobile-nav-icon d-md-none"
@ -112,7 +112,7 @@
<a class="nav-link" href="/random_post/" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Random post"><i class="fas fa-random"></i></a>
</li>
{% if v %}
{% if v and LOTTERY_ENABLED %}
<li class="nav-item d-flex align-items-center justify-content-center text-center mx-1">
<a
href="#"

View File

@ -1,3 +1,4 @@
{% if LOTTERY_ENABLED %}
<div
class="modal fade"
id="lotteryModal"
@ -80,8 +81,9 @@
title=""
aria-label="coins"
data-bs-original-title="coins"
style="display: none; position: relative; top: -2px;"
/> <span id="prize">-</span>
style="display: none; position: relative; top: -2px"
/>
<span id="prize">-</span>
</div>
<div id="timeLeft">-</div>
<div id="ticketsSoldThisSession">-</div>
@ -181,3 +183,4 @@
</div>
<script src="/assets/js/lottery_modal.js?v=249" data-cfasync="false"></script>
{% endif %}

View File

@ -1857,13 +1857,13 @@ CREATE TABLE public.lotteries (
ends_at integer DEFAULT 0 NOT NULL,
prize integer DEFAULT 0 NOT NULL,
tickets_sold integer DEFAULT 0 NOT NULL,
winner_id integer DEFAULT 0 NOT NULL
winner_id integer DEFAULT null NULL
);
ALTER TABLE ONLY public.lotteries
ADD CONSTRAINT fk_winner FOREIGN KEY (winner_id) REFERENCES public.users(id);
ALTER TABLE public.users
ALTER TABLE ONLY public.users
ADD currently_held_lottery_tickets integer DEFAULT 0 NOT NULL,
ADD total_held_lottery_tickets integer DEFAULT 0 NOT NULL,
ADD total_lottery_winnings integer DEFAULT 0 NOT NULL;