Ajout page erreur si toutes les url vident, création du fichier css pour habiller la page.

This commit is contained in:
Gu1llaum-3 2022-12-28 23:38:07 +01:00
parent 98f2a46afb
commit 61c61d203b
7 changed files with 179 additions and 33 deletions

Binary file not shown.

95
app.py
View File

@ -1,43 +1,90 @@
from flask import Flask, request, redirect, url_for, send_file
from flask import Flask, request, redirect, url_for, send_file, render_template
import os
app = Flask(__name__)
@app.route('/')
def upload_form():
return '''
<form method="POST">
<label for="url">URL:</label>
<input type="text" name="url" id="url">
<input type="submit" value="Téléchargement">
</form>
'''
return render_template('upload.html')
@app.route('/', methods=['GET', 'POST'])
def index():
message = None
if request.method == 'POST':
url = request.form['url']
result = process_file(url)
return '''
<h1> Téléchargement terminé </h1>
<button onclick="window.location.href = '/';">Télécharger à nouveau</button>
'''
url1 = request.form['url1']
url2 = request.form['url2']
url3 = request.form['url3']
url4 = request.form['url4']
url5 = request.form['url5']
def process_file(url):
# Vérifier si au moins un champ est vide
if not url1 and not url2 and not url3 and not url4 and not url5:
return render_template('erreur.html')
result = process_file(url1, url2, url3, url4, url5)
return render_template('download_complete.html')
def process_file(url1, url2, url3, url4, url5):
path = os.path.expanduser('~/musics')
download_param_album = '{artist}/{album}/{artist} - {title}'
download_param_playlist = '{playlist}/{artists}/{album} - {title} {artist}'
if "album" in url:
#os.makedirs(f"{path}")
os.chdir(f"{path}")
print ("album found")
os.system(f'python3 -m spotdl {url} --output "{download_param_album}"')
elif "playlist" in url:
os.chdir(f"{path}")
print("playlist found")
os.system(f'python3 -m spotdl {url} --output "{download_param_playlist}"')
# Télécharger chaque URL s'il n'est pas vide
if url1:
if "album" in url1:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url1} --output "{download_param_album}"')
elif "playlist" in url1:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url1} --output "{download_param_playlist}"')
if url2:
if "album" in url2:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url2} --output "{download_param_album}"')
elif "playlist" in url2:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url2} --output "{download_param_playlist}"')
if url3:
if "album" in url3:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url3} --output "{download_param_album}"')
elif "playlist" in url3:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url3} --output "{download_param_playlist}"')
if url4:
if "album" in url4:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url4} --output "{download_param_album}"')
elif "playlist" in url4:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url4} --output "{download_param_playlist}"')
if url5:
if "album" in url5:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url5} --output "{download_param_album}"')
elif "playlist" in url5:
os.chdir(f"{path}")
os.system(f'python3 -m spotdl {url5} --output "{download_param_playlist}"')
# def process_file(url):
# path = os.path.expanduser('~/musics')
# download_param_album = '{artist}/{album}/{artist} - {title}'
# download_param_playlist = '{playlist}/{artists}/{album} - {title} {artist}'
# if "album" in url:
# #os.makedirs(f"{path}")
# os.chdir(f"{path}")
# print ("album found")
# os.system(f'python3 -m spotdl {url} --output "{download_param_album}"')
# elif "playlist" in url:
# os.chdir(f"{path}")
# print("playlist found")
# os.system(f'python3 -m spotdl {url} --output "{download_param_playlist}"')
# @app.route('/download/<path:filename>')

40
static/css/style.css Normal file
View File

@ -0,0 +1,40 @@
body {
background-color: black;
}
h1 {
/* border: 2px #eee solid; */
color: rgb(24,216,96);
background-color: black;
text-align: center;
padding: 10px;
}
h2 {
text-align: center;
margin: auto;
padding: 10px;
color: white;
}
.url {
display: flex;
justify-content: center;
align-items: center;
/* min-height:100%; */
background-color: black;
color: white
}
input[type="submit"] {
display: block;
margin: auto;
}
button {
display: block;
margin: 10px auto;
}

View File

@ -0,0 +1,10 @@
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{{ url_for('static', filename= 'css/style.css') }}">
<title>SpotDL Web</title>
</head>
<body>
<h1> SpotDL Web </h1>
<h2> Téléchargement Terminé </h2>
<button onclick="window.location.href = '/';">Télécharger à nouveau</button>
</body>

13
templates/erreur.html Normal file
View File

@ -0,0 +1,13 @@
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{{ url_for('static', filename= 'css/style.css') }}">
<title>SpotDL Web</title>
</head>
<h1> SpotDL Web </h1>
<h2> Veuillez entrer au moins une URL ! </h2>
<button onclick="window.location.href = '/';">Télécharger à nouveau</button>
{% if message %}
<p>{{ message }}</p>
{% endif %}

View File

@ -1,9 +0,0 @@
<form method="POST">
<label for="url">URL:</label>
<input type="text" name="url" id="url">
<input type="submit" value="Téléchargement">
</form>
{% if message %}
<p>{{ message }}</p>
{% endif %}

45
templates/upload.html Normal file
View File

@ -0,0 +1,45 @@
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="{{ url_for('static', filename= 'css/style.css') }}">
<title>SpotDL Web</title>
</head>
<h1>SpotDL Web</h1>
<div class="url">
<form method="POST">
<!-- <label for="url">URL:</label>
<input type="text" name="url" id="url"> -->
<div style="margin-top: 10px;">
<label for="url1">URL 1:</label>
<input type="text" name="url1" id="url1">
</div>
<div style="margin-top: 10px;">
<label for="url2">URL 2:</label>
<input type="text" name="url2" id="url2">
</div>
<div style="margin-top: 10px;">
<label for="url3">URL 3:</label>
<input type="text" name="url3" id="url3">
</div>
<div style="margin-top: 10px;">
<label for="url4">URL 4:</label>
<input type="text" name="url4" id="url4">
</div>
<div style="margin-top: 10px;">
<label for="url5">URL 5:</label>
<input type="text" name="url5" id="url5">
</div>
<div style="margin-top: 10px;">
<input type="submit" value="Téléchargement">
</div>
</form>
</div>