124 lines
3.7 KiB
Python
124 lines
3.7 KiB
Python
from flask import Flask, render_template, request, redirect
|
|
import csv
|
|
|
|
HOST_NAME = "localhost"
|
|
HOST_PORT = 5000
|
|
app = Flask(__name__)
|
|
|
|
@app.route("/")
|
|
def mainpage():
|
|
with open("animelist.csv") as file:
|
|
reader = csv.reader(file)
|
|
enum = list(enumerate(list(reader)))
|
|
lista = []
|
|
for el in enum:
|
|
lista.append([el[0]]+el[1])
|
|
return render_template('index.html',csv=lista)
|
|
|
|
@app.route("/new_animu", methods = ['POST', 'GET'])
|
|
def new_animu():
|
|
if request.method == 'GET':
|
|
return redirect('/')
|
|
if request.method == 'POST':
|
|
form_data = request.form
|
|
#print(form_data)
|
|
if add_animu_fun(form_data):
|
|
return redirect('/')
|
|
return f'Errore aggiungendo anime, hai inserito correttamente i valori?'
|
|
|
|
@app.route("/del_animu", methods = ['POST', 'GET'])
|
|
def del_animu():
|
|
if request.method == 'GET':
|
|
return redirect('/')
|
|
if request.method == 'POST':
|
|
form_data = request.form
|
|
print(form_data)
|
|
if del_animu_fun(form_data):
|
|
return redirect('/')
|
|
return f'Errore rimuovendo anime, hai inserito correttamente i valori?'
|
|
|
|
@app.route("/mod_animu", methods = ['POST', 'GET'])
|
|
def mod_animu():
|
|
if request.method == 'GET':
|
|
return redirect('/')
|
|
if request.method == 'POST':
|
|
form_data = request.form
|
|
print(form_data)
|
|
if mod_animu_fun(form_data):
|
|
return redirect('/')
|
|
return f'Errore modificando anime, hai inserito correttamente i valori?'
|
|
|
|
|
|
def add_animu_fun(form_data):
|
|
try:
|
|
if not (form_data['field_season'] and form_data['field_url'] and form_data['field_folder']):
|
|
return False
|
|
stagione = int(form_data['field_season'])
|
|
new_entry = [form_data['field_url'],
|
|
form_data['field_folder'] + '/Season ' + str(stagione),
|
|
'Episode S' + format(stagione,'02d'),
|
|
1,
|
|
1]
|
|
with open("animelist.csv",mode='a') as animecsv: #link,cartella>
|
|
csvfile=csv.writer(animecsv)
|
|
csvfile.writerow(new_entry)
|
|
return True
|
|
except Exception as e:
|
|
print(e)
|
|
return False
|
|
|
|
def del_animu_fun(form_data):
|
|
try:
|
|
if not form_data['del_field']:
|
|
return False
|
|
data = []
|
|
with open("animelist.csv", 'r', newline='') as file:
|
|
csv_reader = csv.reader(file)
|
|
for index, row in enumerate(csv_reader):
|
|
if index != int(form_data['del_field']):
|
|
data.append(row)
|
|
# Write the remaining data back to the CSV file
|
|
with open("animelist.csv", 'w', newline='') as file:
|
|
csv_writer = csv.writer(file)
|
|
csv_writer.writerows(data)
|
|
return True
|
|
except Exception as e:
|
|
print(e)
|
|
return False
|
|
|
|
def mod_animu_fun(form_data):
|
|
try:
|
|
index = int(form_data['field_1_index'])
|
|
url = form_data['field_1_url']
|
|
folder = form_data['field_1_folder']
|
|
name = form_data['field_1_name']
|
|
check = form_data['field_1_check']
|
|
naming = form_data['field_1_naming']
|
|
if not ((check in '01') and (naming in '01')):
|
|
return False
|
|
newrow = [url,folder,name,check[-1:],naming[-1:]]
|
|
if not index: #cosi non si può modificare la riga 0
|
|
return False
|
|
data = []
|
|
with open("animelist.csv", 'r', newline='') as file:
|
|
csv_reader = csv.reader(file)
|
|
for ind, row in enumerate(csv_reader):
|
|
if ind != index:
|
|
data.append(row)
|
|
else: #cosi se lindex dato è fuori dal range non si fanno modifiche
|
|
for i in range(len(newrow)):
|
|
if newrow[i] == '':
|
|
newrow[i]=row[i]
|
|
data.append(newrow)
|
|
# Write the remaining data back to the CSV file
|
|
with open("animelist.csv", 'w', newline='') as file:
|
|
csv_writer = csv.writer(file)
|
|
csv_writer.writerows(data)
|
|
return True
|
|
except Exception as e:
|
|
print(e)
|
|
return False
|
|
|
|
if __name__ == "__main__":
|
|
app.run(HOST_NAME, HOST_PORT)
|