first version of passive mode

seems to work fine
This commit is contained in:
Lili (Tlapka) 2023-03-13 15:22:40 +01:00
parent 189ffcc1a8
commit 82d9088c18
4 changed files with 72 additions and 60 deletions

View File

@ -3,6 +3,7 @@ OWNCAST_ACCESS_TOKEN=''
OWNCAST_INSTANCE_URL='http://localhost:8080'
POINTS_CYCLE_TIME=600
POINTS_AMOUNT_GIVEN=10
PASSIVE=False
LIST_REDEEMS=False
ACTIVE_CATEGORIES=[]
GUNICORN=False

View File

@ -21,6 +21,7 @@ def dashboard():
counters=all_counters(db),
redeems=current_app.config['REDEEMS'],
prefix=current_app.config['PREFIX'],
passive=current_app.config['PASSIVE'],
username=username,
users=users,
utc_timezone=utc_timezone)

View File

@ -30,26 +30,27 @@ def owncast_webhook():
if data["eventData"]["user"]["authenticated"]:
remove_duplicate_usernames(db, user_id, new_name)
elif data["type"] == "CHAT":
prefix = current_app.config['PREFIX']
user_id = data["eventData"]["user"]["id"]
display_name = data["eventData"]["user"]["displayName"]
current_app.logger.debug(f'New chat message from {display_name}:')
current_app.logger.debug(f'{data["eventData"]["body"]}')
if data["eventData"]["body"].startswith(f"{prefix}help"):
send_help()
elif data["eventData"]["body"].startswith(f"{prefix}points"):
points = read_users_points(db, user_id)
if points is None:
send_chat("Error reading points.")
else:
send_chat(f"{display_name}'s points: {points}")
elif data["eventData"]["body"].startswith(f"{prefix}name_update"):
# Forces name update in case bot didn't catch the NAME_CHANGE
# event. Also removes saved usernames from users with same name
# if user is authenticated.
change_display_name(db, user_id, display_name)
if data["eventData"]["user"]["authenticated"]:
remove_duplicate_usernames(db, user_id, display_name)
elif data["eventData"]["body"].startswith(prefix):
handle_redeem(data["eventData"]["body"], user_id)
if not current_app.config['PASSIVE']:
prefix = current_app.config['PREFIX']
user_id = data["eventData"]["user"]["id"]
display_name = data["eventData"]["user"]["displayName"]
current_app.logger.debug(f'New chat message from {display_name}:')
current_app.logger.debug(f'{data["eventData"]["body"]}')
if data["eventData"]["body"].startswith(f"{prefix}help"):
send_help()
elif data["eventData"]["body"].startswith(f"{prefix}points"):
points = read_users_points(db, user_id)
if points is None:
send_chat("Error reading points.")
else:
send_chat(f"{display_name}'s points: {points}")
elif data["eventData"]["body"].startswith(f"{prefix}name_update"):
# Forces name update in case bot didn't catch the NAME_CHANGE
# event. Also removes saved usernames from users with same name
# if user is authenticated.
change_display_name(db, user_id, display_name)
if data["eventData"]["user"]["authenticated"]:
remove_duplicate_usernames(db, user_id, display_name)
elif data["eventData"]["body"].startswith(prefix):
handle_redeem(data["eventData"]["body"], user_id)
return data

View File

@ -10,7 +10,9 @@
<div class="tab">
<button class="tablinks" onclick="openTab(event, 'dashboard')", id="defaultOpen">Tlapbot dashboard</button>
{% if not passive %}
<button class="tablinks" onclick="openTab(event, 'redeems-list')">Redeems help</button>
{% endif %}
</div>
<div id='dashboard' class="tabcontent">
@ -32,46 +34,53 @@
</table>
{% endif %}
{% if counters %}
<table>
<thead>
<tr>
<th>Active counters</th>
</tr>
</thead>
{% for counter in counters %}
<tbody>
<td> {{ counter[0] }} </td>
<td> {{ counter[1] }} </td>
</tbody>
{% endfor %}
</table>
{% if passive %}
<h3>Tlapbot is currently in passive mode.</h3>
<p>You can't make any redeems, but you will receive points for watching.</p>
{% endif %}
{% if queue %}
<table>
<thead>
<tr>
<th>Recent redeems</th>
</tr>
<tr>
<th>Time</th>
<th>Redeem</th>
<th>Redeemer</th>
<th>Note</th>
</tr>
</thead>
{% for row in queue %}
<tbody>
<td>{{ row[0].replace(tzinfo=utc_timezone).astimezone().strftime("%H:%M") }}</td>
<td>{{ row[1] }}</td>
<td>{{ row[3] }}</td>
{% if row[2] %}
<td>{{ row[2] }}</td>
{% endif %}
</tbody>
{% endfor %}
</table>
{% if not passive %}
{% if counters %}
<table>
<thead>
<tr>
<th>Active counters</th>
</tr>
</thead>
{% for counter in counters %}
<tbody>
<td> {{ counter[0] }} </td>
<td> {{ counter[1] }} </td>
</tbody>
{% endfor %}
</table>
{% endif %}
{% if queue %}
<table>
<thead>
<tr>
<th>Recent redeems</th>
</tr>
<tr>
<th>Time</th>
<th>Redeem</th>
<th>Redeemer</th>
<th>Note</th>
</tr>
</thead>
{% for row in queue %}
<tbody>
<td>{{ row[0].replace(tzinfo=utc_timezone).astimezone().strftime("%H:%M") }}</td>
<td>{{ row[1] }}</td>
<td>{{ row[3] }}</td>
{% if row[2] %}
<td>{{ row[2] }}</td>
{% endif %}
</tbody>
{% endfor %}
</table>
{% endif %}
{% endif %}
</body>
</div>