|
@@ -9,19 +9,17 @@
|
|
|
|
|
|
|
|
<div class="navbar">
|
|
<div class="navbar">
|
|
|
<div class="tab">
|
|
<div class="tab">
|
|
|
- <button class="tablinks" onclick="window.open('{{ url_for('web_panels.mgmtqueue') }}', '_blank')">Rewards Queue Management</button>
|
|
|
|
|
- <button class="tablinks" data-tab="managerewards" onclick="openTab(event, 'managerewards')">Rewards</button>
|
|
|
|
|
- <button class="tablinks" data-tab="categories" onclick="openTab(event, 'categories')">Categories</button>
|
|
|
|
|
- <button class="tablinks" data-tab="accounts" onclick="openTab(event, 'accounts')">Manage Accounts</button>
|
|
|
|
|
- <button class="tablinks" data-tab="announcements" onclick="openTab(event, 'announcements')">Announcements</button>
|
|
|
|
|
- <button class="tablinks" data-tab="todolist" onclick="openTab(event, 'todolist')">To-Do List</button>
|
|
|
|
|
- <button class="tablinks" data-tab="alerts" onclick="openTab(event, 'alerts')">Alerts</button>
|
|
|
|
|
- <button class="tablinks" data-tab="settings" onclick="openTab(event, 'settings')">Settings</button>
|
|
|
|
|
- {% if kofi_integration %}
|
|
|
|
|
- <button class="tablinks" data-tab="kofi-settings" onclick="openTab(event, 'kofi-settings')">Kofi Settings</button>
|
|
|
|
|
- {% endif %}
|
|
|
|
|
|
|
+ <button tabindex="0" class="tablinks" onclick="window.open('{{ url_for('web_panels.mgmtqueue') }}', '_blank')">Rewards Queue Management</button>
|
|
|
|
|
+ <button tabindex="1" class="tablinks" data-tab="managerewards" onclick="openTab(event, 'managerewards')">Rewards</button>
|
|
|
|
|
+ <button tabindex="2" class="tablinks" data-tab="categories" onclick="openTab(event, 'categories')">Categories</button>
|
|
|
|
|
+ <button tabindex="3" class="tablinks" data-tab="accounts" onclick="openTab(event, 'accounts')">Manage Accounts</button>
|
|
|
|
|
+ <button tabindex="4" class="tablinks" data-tab="announcements" onclick="openTab(event, 'announcements')">Announcements</button>
|
|
|
|
|
+ <button tabindex="5" class="tablinks" data-tab="todolist" onclick="openTab(event, 'todolist')">To-Do List</button>
|
|
|
|
|
+ <button tabindex="6" class="tablinks" data-tab="alerts" onclick="openTab(event, 'alerts')">Alerts</button>
|
|
|
|
|
+ <button tabindex="7" class="tablinks" data-tab="donations" onclick="openTab(event, 'donations')">Donations</button>
|
|
|
|
|
+ <button tabindex="8" class="tablinks" data-tab="settings" onclick="openTab(event, 'settings')">Settings</button>
|
|
|
</div>
|
|
</div>
|
|
|
- <img src="/static/img/ownchatbotwide.png">
|
|
|
|
|
|
|
+ <img alt="Ownchat Bot logo, whimsical robot" src="/static/img/ownchatbotwide.png">
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div id='managerewards' class="tabcontent">
|
|
<div id='managerewards' class="tabcontent">
|
|
@@ -62,22 +60,22 @@
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td>
|
|
<td>
|
|
|
- <a href="{{ url_for('web_panels.add', reward_type='redeem') }}"><button class="button button2" onclick="openTab(event, 'managerewards')">Create a Redeem</button></a><br>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.add', reward_type='redeem') }}"><button tabindex="8" class="button button2" onclick="openTab(event, 'managerewards')">Create a Redeem</button></a><br>
|
|
|
</td>
|
|
</td>
|
|
|
<td>
|
|
<td>
|
|
|
- <a href="{{ url_for('web_panels.add', reward_type='special') }}"><button class="button button2" onclick="openTab(event, 'managerewards')">Create a Special</button></a><br>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.add', reward_type='special') }}"><button tabindex="9" class="button button2" onclick="openTab(event, 'managerewards')">Create a Special</button></a><br>
|
|
|
</td>
|
|
</td>
|
|
|
<td>
|
|
<td>
|
|
|
- <a href="{{ url_for('web_panels.add', reward_type='vote') }}"><button class="button button2" onclick="openTab(event, 'managerewards')">Create a Vote</button></a><br>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.add', reward_type='vote') }}"><button tabindex="10" class="button button2" onclick="openTab(event, 'managerewards')">Create a Vote</button></a><br>
|
|
|
</td>
|
|
</td>
|
|
|
<td>
|
|
<td>
|
|
|
- <a href="{{ url_for('web_panels.add', reward_type='goal') }}"><button class="button button2" onclick="openTab(event, 'managerewards')">Create a Goal</button></a><br>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.add', reward_type='goal') }}"><button tabindex="11" class="button button2" onclick="openTab(event, 'managerewards')">Create a Goal</button></a><br>
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</table>
|
|
</table>
|
|
|
<br>
|
|
<br>
|
|
|
{% if rewards %}
|
|
{% if rewards %}
|
|
|
- Rewards in <span style="color: red !important;">red</span> are inactive. To activate a reward, add it to an active category.
|
|
|
|
|
|
|
+ Rewards in <span style="color: orange !important;">orange</span> are inactive. To activate a reward, add it to an active category.
|
|
|
<table>
|
|
<table>
|
|
|
<thead>
|
|
<thead>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -95,7 +93,7 @@
|
|
|
{% if reward in active_rewards %}
|
|
{% if reward in active_rewards %}
|
|
|
<tr>
|
|
<tr>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <tr style="color: red;">
|
|
|
|
|
|
|
+ <tr style="color: orange;">
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td>{{ prefix }}{{ reward }}</td>
|
|
<td>{{ prefix }}{{ reward }}</td>
|
|
|
<td>{{ reward_info["price"] }}</td>
|
|
<td>{{ reward_info["price"] }}</td>
|
|
@@ -108,8 +106,8 @@
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td>{{ reward_info["categories"] | join(', ') }}</td>
|
|
<td>{{ reward_info["categories"] | join(', ') }}</td>
|
|
|
<td>
|
|
<td>
|
|
|
- <a href="{{ url_for('web_panels.edit', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: green;">Edit</span></button></a> 
|
|
|
|
|
- <a href="{{ url_for('web_panels.delete', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: red;">Delete</span></button></a>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.edit', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: yellow;">Edit</span></button></a> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.delete', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: orange;">Delete</span></button></a></td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
</tr>
|
|
</tr>
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
@@ -133,16 +131,16 @@
|
|
|
{% if reward in active_rewards %}
|
|
{% if reward in active_rewards %}
|
|
|
<tr>
|
|
<tr>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <tr style="color: red;">
|
|
|
|
|
|
|
+ <tr style="color: orange;">
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td>{{ prefix }}{{ reward }}</td>
|
|
<td>{{ prefix }}{{ reward }}</td>
|
|
|
<td>{{ reward_info["target"] }}</td>
|
|
<td>{{ reward_info["target"] }}</td>
|
|
|
<td>{{ reward_info["info"] }}</td>
|
|
<td>{{ reward_info["info"] }}</td>
|
|
|
<td>{{ reward_info["categories"] | join(', ') }}</td>
|
|
<td>{{ reward_info["categories"] | join(', ') }}</td>
|
|
|
<td>
|
|
<td>
|
|
|
- <a href="{{ url_for('web_panels.edit', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: green;">Edit</span></button></a> 
|
|
|
|
|
- <a href="{{ url_for('web_panels.delete', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: red;">Delete</span></button></a> 
|
|
|
|
|
- <a href="{{ url_for('web_panels.reset', reward_name=reward, reward_type=reward_info["type"]) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: orange;">Reset</span></button></a>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.edit', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: orange;">Edit</span></button></a> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.delete', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: yellow;">Delete</span></button></a> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.reset', reward_name=reward, reward_type=reward_info["type"]) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: #295e11;">Reset</span></button></a>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
</tr>
|
|
</tr>
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
@@ -166,16 +164,16 @@
|
|
|
{% if reward in active_rewards %}
|
|
{% if reward in active_rewards %}
|
|
|
<tr>
|
|
<tr>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <tr style="color: red;">
|
|
|
|
|
|
|
+ <tr style="color: orange;">
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td>{{ prefix }}{{ reward }}</td>
|
|
<td>{{ prefix }}{{ reward }}</td>
|
|
|
<td>{{ reward_info["price"] }}</td>
|
|
<td>{{ reward_info["price"] }}</td>
|
|
|
<td>{{ reward_info["info"] }}</td>
|
|
<td>{{ reward_info["info"] }}</td>
|
|
|
<td>{{ reward_info["categories"] | join(', ') }}</td>
|
|
<td>{{ reward_info["categories"] | join(', ') }}</td>
|
|
|
<td>
|
|
<td>
|
|
|
- <a href="{{ url_for('web_panels.edit', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: green;">Edit</span></button></a> 
|
|
|
|
|
- <a href="{{ url_for('web_panels.delete', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: red;">Delete</span></button></a> 
|
|
|
|
|
- <a href="{{ url_for('web_panels.reset', reward_name=reward, reward_type=reward_info["type"]) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: orange;">Reset</span></button></a>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.edit', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: orange;">Edit</span></button></a> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.delete', reward_name=reward) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: orange;">Delete</span></button></a> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.reset', reward_name=reward, reward_type=reward_info["type"]) }}"><button class="button button2" onclick="openTab(event, 'managerewards')"><span style="color: #295e11;">Reset</span></button></a>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
</tr>
|
|
</tr>
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
@@ -189,7 +187,17 @@
|
|
|
<body>
|
|
<body>
|
|
|
<h3>Manage Viewer Accounts</h3>
|
|
<h3>Manage Viewer Accounts</h3>
|
|
|
{% if users %}
|
|
{% if users %}
|
|
|
- To merge an account with a temporary account: Copy the email address from the temporary account, click "edit" next to the account you want to merge, paste the email address into that account, click "save".<br><br>
|
|
|
|
|
|
|
+ <i>You may need to refresh this page to get updated account information.</i>
|
|
|
|
|
+ <br><br>
|
|
|
|
|
+ If a viewer makes a donation before registering their email address with OwnchatBot,<br>
|
|
|
|
|
+ a temporary account is created. Temporary accounts are in <span style="color: orange;">orange</span>.<br>
|
|
|
|
|
+ To merge a viewer account with a temporary account:
|
|
|
|
|
+ <ol>
|
|
|
|
|
+ <li>Copy the email address from the temporary account.</li>
|
|
|
|
|
+ <li>Click "edit" next to the viewer account you want to merge.</li>
|
|
|
|
|
+ <li>Paste the email address into that account.</li>
|
|
|
|
|
+ <li>Click "save".</li><br>
|
|
|
|
|
+ </ol>
|
|
|
<table>
|
|
<table>
|
|
|
<thead>
|
|
<thead>
|
|
|
<tr>
|
|
<tr>
|
|
@@ -204,7 +212,7 @@
|
|
|
{% for user in users %}
|
|
{% for user in users %}
|
|
|
<tr>
|
|
<tr>
|
|
|
{% if not user[1] %}
|
|
{% if not user[1] %}
|
|
|
- <td style="color: green;"> Temporary Account </td>
|
|
|
|
|
|
|
+ <td style="color: orange;"> Temporary Account </td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
<td> {{ user[1] }} </td>
|
|
<td> {{ user[1] }} </td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
@@ -213,7 +221,7 @@
|
|
|
<td>{{ user[2] }} {{ points_label }}</td>
|
|
<td>{{ user[2] }} {{ points_label }}</td>
|
|
|
{% if user[4] %}
|
|
{% if user[4] %}
|
|
|
{% if not user[1] %}
|
|
{% if not user[1] %}
|
|
|
- <td style="color: green;">{{ user[4] }}</td>
|
|
|
|
|
|
|
+ <td style="color: orange;">{{ user[4] }}</td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
<td>{{ user[4] }}</td>
|
|
<td>{{ user[4] }}</td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
@@ -225,7 +233,10 @@
|
|
|
{% else %}
|
|
{% else %}
|
|
|
<td>No</td>
|
|
<td>No</td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
- <td> <a href="/mgmt/edit_account/{{ user[0] }}?name={{ user[1] }}&points={{ user[2] }}&email={{ user[4] }}"><button class="button button2" onclick="openTab(event, 'panel')">Edit</button></a> </td>
|
|
|
|
|
|
|
+ <td>
|
|
|
|
|
+ {% if user[1] %}
|
|
|
|
|
+ <a href="/mgmt/edit_account/{{ user[0] }}?name={{ user[1] }}&points={{ user[2] }}&email={{ user[4] }}"><button class="button button2" onclick="openTab(event, 'panel')">Edit</button></a> </td>
|
|
|
|
|
+ {% endif %}
|
|
|
</tr>
|
|
</tr>
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
</tbody>
|
|
</tbody>
|
|
@@ -250,12 +261,12 @@
|
|
|
<tr>
|
|
<tr>
|
|
|
<td>
|
|
<td>
|
|
|
{% for cat in active_categories %}
|
|
{% for cat in active_categories %}
|
|
|
- {{ cat }} - <a href="/mgmt/deactivate/{{ cat }}"><span style="color: green;">Deactivate</span></a> <a href="/mgmt/delcat/{{ cat }}/active"><span style="color: red;">Delete</span></a><br>
|
|
|
|
|
|
|
+ {{ cat }} - <a href="/mgmt/deactivate/{{ cat }}"><span style="color: orange;">Deactivate</span></a> <a href="/mgmt/delcat/{{ cat }}/active"><span style="color: #295e11;">Delete</span></a><br>
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
</td>
|
|
</td>
|
|
|
<td>
|
|
<td>
|
|
|
{% for cat in inactive_categories %}
|
|
{% for cat in inactive_categories %}
|
|
|
- {{ cat }} - <a href="/mgmt/activate/{{ cat }}"><span style="color: green;">Activate</span></a> <a href="/mgmt/delcat/{{ cat }}/inactive"><span style="color: red;">Delete</span></a><br>
|
|
|
|
|
|
|
+ {{ cat }} - <a href="/mgmt/activate/{{ cat }}"><span style="color: orange;">Activate</span></a> <a href="/mgmt/delcat/{{ cat }}/inactive"><span style="color: #295e11;">Delete</span></a><br>
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
</td>
|
|
</td>
|
|
|
</tr>
|
|
</tr>
|
|
@@ -267,7 +278,7 @@
|
|
|
|
|
|
|
|
<div id='announcements' class="tabcontent">
|
|
<div id='announcements' class="tabcontent">
|
|
|
<body>
|
|
<body>
|
|
|
- <form method="POST" action="/mgmt/announcements">
|
|
|
|
|
|
|
+ <form id="announcements form" method="POST" action="/mgmt/announcements">
|
|
|
<table>
|
|
<table>
|
|
|
<h3>Manage Announcements</h3>
|
|
<h3>Manage Announcements</h3>
|
|
|
<table>
|
|
<table>
|
|
@@ -280,27 +291,27 @@
|
|
|
</thead>
|
|
</thead>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="announce_enable">Enable:</label> </td>
|
|
<td> <label for="announce_enable">Enable:</label> </td>
|
|
|
- {% if settings_info[8] %}
|
|
|
|
|
- <td> <input type="checkbox" name="announce_enable" value="{{ settings_info[8] }}" checked> </td>
|
|
|
|
|
|
|
+ {% if settings_info[6] %}
|
|
|
|
|
+ <td> <input id="announce_enable" type="checkbox" name="announce_enable" value="{{ settings_info[6] }}" checked> </td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <td> <input type="checkbox" name="announce_enable" value="{{ settings_info[8] }}"> </td>
|
|
|
|
|
|
|
+ <td> <input id="announce_enable" type="checkbox" name="announce_enable" value="{{ settings_info[6] }}"> </td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td>Enable periodic announcements</td>
|
|
<td>Enable periodic announcements</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="announce_interval">Interval:</label> </td>
|
|
<td> <label for="announce_interval">Interval:</label> </td>
|
|
|
- <td> <input type="number" name="announce_interval" value="{{ settings_info[9] }}" size="2" required> minutes</td>
|
|
|
|
|
|
|
+ <td> <input id="announce_interval" type="number" name="announce_interval" value="{{ settings_info[7] }}" size="2" required> minutes</td>
|
|
|
<td>How long between each announcement?</td>
|
|
<td>How long between each announcement?</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="announcements">Announcements:</label> </td>
|
|
<td> <label for="announcements">Announcements:</label> </td>
|
|
|
<td>
|
|
<td>
|
|
|
- <textarea name="announcements" rows="5" cols="50">{{ announcements | join('\n') }}</textarea>
|
|
|
|
|
|
|
+ <textarea id="announcements" name="announcements" rows="5" cols="50">{{ announcements | join('\n') }}</textarea>
|
|
|
</td>
|
|
</td>
|
|
|
<td>Enter your announcements, one per line. May contain html <a href=https://www.w3schools.com/tags/tag_img.asp>IMG tags</a> to display images.</td>
|
|
<td>Enter your announcements, one per line. May contain html <a href=https://www.w3schools.com/tags/tag_img.asp>IMG tags</a> to display images.</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</table>
|
|
</table>
|
|
|
- <br><button class="button button2" type="submit">Save Changes</button><br>
|
|
|
|
|
|
|
+ <br><button id="announcements form" class="button button2" type="submit">Save Changes</button><br>
|
|
|
</form>
|
|
</form>
|
|
|
<br><br>
|
|
<br><br>
|
|
|
</body>
|
|
</body>
|
|
@@ -308,7 +319,7 @@
|
|
|
|
|
|
|
|
<div id='settings' class="tabcontent">
|
|
<div id='settings' class="tabcontent">
|
|
|
<body style="text-align: left;">
|
|
<body style="text-align: left;">
|
|
|
- <form method="POST" action="/mgmt/settings">
|
|
|
|
|
|
|
+ <form id="settings form" method="POST" action="/mgmt/settings">
|
|
|
<table>
|
|
<table>
|
|
|
<h3>OwnchatBot Settings</h3>
|
|
<h3>OwnchatBot Settings</h3>
|
|
|
<thead>
|
|
<thead>
|
|
@@ -320,25 +331,24 @@
|
|
|
</thead>
|
|
</thead>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="points_interval">Points Interval:</label> </td>
|
|
<td> <label for="points_interval">Points Interval:</label> </td>
|
|
|
- <td> <input type="number" name="points_interval" value="{{ settings_info[1] }}" size="5" required> minutes</td>
|
|
|
|
|
|
|
+ <td> <input id="points_interval" type="number" name="points_interval" value="{{ settings_info[1] }}" size="5" required> minutes</td>
|
|
|
<td>How often do you want to award your viewers points?</td>
|
|
<td>How often do you want to award your viewers points?</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="points_award">Points Award:</label> </td>
|
|
<td> <label for="points_award">Points Award:</label> </td>
|
|
|
- <td> <input type="number" name="points_award" value="{{ settings_info[2] }}" size="5" required> points</td>
|
|
|
|
|
|
|
+ <td> <input id="points_award" type="number" name="points_award" value="{{ settings_info[2] }}" size="5" required> points</td>
|
|
|
<td>How many points do you want to award them?</td>
|
|
<td>How many points do you want to award them?</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="prefix">Chat Command Prefix:</label> </td>
|
|
<td> <label for="prefix">Chat Command Prefix:</label> </td>
|
|
|
- <td> <input type="text" name="prefix" maxlength="1" size="1" value="{{ settings_info[3] }}" required> </td>
|
|
|
|
|
|
|
+ <td> <input id="prefix" type="text" name="prefix" maxlength="1" size="1" value="{{ settings_info[3] }}" required> </td>
|
|
|
<td>Character that preceeds chat commands, so OwnchatBot knows what to look for.<br>Example: "{{ settings_info[3] }}points"</td>
|
|
<td>Character that preceeds chat commands, so OwnchatBot knows what to look for.<br>Example: "{{ settings_info[3] }}points"</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td> <label for=ocb_url>External URL:</label> </td>
|
|
|
|
|
- <td> <input type="text" name="ocb_url" size="40" value="{{ settings_info[10] }}" required> </td>
|
|
|
|
|
|
|
+ <td> <label for="ocb_url">External URL:</label> </td>
|
|
|
|
|
+ <td> <input id="ocb_url" type="text" name="ocb_url" size="40" value="{{ settings_info[8] }}" required> </td>
|
|
|
<td>What is the external URL of your OwnchatBot?</td>
|
|
<td>What is the external URL of your OwnchatBot?</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
-
|
|
|
|
|
</table>
|
|
</table>
|
|
|
|
|
|
|
|
<h3>Owncast Integration</h3>
|
|
<h3>Owncast Integration</h3>
|
|
@@ -352,58 +362,35 @@
|
|
|
</thead>
|
|
</thead>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="access_id">Access Token Name:</label> </td>
|
|
<td> <label for="access_id">Access Token Name:</label> </td>
|
|
|
- <td style="padding: 5px;"> <input type="text" name="access_id" value="{{ settings_info[0] }}" size="40"> </td>
|
|
|
|
|
|
|
+ <td style="padding: 5px;"> <input id="access_id" type="text" name="access_id" value="{{ settings_info[0] }}" size="40"> </td>
|
|
|
<td>Create in Owncast Admin panel. Integrations -> Access Tokens (check all three boxes)</td>
|
|
<td>Create in Owncast Admin panel. Integrations -> Access Tokens (check all three boxes)</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="access_token">Access Token:</label> </td>
|
|
<td> <label for="access_token">Access Token:</label> </td>
|
|
|
- <td style="padding: 5px;"> <input type="password" name="access_token" value="{{ settings_info[4] }}" size="40"> </td>
|
|
|
|
|
|
|
+ <td style="padding: 5px;"> <input id="access_tokens" type="password" name="access_token" value="{{ settings_info[4] }}" size="40"> </td>
|
|
|
<td>The token you created above.</td>
|
|
<td>The token you created above.</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<td> <label for="owncast_url">Your Owncast URL:</label> </td>
|
|
<td> <label for="owncast_url">Your Owncast URL:</label> </td>
|
|
|
- <td> <input type="text" name="owncast_url" value="{{ settings_info[5] }}" size="40"> </td>
|
|
|
|
|
|
|
+ <td> <input type="text" id="owncast_url" name="owncast_url" value="{{ settings_info[5] }}" size="40"> </td>
|
|
|
<td>The external URL of your Owncast instance, with "http://" or "https://".</td>
|
|
<td>The external URL of your Owncast instance, with "http://" or "https://".</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</table>
|
|
</table>
|
|
|
|
|
|
|
|
- <h3>Kofi Integration</h3>
|
|
|
|
|
- <table>
|
|
|
|
|
- <thead>
|
|
|
|
|
- <tr style="border-bottom: none;">
|
|
|
|
|
- <th style="width: 20%;"></th>
|
|
|
|
|
- <th></th>
|
|
|
|
|
- <th style="width: 50%;"></th>
|
|
|
|
|
- </tr>
|
|
|
|
|
- </thead>
|
|
|
|
|
- <tr>
|
|
|
|
|
- <td> <label for="kofi_integration">Enable:</label> </td>
|
|
|
|
|
- {% if settings_info[7] %}
|
|
|
|
|
- <td> <input type="checkbox" name="kofi_integration" value="{{ settings_info[7] }}" checked> </td>
|
|
|
|
|
- <td>Enable Ko-fi integration.</td>
|
|
|
|
|
- {% else %}
|
|
|
|
|
- <td> <input type="checkbox" name="kofi_integration" value="{{ settings_info[7] }}"> </td>
|
|
|
|
|
- <td>Enable Ko-fi integration. ("Kofi Settings" button will appear in the navigation bar when enabled.)</td>
|
|
|
|
|
- {% endif %}
|
|
|
|
|
- </tr>
|
|
|
|
|
- <tr>
|
|
|
|
|
- <td> <label for="kofi_token">Verification Token:</label> </td>
|
|
|
|
|
- <td style="padding: 5px;"> <input type="password" name="kofi_token" value="{{ settings_info[6] }}" size="40"> </td>
|
|
|
|
|
- <td>Get from Kofi -> More -> API -> Webhooks -> Advanced -> Verification Token.</td>
|
|
|
|
|
- </tr>
|
|
|
|
|
- </table>
|
|
|
|
|
-
|
|
|
|
|
- <br><button class="button button2" type="submit">Save Changes</button><br>
|
|
|
|
|
|
|
+ <br><button id="settings form" class="button button2" type="submit">Save Changes</button><br>
|
|
|
</form>
|
|
</form>
|
|
|
<br><br>
|
|
<br><br>
|
|
|
</body>
|
|
</body>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div id='kofi-settings' class="tabcontent">
|
|
|
|
|
|
|
+ <div id="donations" class="tabcontent">
|
|
|
<body style="text-align: left;">
|
|
<body style="text-align: left;">
|
|
|
- <form method="POST" action="/mgmt/ksettings">
|
|
|
|
|
|
|
+ <h2>Donations</h2>
|
|
|
|
|
+ OwnchatBot can integrate with Ko-fi and GiveButter, awarding viewers points for donations and monthly subscriptions.<br>
|
|
|
|
|
+ For anonymous donations, no identifying information is logged or sent in chat announcements.
|
|
|
|
|
+ <form id='kofi-settings_form' method="POST" action="/mgmt/ksettings">
|
|
|
<table>
|
|
<table>
|
|
|
- <h3>Kofi Settings</h3>
|
|
|
|
|
|
|
+ <h3><img style="height: 25px; width: auto; padding-right: 8px; !important" alt="Coffee Cup Logo" src="/static/img/kofi_symbol.png"> <u>Ko-fi</u></h3>
|
|
|
|
|
|
|
|
<h4> Donations </h4>
|
|
<h4> Donations </h4>
|
|
|
<thead>
|
|
<thead>
|
|
@@ -414,47 +401,138 @@
|
|
|
</tr>
|
|
</tr>
|
|
|
</thead>
|
|
</thead>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td> <label for="enable_donations">Enable points for donations:</label> </td>
|
|
|
|
|
|
|
+ <td> <label for="k_integration">Enable:</label> </td>
|
|
|
|
|
+ {% if kofi_settings['integration'] %}
|
|
|
|
|
+ <td> <input id="k_integration" type="checkbox" name="k_integration" value="{{ kofi_settings['integration'] }}" checked> </td>
|
|
|
|
|
+ {% else %}
|
|
|
|
|
+ <td> <input id="k_integration" type="checkbox" name="k_integration" value="{{ kofi_settings['integration'] }}"> </td>
|
|
|
|
|
+ {% endif %}
|
|
|
|
|
+ <td>Enable Ko-fi integration.</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> Your Ko-fi webhook: </td>
|
|
|
|
|
+ <td>{{ settings_info[8] }}/kofiHook</td>
|
|
|
|
|
+ <td>Enter this in Ko-fi -> More -> API -> Webhooks.</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> <label for="k_token">Verification Token:</label> </td>
|
|
|
|
|
+ <td style="padding: 5px;"> <input id="k_token" type="password" name="k_token" value="{{ kofi_settings['token'] }}" size="40"> </td>
|
|
|
|
|
+ <td>Get from Ko-fi -> More -> API -> Webhooks -> Advanced -> Verification Token.</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> <label for="k_enable_donations">Enable points for donations:</label> </td>
|
|
|
{% if kofi_settings['donations'] %}
|
|
{% if kofi_settings['donations'] %}
|
|
|
- <td> <input type="checkbox" name="enable_donations" value="{{ kofi_settings['donations'] }}" checked> </td>
|
|
|
|
|
|
|
+ <td> <input id="k_enable_donations" type="checkbox" name="k_enable_donations" value="{{ kofi_settings['donations'] }}" checked> </td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <td> <input type="checkbox" name="enable_donations" value="{{ kofi_settings['donations'] }}"> </td>
|
|
|
|
|
|
|
+ <td> <input id="k_enable_donations" type="checkbox" name="k_enable_donations" value="{{ kofi_settings['donations'] }}"> </td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td>Enable awarding points for donations</td>
|
|
<td>Enable awarding points for donations</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td> <label for="set_donation_points">Points per dollar:</label> </td>
|
|
|
|
|
- <td> <input type="number" name="set_donation_points" value="{{ kofi_settings['donation_points'] }}" size="5" required> points</td>
|
|
|
|
|
|
|
+ <td> <label for="k_donation_points">Points per dollar:</label> </td>
|
|
|
|
|
+ <td> <input id="k_donation_points" type="number" name="k_donation_points" value="{{ kofi_settings['donation_points'] }}" size="5" required> points</td>
|
|
|
<td>How many points should viewers recieve, for every dollar they donate?</td>
|
|
<td>How many points should viewers recieve, for every dollar they donate?</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td> <label for="kofi_url">Kofi Page:</label> </td>
|
|
|
|
|
- <td style="padding: 5px;"> <input type="text" name="kofi_url" value="{{ kofi_settings['kofi_url'] }}" size="30"> </td>
|
|
|
|
|
- <td>What is your Kofi page URL?</td>
|
|
|
|
|
|
|
+ <td> <label for="kofi_url">Ko-fi URL:</label> </td>
|
|
|
|
|
+ <td style="padding: 5px;"> <input id="kofi_url" type="text" name="kofi_url" value="{{ kofi_settings['kofi_url'] }}" size="30"> </td>
|
|
|
|
|
+ <td>What is your Ko-fi URL?</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
<table>
|
|
<table>
|
|
|
<h4> Subscriptions </h4>
|
|
<h4> Subscriptions </h4>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td> <label for="enable_subs">Enable points for subscriptions:</label> </td>
|
|
|
|
|
|
|
+ <td> <label for="k_enable_subs">Enable points for subscriptions:</label> </td>
|
|
|
{% if kofi_settings['subs'] %}
|
|
{% if kofi_settings['subs'] %}
|
|
|
- <td> <input type="checkbox" name="enable_subs" value="{{ kofi_settings['subs'] }}" checked> </td>
|
|
|
|
|
|
|
+ <td> <input id="k_enable_subs" type="checkbox" name="k_enable_subs" value="{{ kofi_settings['subs'] }}" checked> </td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <td> <input type="checkbox" name="enable_subs" value="{{ kofi_settings['subs'] }}"> </td>
|
|
|
|
|
|
|
+ <td> <input id="k_enable_subs" type="checkbox" name="k_enable_subs" value="{{ kofi_settings['subs'] }}"> </td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td>Enable awarding points for monthly subscriptions</td>
|
|
<td>Enable awarding points for monthly subscriptions</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <td> <label for="sub_points">Points per month:</label> </td>
|
|
|
|
|
- <td> <input type="number" name="sub_points" value="{{ kofi_settings['sub_points'] }}" size="6" required> points</td>
|
|
|
|
|
|
|
+ <td> <label for="k_sub_points">Points per month:</label> </td>
|
|
|
|
|
+ <td> <input id="k_sub_points" type="number" name="k_sub_points" value="{{ kofi_settings['sub_points'] }}" size="6" required> points</td>
|
|
|
<td>How many points should subscribers recieve every month?</td>
|
|
<td>How many points should subscribers recieve every month?</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</tbody>
|
|
</tbody>
|
|
|
- </table>
|
|
|
|
|
- </tr>
|
|
|
|
|
|
|
+ </table>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </table>
|
|
|
|
|
+ <br><button id="kofi-settings_form" class="button button2" type="submit">Save</button><br>
|
|
|
|
|
+ </form>
|
|
|
|
|
+ <br><br>
|
|
|
|
|
+ <form id='gb-settings_form' method="POST" action="/mgmt/gbsettings">
|
|
|
|
|
+ <table>
|
|
|
|
|
+ <h3><img style="height: 25px; width: auto; padding-right: 8px; !important" alt="Give Butter Logo" src="/static/img/givebutter.png"> <u>GiveButter</u></h3>
|
|
|
|
|
+ <i>Scroll to the bottom to see instructions for enabling anonymous donations.</i>
|
|
|
|
|
+ <h4> Donations </h4>
|
|
|
|
|
+ <thead>
|
|
|
|
|
+ <tr style="border-bottom: none;">
|
|
|
|
|
+ <th style="width: 20%;"></th>
|
|
|
|
|
+ <th></th>
|
|
|
|
|
+ <th style="width: 50%;"></th>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ </thead>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> <label for="gb_integration">Enable:</label> </td>
|
|
|
|
|
+ {% if gb_settings['integration'] %}
|
|
|
|
|
+ <td> <input id="gb_integration" type="checkbox" name="gb_integration" value="{{ gb_settings['integration'] }}" checked> </td>
|
|
|
|
|
+ <td>Enable GiveButter integration.</td>
|
|
|
|
|
+ {% else %}
|
|
|
|
|
+ <td> <input id="gb_integration" type="checkbox" name="gb_integration" value="{{ gb_settings['integration'] }}"> </td>
|
|
|
|
|
+ <td>Enable GiveButter integration.</td>
|
|
|
|
|
+ {% endif %}
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> Your GiveButter webhook: </td>
|
|
|
|
|
+ <td>{{ settings_info[8] }}/gbHook</td>
|
|
|
|
|
+ <td>Enter this in GiveButter -> Settings -> Developers -> Webhooks -> +New Webhook.</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> <label for="gb_secret">Signing Secret:</label> </td>
|
|
|
|
|
+ <td style="padding: 5px;"> <input id="gb_secret" type="password" name="gb_secret" value="{{ gb_settings['secret'] }}" size="40"> </td>
|
|
|
|
|
+ <td>In the GiveButter webhooks window, click on the eye icon (View) next to the webhook you set up for OwnchatBot.</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> <label for="gb_enable_donations">Enable points for donations:</label> </td>
|
|
|
|
|
+ {% if gb_settings['donations'] %}
|
|
|
|
|
+ <td> <input id="gb_enable_donations" type="checkbox" name="gb_enable_donations" value="{{ gb_settings['donations'] }}" checked> </td>
|
|
|
|
|
+ {% else %}
|
|
|
|
|
+ <td> <input id="gb_enable_donations" type="checkbox" name="gb_enable_donations" value="{{ gb_settings['donations'] }}"> </td>
|
|
|
|
|
+ {% endif %}
|
|
|
|
|
+ <td>Enable awarding points for donations</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> <label for="gb_donation_points">Points per dollar:</label> </td>
|
|
|
|
|
+ <td> <input id="gb_donation_points" type="number" name="gb_donation_points" value="{{ gb_settings['donation_points'] }}" size="5" required> points</td>
|
|
|
|
|
+ <td>How many points should viewers recieve, for every dollar they donate?</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td> <label for="gb_url">GiveButter URL:</label> </td>
|
|
|
|
|
+ <td style="padding: 5px;"> <input id="gb_url" type="text" name="gb_url" value="{{ gb_settings['gb_url'] }}" size="30"> </td>
|
|
|
|
|
+ <td>What is your GiveButter URL?</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <td colspan="3">Monthy subscriptions are not yet supported for GiveButter. Coming soon.</td>
|
|
|
|
|
+ </tr>
|
|
|
</table>
|
|
</table>
|
|
|
- <br><button class="button button2" type="submit">Save Changes</button><br>
|
|
|
|
|
|
|
+ <br><button id="gb-settings_form" class="button button2" type="submit">Save</button><br><br>
|
|
|
|
|
+ GiveButter currently has no built-in function for anonymous donations. However, there is a work-around:<br>
|
|
|
|
|
+ In your GiveButter dashboard, go to Campaigns. Click the three dots next to your campaign -> Edit -> Tools -> Custom Fields -> New Custom Field -> Radio.<br>Enter the following information:<br>
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li>Title: Anonymous</li>
|
|
|
|
|
+ <li>Description: Whatever you like</li>
|
|
|
|
|
+ <li>Required?: Make required</li>
|
|
|
|
|
+ <li>Answers:</li>
|
|
|
|
|
+ <ul>
|
|
|
|
|
+ <li>Yes</li>
|
|
|
|
|
+ <li>No</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <li>Click "Save"</li>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <span style="color: orange;"><i>"Title" and "Answers" must be exacty as you see here, or OwnchatBot may not pick them up correctly.<br>If these are not set, or are set incorrectly, OwnchatBot will default to anonymous donation.</i></span>
|
|
|
</form>
|
|
</form>
|
|
|
<br><br>
|
|
<br><br>
|
|
|
</body>
|
|
</body>
|
|
@@ -469,7 +547,7 @@
|
|
|
<body onload="focusInput()">
|
|
<body onload="focusInput()">
|
|
|
<h1>To-Do List</h1>
|
|
<h1>To-Do List</h1>
|
|
|
<form id="todo-item-form" method="POST" onsubmit="focusInput()" action="/mgmt/addtodoitem">
|
|
<form id="todo-item-form" method="POST" onsubmit="focusInput()" action="/mgmt/addtodoitem">
|
|
|
- <input type="text" id="itemInput" name="item" placeholder="Add a new item">
|
|
|
|
|
|
|
+ <input type="text" id="itemInput" name="item" aria-label="Add a new item" placeholder="Add a new item">
|
|
|
<button id="todo-item-form" class="button button2" type="submit">Add</button>
|
|
<button id="todo-item-form" class="button button2" type="submit">Add</button>
|
|
|
</form>
|
|
</form>
|
|
|
<ul>
|
|
<ul>
|
|
@@ -478,23 +556,22 @@
|
|
|
{% if item.crossed == 'no' %}
|
|
{% if item.crossed == 'no' %}
|
|
|
<li style="text-decoration:none;">
|
|
<li style="text-decoration:none;">
|
|
|
{{ item.name }}
|
|
{{ item.name }}
|
|
|
- <a href="{{ url_for('web_panels.cross', item_id=loop.index0) }}">[Cross Off]</a> <span style="color: red;"><a href="{{ url_for('web_panels.rem_todo_item', item_id=loop.index0) }}">[Remove]</a></span>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.cross', item_id=loop.index0) }}">[Cross Off]</a> <a href="{{ url_for('web_panels.rem_todo_item', item_id=loop.index0) }}"><span style="color: yellow;">[Remove]</span></a>
|
|
|
</li>
|
|
</li>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
<li> <span style="text-decoration:line-through;">
|
|
<li> <span style="text-decoration:line-through;">
|
|
|
{{ item.name }}</span>
|
|
{{ item.name }}</span>
|
|
|
- <a href="{{ url_for('web_panels.uncross', item_id=loop.index0) }}">[Un-Cross]</a> <span style="color: red;"><a href="{{ url_for('web_panels.rem_todo_item', item_id=loop.index0) }}">[Remove]</a></span>
|
|
|
|
|
- </li>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.uncross', item_id=loop.index0) }}">[Un-Cross]</a> <a href="{{ url_for('web_panels.rem_todo_item', item_id=loop.index0) }}"><span style="color: yellow;">[Remove]</span></a>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
</ul>
|
|
</ul>
|
|
|
- <form action="/mgmt/clearlist" method="get" style="display: inline;">
|
|
|
|
|
- <button class="button button2" type="submit" class="button">Clear List</button>
|
|
|
|
|
|
|
+ <form id="clear_list_form" action="/mgmt/clearlist" method="get" style="display: inline;">
|
|
|
|
|
+ <button id="clear_list_form" class="button button2" type="submit" class="button">Clear List</button>
|
|
|
</form>
|
|
</form>
|
|
|
<hr>
|
|
<hr>
|
|
|
<h3>Stream Overlay</h3>
|
|
<h3>Stream Overlay</h3>
|
|
|
- To place the to-do list overlay in your stream, create a browser source in your streaming software<br>using the following URL: {{ settings_info[10] }}/todo<br>
|
|
|
|
|
|
|
+ To place the to-do list overlay in your stream, create a browser source in your streaming software<br>using the following URL: {{ settings_info[8] }}/todo<br>
|
|
|
 Recommended width: 420<br>
|
|
 Recommended width: 420<br>
|
|
|
 Recommended height: 500<br>
|
|
 Recommended height: 500<br>
|
|
|
 In OBS, check "Refresh browser source when scene becomes active"
|
|
 In OBS, check "Refresh browser source when scene becomes active"
|
|
@@ -536,59 +613,77 @@
|
|
|
</tr>
|
|
</tr>
|
|
|
</thead>
|
|
</thead>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <form id="nf_upload" action="/mgmt/alertupload/FOLLOWER_ALERT" method="post" enctype="multipart/form-data">
|
|
|
|
|
|
|
+ <form id="new_follow_image_upload" action="/mgmt/alertupload/FOLLOWER_ALERT" method="post" enctype="multipart/form-data">
|
|
|
<td>New Follower:</td>
|
|
<td>New Follower:</td>
|
|
|
{% set follower_alert = alerts_dict["FOLLOWER_ALERT"] %}
|
|
{% set follower_alert = alerts_dict["FOLLOWER_ALERT"] %}
|
|
|
{% if follower_alert %}
|
|
{% if follower_alert %}
|
|
|
{% if "webm" in follower_alert %}
|
|
{% if "webm" in follower_alert %}
|
|
|
<td><video height="100" autoplay loop><source src="{{ url_for('web_panels.assets', asset_name=follower_alert) }}" type="video/webm"></video></td>
|
|
<td><video height="100" autoplay loop><source src="{{ url_for('web_panels.assets', asset_name=follower_alert) }}" type="video/webm"></video></td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <td><img src="{{ url_for('web_panels.assets', asset_name=follower_alert) }}"></td>
|
|
|
|
|
|
|
+ <td><img alt="User Configurable Image" src="{{ url_for('web_panels.assets', asset_name=follower_alert) }}"></td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
{% else %}
|
|
{% else %}
|
|
|
<td>Empty</td>
|
|
<td>Empty</td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td><input type="file" name="FOLLOWER_ALERT" accept=".gif, .jpg, .jpeg, .png, .webm" required></td>
|
|
<td><input type="file" name="FOLLOWER_ALERT" accept=".gif, .jpg, .jpeg, .png, .webm" required></td>
|
|
|
- <td><button id="nf_upload" class="button button2" type="submit">Upload</button>
|
|
|
|
|
|
|
+ <td><button id="new_follow_image_upload" class="button button2" type="submit">Upload</button>
|
|
|
</form> 
|
|
</form> 
|
|
|
- <a href="{{ url_for('web_panels.del_alert', alert_type='FOLLOWER_ALERT') }}"><button class="button button2" onclick="openTab(event, 'alerts')"><span style="color: red;">Clear</span></button></a></td>
|
|
|
|
|
- <td>{{ settings_info[10] }}/alert/follower</td>
|
|
|
|
|
|
|
+ <a href="{{ url_for('web_panels.del_alert', alert_type='FOLLOWER_ALERT') }}"><button id="new_follow_image_upload" class="button button2" onclick="openTab(event, 'alerts')"><span style="color: yellow;">Clear</span></button></a></td>
|
|
|
|
|
+ <td>{{ settings_info[8] }}/alert/follower</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <form id="nms_upload" action="/mgmt/alertupload/MILESTONE_ALERT" method="post" enctype="multipart/form-data">
|
|
|
|
|
|
|
+ <form id="new_milestone_image_upload" action="/mgmt/alertupload/MILESTONE_ALERT" method="post" enctype="multipart/form-data">
|
|
|
<td>Milestone Reached:</td>
|
|
<td>Milestone Reached:</td>
|
|
|
{% set milestone_alert = alerts_dict["MILESTONE_ALERT"] %}
|
|
{% set milestone_alert = alerts_dict["MILESTONE_ALERT"] %}
|
|
|
{% if milestone_alert %}
|
|
{% if milestone_alert %}
|
|
|
{% if "webm" in milestone_alert %}
|
|
{% if "webm" in milestone_alert %}
|
|
|
<td><video height="100" autoplay loop><source src="{{ url_for('web_panels.assets', asset_name=milestone_alert) }}" type="video/webm"></video></td>
|
|
<td><video height="100" autoplay loop><source src="{{ url_for('web_panels.assets', asset_name=milestone_alert) }}" type="video/webm"></video></td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <td><img src="{{ url_for('web_panels.assets', asset_name=milestone_alert) }}"></td>
|
|
|
|
|
|
|
+ <td><img alt="User Configurable Image" src="{{ url_for('web_panels.assets', asset_name=milestone_alert) }}"></td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
{% else %}
|
|
{% else %}
|
|
|
<td>Empty</td>
|
|
<td>Empty</td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td><input type="file" name="MILESTONE_ALERT" accept=".gif, .jpg, .jpeg, .png, .webm" required></td>
|
|
<td><input type="file" name="MILESTONE_ALERT" accept=".gif, .jpg, .jpeg, .png, .webm" required></td>
|
|
|
- <td><button id="nms_upload" class="button button2" type="submit">Upload</button></form> 
|
|
|
|
|
- <a href="{{ url_for('web_panels.del_alert', alert_type='MILESTONE_ALERT') }}"><button class="button button2" onclick="openTab(event, 'alerts')"><span style="color: red;">Clear</span></button></a></td>
|
|
|
|
|
- <td>{{ settings_info[10] }}/alert/milestone</td>
|
|
|
|
|
|
|
+ <td><button id="new_milestone_image_upload" class="button button2" type="submit">Upload</button></form> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.del_alert', alert_type='MILESTONE_ALERT') }}"><button id="new_milestone_image_upload" class="button button2" onclick="openTab(event, 'alerts')"><span style="color: yellow;">Clear</span></button></a></td>
|
|
|
|
|
+ <td>{{ settings_info[8] }}/alert/milestone</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
<tr>
|
|
<tr>
|
|
|
- <form id="ng_upload" action="/mgmt/alertupload/GOAL_ALERT" method="post" enctype="multipart/form-data">
|
|
|
|
|
|
|
+ <form id="new_goal_image_upload" action="/mgmt/alertupload/GOAL_ALERT" method="post" enctype="multipart/form-data">
|
|
|
<td>Goal Reached:</td>
|
|
<td>Goal Reached:</td>
|
|
|
{% set goal_alert = alerts_dict["GOAL_ALERT"] %}
|
|
{% set goal_alert = alerts_dict["GOAL_ALERT"] %}
|
|
|
{% if goal_alert %}
|
|
{% if goal_alert %}
|
|
|
{% if "webm" in goal_alert %}
|
|
{% if "webm" in goal_alert %}
|
|
|
<td><video height="100" autoplay loop><source src="{{ url_for('web_panels.assets', asset_name=goal_alert) }}" type="video/webm"></video></td>
|
|
<td><video height="100" autoplay loop><source src="{{ url_for('web_panels.assets', asset_name=goal_alert) }}" type="video/webm"></video></td>
|
|
|
{% else %}
|
|
{% else %}
|
|
|
- <td><img src="{{ url_for('web_panels.assets', asset_name=goal_alert) }}"></td>
|
|
|
|
|
|
|
+ <td><img alt="User Configurable Image" src="{{ url_for('web_panels.assets', asset_name=goal_alert) }}"></td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
{% else %}
|
|
{% else %}
|
|
|
<td>Empty</td>
|
|
<td>Empty</td>
|
|
|
{% endif %}
|
|
{% endif %}
|
|
|
<td><input type="file" name="GOAL_ALERT" accept=".gif, .jpg, .jpeg, .png, .webm" required></td>
|
|
<td><input type="file" name="GOAL_ALERT" accept=".gif, .jpg, .jpeg, .png, .webm" required></td>
|
|
|
- <td><button id="ng_upload" class="button button2" type="submit">Upload</button></form> 
|
|
|
|
|
- <a href="{{ url_for('web_panels.del_alert', alert_type='GOAL_ALERT') }}"><button class="button button2" onclick="openTab(event, 'alerts')"><span style="color: red;">Clear</span></button></a></td>
|
|
|
|
|
- <td>{{ settings_info[10] }}/alert/goal</td>
|
|
|
|
|
|
|
+ <td><button id="new_goal_image_upload" class="button button2" type="submit">Upload</button></form> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.del_alert', alert_type='GOAL_ALERT') }}"><button id="new_goal_image_upload" class="button button2" onclick="openTab(event, 'alerts')"><span style="color: yellow;">Clear</span></button></a></td>
|
|
|
|
|
+ <td>{{ settings_info[8] }}/alert/goal</td>
|
|
|
|
|
+ </tr>
|
|
|
|
|
+ <tr>
|
|
|
|
|
+ <form id="new_givebutter_image_upload" action="/mgmt/alertupload/GIVEBUTTER_ALERT" method="post" enctype="multipart/form-data">
|
|
|
|
|
+ <td>GiveButter Donation:</td>
|
|
|
|
|
+ {% set givebutter_alert = alerts_dict["GIVEBUTTER_ALERT"] %}
|
|
|
|
|
+ {% if givebutter_alert %}
|
|
|
|
|
+ {% if "webm" in givebutter_alert %}
|
|
|
|
|
+ <td><video height="100" autoplay loop><source src="{{ url_for('web_panels.assets', asset_name=givebutter_alert) }}" type="video/webm"></video></td>
|
|
|
|
|
+ {% else %}
|
|
|
|
|
+ <td><img alt="User Configurable Image" src="{{ url_for('web_panels.assets', asset_name=givebutter_alert) }}"></td>
|
|
|
|
|
+ {% endif %}
|
|
|
|
|
+ {% else %}
|
|
|
|
|
+ <td>Empty</td>
|
|
|
|
|
+ {% endif %}
|
|
|
|
|
+ <td><input type="file" name="GIVEBUTTER_ALERT" accept=".gif, .jpg, .jpeg, .png, .webm" required></td>
|
|
|
|
|
+ <td><button id="new_givebutter_image_upload" class="button button2" type="submit">Upload</button></form> 
|
|
|
|
|
+ <a href="{{ url_for('web_panels.del_alert', alert_type='GIVEBUTTER_ALERT') }}"><button id="new_givebutter_image_upload" class="button button2" onclick="openTab(event, 'alerts')"><span style="color: yellow;">Clear</span></button></a></td>
|
|
|
|
|
+ <td>{{ settings_info[8] }}/alert/givebutter</td>
|
|
|
</tr>
|
|
</tr>
|
|
|
</table>
|
|
</table>
|
|
|
<h3>Stream Overlays</h3>
|
|
<h3>Stream Overlays</h3>
|
|
@@ -610,4 +705,8 @@
|
|
|
</body>
|
|
</body>
|
|
|
<br><br>
|
|
<br><br>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <footer>
|
|
|
|
|
+ If you are thrilled to death with OwnchatBot, and want to throw a little monetary love DeadTOm's way, <a href=https://ko-fi.com/deadtom>he's on Ko-fi</a>.<br>
|
|
|
|
|
+ OwnchatBot © 2025 by <a href=https://www.deadtom.me>DeadTOm</a> is licensed under <a href=https://creativecommons.org/licenses/by-sa/4.0/>Creative Commons Attribution-ShareAlike 4.0 International</a>.
|
|
|
|
|
+ </footer>
|
|
|
</html>
|
|
</html>
|