forked from rDrama/rDrama
upload mp3
parent
4f02a72d29
commit
b2de1dca52
|
@ -787,6 +787,34 @@ def settings_name_change(v):
|
||||||
|
|
||||||
return redirect("/settings/profile")
|
return redirect("/settings/profile")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@app.post("/settings/song_change_mp3")
|
||||||
|
@limiter.limit("3/second;10/day")
|
||||||
|
@limiter.limit("3/second;10/day", key_func=lambda:f'{request.host}-{session.get("lo_user")}')
|
||||||
|
@auth_required
|
||||||
|
def settings_song_change_mp3(v):
|
||||||
|
|
||||||
|
file = request.files['file']
|
||||||
|
if file.content_type != 'audio/mpeg':
|
||||||
|
return render_template("settings_profile.html", v=v, error="Not a valid MP3 file")
|
||||||
|
|
||||||
|
name = f'/songs/{v.id}.mp3'
|
||||||
|
file.save(name)
|
||||||
|
|
||||||
|
size = os.stat(name).st_size
|
||||||
|
if size > 8 * 1024 * 1024:
|
||||||
|
os.remove(name)
|
||||||
|
return render_template("settings_profile.html", v=v, error="MP3 file must be smaller than 8MB")
|
||||||
|
|
||||||
|
v.song = v.id
|
||||||
|
g.db.add(v)
|
||||||
|
g.db.commit()
|
||||||
|
|
||||||
|
return redirect("/settings/profile")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@app.post("/settings/song_change")
|
@app.post("/settings/song_change")
|
||||||
@limiter.limit("3/second;10/day")
|
@limiter.limit("3/second;10/day")
|
||||||
@limiter.limit("3/second;10/day", key_func=lambda:f'{request.host}-{session.get("lo_user")}')
|
@limiter.limit("3/second;10/day", key_func=lambda:f'{request.host}-{session.get("lo_user")}')
|
||||||
|
|
|
@ -394,16 +394,31 @@
|
||||||
<label class="text-black w-lg-25">Profile Anthem</label>
|
<label class="text-black w-lg-25">Profile Anthem</label>
|
||||||
|
|
||||||
<div class="w-lg-100">
|
<div class="w-lg-100">
|
||||||
<p>Must be a youtube video link.</p>
|
<p>You can use an MP3 file or a YouTube video.</p>
|
||||||
|
|
||||||
|
<form action="/settings/song_change_mp3" method="post" enctype="multipart/form-data">
|
||||||
|
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||||
|
<label class="btn btn-secondary format d-inline-block m-0 mb-3">
|
||||||
|
<div id="filename-show2"><i class="fas fa-file"></i>
|
||||||
|
{% if v.song and v.song == v.id|string %}
|
||||||
|
{{v.id}}.mp3
|
||||||
|
{% else %}
|
||||||
|
Use an MP3 file (Max size is 8MB)
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<input autocomplete="off" id="file-upload2" type="file" name="file" {% if request.headers.get('cf-ipcountry')=="T1" %}disabled{% endif %} accept="audio/mp3" onchange="this.form.submit()" hidden>
|
||||||
|
</label>
|
||||||
|
</form>
|
||||||
|
|
||||||
<form action="/settings/song_change" method="post">
|
<form action="/settings/song_change" method="post">
|
||||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||||
<input autocomplete="off" type="text" name="song" class="form-control" value="{% if v.song %}https://youtu.be/{{v.song}}{% endif %}" placeholder='Enter a youtube video link here'>
|
|
||||||
<br><small>In some browsers, users have to click at least once anywhere in the profile page for the anthem to play.</small>
|
<input class="form-control" style="display:inline;max-width:75%;font-size: min(3.5vw,16px)!important" autocomplete="off" type="text" name="song" class="form-control" value="{% if v.song and v.song != v.id|string %}https://youtu.be/{{v.song}}{% endif %}" placeholder='Enter a YouTube video link here'>
|
||||||
<div class="d-flex mt-2">
|
|
||||||
<input autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Change Profile Anthem">
|
<input class="btn btn-primary" style="margin-top:-5px" autocomplete="off" class="btn btn-primary ml-auto" type="submit" value="Submit">
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<br><small>In some browsers, users have to click at least once anywhere in the profile page for the anthem to play.</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue