@@ -80,14 +80,14 @@ def getInterfaceName(self):
8080
8181 def getAvaiable (self ):
8282 return self .available
83-
83+
8484 def getIcon (self ):
8585 return self .icon
8686
8787class MusicPackageManager :
8888 _instance = None
8989 packages = None
90-
90+
9191 @classmethod
9292 def get_instance (cls ):
9393 if cls ._instance is None :
@@ -100,7 +100,7 @@ def __init__(self):
100100 with open ('./sounds/notes/music_package.json' ) as json_file :
101101 data = json .load (json_file )
102102 for p in data ['packages' ]:
103-
103+
104104 package = data ['packages' ][p ]
105105 mp = MusicPackage (p ,package ['category' ],package ['name_IT' ],package ['name_EN' ],package ['version' ],package ['date' ])
106106 for i in package ['interface' ]:
@@ -115,18 +115,21 @@ def __init__(self):
115115
116116 def deletePackage (self , packageName ):
117117 if packageName in self .packages :
118- del self .packages [packageName ]
118+ del self .packages [packageName ]
119119 self .updatePackages ()
120- else :
120+ else :
121121 print ("errore, il pacchetto " + packageName + " non è stato trovato" )
122122
123123 if os .path .exists ('./sounds/notes/' + packageName ):
124- os .system ('rm -rf ./sounds/notes/' + packageName )
124+ os .system ('rm -rf ./sounds/notes/' + packageName )
125125
126126
127127 def verifyVersion (self , packageName , version ):
128128 print ("verifica pacchetto" )
129129 #newversionList = version.split('.')
130+ if packageName not in this .packages :
131+ return True
132+
130133 newVersionList = [int (x ) for x in version .split ('.' )]
131134 #for i in ragen(0,len(newversionList) -1):
132135 #newversionList[i] = int(newLversionList[i])
@@ -136,11 +139,46 @@ def verifyVersion(self, packageName, version):
136139
137140 for i in range (0 ,len (newVersionList ) - 1 ):
138141 if (newVersionList [i ] > oldVersionList [i ] ):
139- return True
142+ return True
140143 else if (newVersionList [i ] < oldVersionList [i ] ):
141144 return False
142145
143- return False ;
146+ return False
147+
148+ def addPackage (self , filename ):
149+ pkgnames = filename .split ('_' )
150+ version = pkgnames [1 ].replace ('.zip' , '' )
151+ pkgname = pkgnames [0 ]
152+ pkgpath = './sounds/notes/' + pkgname
153+ if not self .verifyVersion (pkgname , version ):
154+ if (version == this .package [pkgName ]['version' ]):
155+ return 3
156+ else :
157+ return 2
158+ else :
159+
160+ os .system ('unzip -o ' + './updatePackages/' + filename + " -d ./updatePackages" )
161+
162+ os .system ('mkdir ' + pkgpath )
163+ os .system ('mv ./updatePackages/' + pkgname + "/" + 'audio.wav ' + pkgpath + '/' )
164+
165+ with open ('./updatePackages/' + pkgname + '/' + pkgname + '.json' ) as json_file :
166+ print ("adding " + pkgname + " package" )
167+ data = json .load (json_file )
168+ for p in data ['packages' ]:
169+ package = data ['packages' ][p ]
170+ mp = MusicPackage (p ,package ['category' ],package ['name_IT' ],package ['name_EN' ],package ['version' ],package ['date' ])
171+ for i in package ['interface' ]:
172+ interfaceItem = package ['interface' ][i ]
173+ mpi = MusicPackageInterface (i ,interfaceItem ['available' ],interfaceItem ['icon' ])
174+ mp .addInterface (mpi )
175+
176+ self .packages [p ] = mp
177+
178+ self .updatePackages ()
179+
180+ os .system ('rm -rf ./updatePackages/' + pkgname )
181+ return 1
144182
145183
146184 def isPackageAvailable (self ,namePackage ):
0 commit comments