Add files via upload

This commit is contained in:
Mylloon 2020-08-09 21:10:43 +02:00 committed by GitHub
parent ba6a58962d
commit f023495823
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

140
main.py Normal file
View file

@ -0,0 +1,140 @@
from tkinter import Tk, filedialog, Button, Label, Entry
import tkinter.font as tkfont
from tkinter.messagebox import showinfo
from tkinter import ttk
from os import listdir
from os.path import isfile, join
import os
# Commandes
def select_folder():
try:
path_file = filedialog.askdirectory(initialdir = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop'), title = "Choissisez un dossier contenant vos vidéos")
openfile(path_file)
except:
pass
def openfile(path):
global listeCombo, filename_premier, serie, serie_num
files = [f for f in listdir(path) if isfile(join(path, f))]
if files == []:
return showinfo("Erreur", "Ce dossier est vide.")
filenames = []
file_extensions = []
for i in range(len(files)):
filename, file_extension = os.path.splitext(files[i])
if file_extension not in ['.mkv','.mp4','.avi']:
file_imcompatible = True
filenames.append(filename)
file_extensions.append(file_extension)
filename_premier_nom, file_extension = os.path.splitext(files[0])
del file_extension
try:
if file_imcompatible == True:
showinfo("Erreur", f"Un fichier n'est pas compatible.\nVeuillez n'utiliser que des .mp4, .avi ou des .mkv.")
root.destroy()
except:
pass
try:
del file_imcompatible
except:
pass
try:
nettoyage()
except:
pass
try:
nettoyage2()
except:
pass
Label(root, text = "Nom 1er fichier :").place(x = 5, y = 13)
filename_premier = Entry(root, width = len(filename_premier_nom))
filename_premier.insert(0, filename_premier_nom)
filename_premier.place(x = 100, y = 15)
Label(root, text = "Contenu du dossier actuel").place(x = 50, y = 50)
listeCombo = ttk.Combobox(root, values=filenames, width=len(max(filenames, key=len)))
listeCombo.current(0)
listeCombo.place(x = 50, y = 80)
Label(root, text = "Titre de la série :").place(x = 30, y = 120)
serie = Entry(root, width = 80)
serie.place(x = 120, y = 120)
Label(root, text = "Numéro de la série :").place(x = 9, y = 170)
serie_num = Entry(root, width = 10)
serie_num.place(x = 120, y = 170)
Button(root, text = "Voir la prévisualisation", command = lambda : previsualisation(files, file_extensions, path)).place(x = 30, y = 200)
def nettoyage():
listeCombo.destroy()
filename_premier.destroy()
serie.destroy()
serie_num.destroy()
def nettoyage2():
listeCombo_new.destroy()
listeCombo_label_new.destroy()
valider.destroy()
def previsualisation(files, extensions, path):
global listeCombo_new, listeCombo_label_new, valider
try:
nettoyage2()
except:
pass
serie_nom = serie.get()
serie_numero = serie_num.get()
try:
if len(serie_nom) > 0 and int(serie_numero) > 0:
if int(serie_numero) < 10:
serie_numero = f"0{serie_numero}"
filenames_new = []
for i in range(len(files)):
i += 1
if i < 10:
i = f"0{i}"
filenames_new.append(f"{serie_nom} - s{serie_numero}e{i}")
listeCombo_label_new = Label(root, text = "Contenu du dossier si renommé")
listeCombo_label_new.place(x = 50, y = 240)
listeCombo_new = ttk.Combobox(root, values=filenames_new, width=len(max(filenames_new, key=len)))
listeCombo_new.current(0)
listeCombo_new.place(x = 50, y = 270)
valider = Button(root, text = "Confirmer et renommer les fichiers", command = lambda : rename(files, filenames_new, extensions, path))
valider.place(x = 50, y = 300)
else:
showinfo("Erreur", "Le nom de la série et/ou son numéro n'est pas renseigné.")
except:
showinfo("Erreur", "Le numéro de la série DOIT être un numéro")
def rename(files, new_files, extensions, path):
try:
for i in range(len(extensions)):
os.rename(f"{path}/{files[i]}",f"{path}/{new_files[i]}{extensions[i]}")
showinfo("Succès", "Les fichiers ont bien été renommés.")
except:
showinfo("Erreur", "Un nom de fichier ne peut pas contenir les caractères suivants :\n\\ / : * ? < > |")
# Affichage
root=Tk()
root.geometry("700x350")
root.title("Renommer des fichiers pour Plex")
root.resizable(False, False)
Button(root, text = "Choisis un dossier", command = select_folder).place(x = 570, y = 10)
root.mainloop()