fix chat width; fix placement of dates in chat; italicise chat dates in text browsers; show uptime properly in text browsers; show settings in comment box when reloaded if user decides against kicking themselves out of the secret club; always give 403 response when secret club is active to hide if stream is live
このコミットが含まれているのは:
コミット
c123b74b1b
|
@ -66,8 +66,6 @@ def broadcaster():
|
|||
|
||||
@current_app.route('/stream.m3u8')
|
||||
def playlist():
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
token = get_token()
|
||||
viewership.made_request(token)
|
||||
if not viewership.is_allowed(token):
|
||||
|
@ -76,6 +74,8 @@ def playlist():
|
|||
viewership.video_was_corrupted.remove(token)
|
||||
except KeyError:
|
||||
pass
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
|
||||
try:
|
||||
token_playlist = stream.token_playlist(token)
|
||||
|
@ -88,8 +88,6 @@ def playlist():
|
|||
|
||||
@current_app.route(f'/{SEGMENT_INIT}')
|
||||
def segment_init():
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
token = get_token() or new_token()
|
||||
viewership.made_request(token)
|
||||
if not viewership.is_allowed(token):
|
||||
|
@ -98,6 +96,8 @@ def segment_init():
|
|||
viewership.video_was_corrupted.remove(token)
|
||||
except KeyError:
|
||||
pass
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
|
||||
response = send_from_directory(SEGMENTS_DIR, f'init.mp4', add_etags=False)
|
||||
response.headers['Cache-Control'] = 'no-cache'
|
||||
|
@ -106,8 +106,6 @@ def segment_init():
|
|||
|
||||
@current_app.route('/stream<int:n>.m4s')
|
||||
def segment_arbitrary(n):
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
token = get_token()
|
||||
if not viewership.is_allowed(token):
|
||||
return abort(403)
|
||||
|
@ -115,6 +113,8 @@ def segment_arbitrary(n):
|
|||
viewership.video_was_corrupted.remove(token)
|
||||
except KeyError:
|
||||
pass
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
|
||||
# only send segments that are listed in stream.m3u8
|
||||
# this stops old segments from previous streams being sent
|
||||
|
@ -127,8 +127,6 @@ def segment_arbitrary(n):
|
|||
|
||||
@current_app.route('/stream.mp4')
|
||||
def segments():
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
token = get_token() or new_token()
|
||||
viewership.made_request(token)
|
||||
if not viewership.is_allowed(token):
|
||||
|
@ -137,6 +135,8 @@ def segments():
|
|||
viewership.video_was_corrupted.remove(token)
|
||||
except KeyError:
|
||||
pass
|
||||
if not stream.is_online():
|
||||
return abort(404)
|
||||
|
||||
def should_close_connection():
|
||||
if not stream.is_online():
|
||||
|
@ -299,6 +299,7 @@ def settings():
|
|||
return redirect(url_for('index'))
|
||||
viewers[token]['nickname'] = old_nickname
|
||||
viewers[token]['tripcode'] = old_tripcode
|
||||
viewership.preset_comment_iframe[token] = {'note': N_NONE, 'show_settings': True}
|
||||
return render_template('comment-confirm-iframe.html', token=token, nickname=old_nickname or viewership.default_nickname(token))
|
||||
|
||||
viewership.preset_comment_iframe[token] = {'note': note, 'show_settings': True}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
.rotate {transform: rotate(-180deg);}
|
||||
.reverse {direction: rtl;}
|
||||
|
||||
.comment {color:white;padding:3px 2px;overflow:hidden;display:inline-block;width:calc(100vw - 2em);}
|
||||
.comment {color:white;padding:3px 2px;overflow:hidden;display:inline-block;width:calc(100vw - 1.25em);}
|
||||
.comment:hover{background-color:#333;border-radius:4px;}
|
||||
.date {color:gray;font-size:75%;text-align:center;border-bottom:1px solid #333;margin:0.5em 0 0.75em 0;cursor:default;}
|
||||
|
||||
|
@ -102,7 +102,7 @@
|
|||
<div class="textonly">
|
||||
<br>
|
||||
<div><b>{{ stream_title }}</b></div>
|
||||
<div>{{ stream_viewers }} viewer(s), {% if uptime %}{{ stream_uptime }} uptime{% else %}offline{% endif %}</div>
|
||||
<div>{{ stream_viewers }} viewer(s), {% if stream_uptime %}{{ stream_uptime }} uptime{% else %}offline{% endif %}</div>
|
||||
<br>
|
||||
<div>== Chat ==</div>
|
||||
</div>
|
||||
|
@ -119,10 +119,10 @@
|
|||
<table border="1" frame="void" rules="rows" style="border-collapse:separate;border-spacing:0 2px;">
|
||||
<tbody>
|
||||
{% for message in messages %}
|
||||
{% if message.get('special') == 'date' %}
|
||||
<div class="date rotate">{{ message['content'] }}</div>
|
||||
{% else %}
|
||||
<tr>
|
||||
{% if message.get('special') == 'date' %}
|
||||
<td class="date rotate"><i style="font-style:normal;">{{ message['content'] }}</i></td>
|
||||
{% else %}
|
||||
<td class="comment rotate">
|
||||
{% if not message['hidden'] %}
|
||||
{% if broadcaster %}
|
||||
|
@ -139,8 +139,8 @@
|
|||
><span class="barrier"></span><br class="textonly"><span class="message">{{ message['text'] }}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
読み込み中…
新しいイシューから参照