Compare commits
2 Commits
5e7810eb9f
...
f1a57c16e4
Author | SHA1 | Date |
---|---|---|
Lili (Tlapka) | f1a57c16e4 | |
Lili (Tlapka) | 7da002eb00 |
|
@ -4,11 +4,11 @@ from flask import Flask
|
|||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from tlapbot.db import get_db
|
||||
from tlapbot.owncast_requests import is_stream_live, give_points_to_chat
|
||||
from tlapbot.redeems import remove_inactive_redeems
|
||||
|
||||
|
||||
def create_app(test_config=None):
|
||||
app = Flask(__name__, instance_relative_config=True)
|
||||
|
||||
|
||||
# ensure the instance folder exists
|
||||
try:
|
||||
os.makedirs(app.instance_path)
|
||||
|
@ -30,19 +30,18 @@ def create_app(test_config=None):
|
|||
gunicorn_logger = logging.getLogger('gunicorn.error')
|
||||
app.logger.handlers = gunicorn_logger.handlers
|
||||
app.logger.setLevel(gunicorn_logger.level)
|
||||
|
||||
|
||||
# Check for wrong config that would break Tlapbot
|
||||
if len(app.config['PREFIX']) != 1:
|
||||
raise RuntimeError("Prefix is >1 character. "
|
||||
"Change your config to set 1-character prefix.")
|
||||
|
||||
|
||||
# Check for spaces in redeems (they won't work)
|
||||
for redeem in app.config['REDEEMS']:
|
||||
if ' ' in redeem:
|
||||
app.logger.warning(f"Redeem '{redeem}' has spaces in its name.")
|
||||
app.logger.warning("Redeems with spaces are impossible to redeem.")
|
||||
|
||||
|
||||
# prepare webhooks and redeem dashboard blueprints
|
||||
from . import owncast_webhooks
|
||||
from . import tlapbot_dashboard
|
||||
|
@ -58,7 +57,7 @@ def create_app(test_config=None):
|
|||
app.cli.add_command(db.refresh_milestones_command)
|
||||
app.cli.add_command(db.reset_milestone_command)
|
||||
app.cli.add_command(db.hard_reset_milestone_command)
|
||||
|
||||
|
||||
# scheduler job for giving points to users
|
||||
def proxy_job():
|
||||
with app.app_context():
|
||||
|
|
|
@ -6,6 +6,7 @@ from flask.cli import with_appcontext
|
|||
|
||||
from tlapbot.redeems import milestone_complete
|
||||
|
||||
|
||||
def get_db():
|
||||
if 'db' not in g:
|
||||
g.db = sqlite3.connect(
|
||||
|
@ -127,7 +128,7 @@ def refresh_milestones():
|
|||
|
||||
|
||||
def reset_milestone(milestone):
|
||||
if not milestone in current_app.config['REDEEMS']:
|
||||
if milestone not in current_app.config['REDEEMS']:
|
||||
print(f"Failed resetting milestone, {milestone} not in redeems file.")
|
||||
return False
|
||||
try:
|
||||
|
@ -147,7 +148,6 @@ def reset_milestone(milestone):
|
|||
return False
|
||||
|
||||
|
||||
|
||||
@click.command('init-db')
|
||||
@with_appcontext
|
||||
def init_db_command():
|
||||
|
@ -184,7 +184,7 @@ def refresh_and_clear_command():
|
|||
@click.command('refresh-milestones')
|
||||
@with_appcontext
|
||||
def refresh_milestones_command():
|
||||
"""Initialize all milestones from the redeems file,
|
||||
"""Initialize all milestones from the redeems file,
|
||||
delete milestones not in redeem file."""
|
||||
if refresh_milestones():
|
||||
click.echo('Refreshed milestones.')
|
||||
|
|
|
@ -2,6 +2,7 @@ from flask import current_app
|
|||
from sqlite3 import Error
|
||||
from re import sub
|
||||
|
||||
|
||||
# # # db stuff # # #
|
||||
def read_users_points(db, user_id):
|
||||
"""Errors out if user doesn't exist."""
|
||||
|
@ -97,7 +98,7 @@ def add_user_to_database(db, user_id, display_name):
|
|||
|
||||
def change_display_name(db, user_id, new_name):
|
||||
try:
|
||||
cursor = db.execute(
|
||||
db.execute(
|
||||
"UPDATE points SET name = ? WHERE id = ?",
|
||||
(new_name, user_id)
|
||||
)
|
||||
|
@ -109,7 +110,7 @@ def change_display_name(db, user_id, new_name):
|
|||
|
||||
def remove_duplicate_usernames(db, user_id, username):
|
||||
try:
|
||||
cursor = db.execute(
|
||||
db.execute(
|
||||
"""UPDATE points
|
||||
SET name = NULL
|
||||
WHERE name = ? AND NOT id = ?""",
|
||||
|
|
|
@ -45,4 +45,3 @@ def send_chat(message):
|
|||
current_app.logger.error(f"Check owncast instance url and access key.")
|
||||
return
|
||||
return r.json()
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ def counter_exists(db, counter_name):
|
|||
def add_to_counter(db, counter_name):
|
||||
if counter_exists(db, counter_name):
|
||||
try:
|
||||
cursor = db.execute(
|
||||
db.execute(
|
||||
"UPDATE counters SET count = count + 1 WHERE name = ?",
|
||||
(counter_name,)
|
||||
)
|
||||
|
@ -37,7 +37,7 @@ def add_to_counter(db, counter_name):
|
|||
|
||||
def add_to_redeem_queue(db, user_id, redeem_name, note=None):
|
||||
try:
|
||||
cursor = db.execute(
|
||||
db.execute(
|
||||
"INSERT INTO redeem_queue(redeem, redeemer_id, note) VALUES(?, ?, ?)",
|
||||
(redeem_name, user_id, note)
|
||||
)
|
||||
|
@ -159,7 +159,7 @@ def all_active_milestones(db):
|
|||
return all_active_milestones
|
||||
|
||||
|
||||
def all_active_redeems(db):
|
||||
def all_active_redeems():
|
||||
redeems = current_app.config['REDEEMS']
|
||||
all_active_redeems = {}
|
||||
for redeem_name, redeem_dict in redeems.items():
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from flask import current_app
|
||||
from tlapbot.db import get_db
|
||||
from tlapbot.owncast_requests import send_chat
|
||||
from tlapbot.redeems import (add_to_redeem_queue, add_to_counter, add_to_milestone,
|
||||
from tlapbot.redeems import (add_to_redeem_queue, add_to_counter, add_to_milestone,
|
||||
check_apply_milestone_completion, milestone_complete, is_redeem_active)
|
||||
from tlapbot.owncast_helpers import use_points, read_users_points
|
||||
|
||||
|
@ -44,7 +44,7 @@ def handle_redeem(message, user_id):
|
|||
else:
|
||||
send_chat(f"Redeeming milestone {redeem} failed.")
|
||||
return
|
||||
|
||||
|
||||
# handle redeems with price argument
|
||||
price = current_app.config['REDEEMS'][redeem]["price"]
|
||||
if not points or points < price:
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from flask import render_template, Blueprint, request, current_app
|
||||
from tlapbot.db import get_db
|
||||
from tlapbot.redeems import all_active_counters, all_active_milestones, all_active_redeems, pretty_redeem_queue
|
||||
from tlapbot.owncast_helpers import read_all_users_with_username
|
||||
from datetime import datetime, timezone
|
||||
from tlapbot.owncast_helpers import read_all_users_with_username
|
||||
from datetime import timezone
|
||||
|
||||
bp = Blueprint('redeem_dashboard', __name__)
|
||||
|
||||
|
@ -20,7 +20,7 @@ def dashboard():
|
|||
queue=pretty_redeem_queue(db),
|
||||
counters=all_active_counters(db),
|
||||
milestones=all_active_milestones(db),
|
||||
redeems=all_active_redeems(db),
|
||||
redeems=all_active_redeems(),
|
||||
prefix=current_app.config['PREFIX'],
|
||||
passive=current_app.config['PASSIVE'],
|
||||
username=username,
|
||||
|
|
Loading…
Reference in New Issue