-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPMDataManager.py
103 lines (85 loc) · 3.53 KB
/
PMDataManager.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
iimport os
class File:
#Class representing each file affected by the playlist creation and edition.
#Caracterised by the file's name, actual position and last known position.
def __init__(self, name = "", position = 0, shorten = 60):
self.name = name
self.position = position
self.previous = position
if (len(self.name) > shorten):
self.shortname = name[0:shorten] + ' ...'
else:
self.shortname = name
def rename(self, prefixe=0): #Change file's position
self.position = prefixe
return 0
class Playlist:
def __init__(self, wdir = os.getcwd()):
self.list = []
self.lenght = 0
self.error = []
self.workDir = wdir
self.load()
def update(self, oldValue, newValue):
if (oldValue < newValue):
for line in range(oldValue+1 ,newValue+1):
self.list[line-1].rename(line-1)
self.list[oldValue-1].rename(newValue)
elif (oldValue == newValue):
self.error.append('Aucun changement effectué, les valeurs sont identiques')
else:
for line in range(newValue, oldValue):
self.list[line-1].rename(line+1)
self.list[oldValue-1].rename(newValue)
print(len(self.list))
self.overwrite()
self.load()
return 0
def load(self):
dirFiles = os.listdir(self.workDir)
loadList = []
loadLenght = 0
for elmt in dirFiles:
if '#' not in elmt:
os.rename(str(self.workDir) + str(elmt), str(self.workDir) + '#' + str(elmt))
file = File(str(elmt), int(loadLenght) + 1)
if (file):
loadLenght += 1
loadList.append(file)
else:
self.error.append('Le fichier %s n\'a pas pu etre ajouté' % elmt)
self.list = loadList
self.lenght = loadLenght
return 0
def overwrite(self):
dirFiles = os.listdir(self.workDir)
for file in self.list:
fileInfo = file.name.split('#')
name = fileInfo[-1]
previous = fileInfo[0]
try:
os.rename(str(self.workDir) + str(file.previous) + '#' + name,
str(self.workDir) + str(file.position) + '#' + name)
except:
print("Numero non trouve. Recherche du fichier...")
try:
os.rename(str(self.workDir) + '#' + file.name,
str(self.workDir) + str(file.position) + '#' + file.name)
except:
print("Fichier introuvable.")
print(file.position, file.name)
#for elmt in dirFiles :
#print(elmt)
def reset(self):
for file in self.list:
fileInfo = file.name.split('#')
name = fileInfo[-1]
previous = fileInfo[0]
try:
os.rename(str(self.workDir) + str(previous) + '#' + name, str(self.workDir) + '#' + name)
except:
print("Numero non trouve. Recherche du fichier...")
try:
os.rename(str(self.workDir) + '#' + name, str(self.workDir) + '#' + name)
except:
print("Fichier introuvable.")