Skip to content

Commit c90ccf8

Browse files
committed
fix music package removal
1 parent d88b342 commit c90ccf8

File tree

4 files changed

+55
-30
lines changed

4 files changed

+55
-30
lines changed

api.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import os
77
import subprocess
88
import json
9+
import logging
910
import connexion
1011
from tinydb import TinyDB, Query
1112
from tinydb.operations import delete
@@ -187,7 +188,7 @@ def listMusicPackages():
187188
"""
188189
musicPkg = MusicPackageManager.get_instance()
189190
response = musicPkg.listPackages()
190-
return json.dumps(response.__dict__)
191+
return json.dumps(response)
191192

192193
def updateMusicPackages():
193194
"""
@@ -209,6 +210,14 @@ def updateMusicPackages():
209210
elif response == 3:
210211
return 400
211212

213+
def deleteMusicPackage(package_data):
214+
"""
215+
Delete a musical package an save the list of available packages on disk
216+
also delete package sounds and directory
217+
"""
218+
musicPkg = MusicPackageManager.get_instance()
219+
musicPkg.deletePackage(package_data['package_name'])
220+
return 200
212221

213222
## Programs
214223

main.py

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -162,17 +162,6 @@ def handle_config():
162162
app.bot_config = Config.get()
163163
return "ok"
164164

165-
@app.route("/deletepkg", methods=["POST"])
166-
def handle_packages():
167-
"""
168-
Delete a musical package an save the list of available packages on disk
169-
also delete package sounds and directory
170-
"""
171-
packageName = request.form.get("nameID")
172-
musicPkg = MusicPackageManager.get_instance()
173-
musicPkg.deletePackage(packageName)
174-
return "package deleted"
175-
176165
@app.route("/config", methods=["GET"])
177166
def returnConfig():
178167
"""

musicPackages.py

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@
2828

2929
import json
3030
import os
31+
import logging
32+
import copy
3133

3234
class MusicPackage:
3335

34-
def __init__(self, nameID, category, name_IT,n ame_EN, version, date):
36+
def __init__(self, nameID, category, name_IT, name_EN, version, date):
3537
self.nameID = nameID
3638
self.category = category
3739
self.name_IT = name_IT
@@ -87,7 +89,6 @@ class MusicPackageManager:
8789
def get_instance(cls):
8890
if cls._instance is None:
8991
cls._instance = MusicPackageManager()
90-
print("make MusicPackageManager")
9192
return cls._instance
9293

9394
def __init__(self):
@@ -107,7 +108,14 @@ def __init__(self):
107108
self.packages[p] = mp
108109

109110
def listPackages(self):
110-
return self.packages
111+
packages_serializable = dict()
112+
for name, package in self.packages.items():
113+
package_copy = copy.deepcopy(package)
114+
packages_serializable[name] = package_copy.__dict__
115+
packages_serializable[name]['interfaces'] = []
116+
for i in package.interfaces:
117+
packages_serializable[name]['interfaces'].append(i.__dict__)
118+
return packages_serializable
111119

112120
def updatePackages(self):
113121
newdict = { 'packages': {} }
@@ -128,25 +136,26 @@ def updatePackages(self):
128136
newdict['packages'][nameID]['interface']['advanced']['icon'] = self.packages[element].getInterfaces()[2].getIcon()
129137

130138
#json_packages = json.dumps(newdict)
131-
with open('./dist/static/music_package.json', 'w', encoding='utf-8') as json_file:
139+
with open('sounds/notes/music_package.json', 'w', encoding='utf-8') as json_file:
132140
json.dump(newdict, json_file, ensure_ascii=False, indent=4)
133141

134142

135143
def deletePackage(self, packageName):
136-
if packageName in self.packages:
137-
del self.packages[packageName]
138-
self.updatePackages()
139-
else:
140-
print("errore, il pacchetto " + packageName + " non è stato trovato")
141-
return 2
144+
logging.info("packageName: " + packageName)
145+
if packageName in self.packages:
146+
del self.packages[packageName]
147+
self.updatePackages()
148+
else:
149+
logging.error("errore, il pacchetto " + packageName + " non è stato trovato")
150+
return 2
142151

143-
if os.path.exists('./sounds/notes/' + packageName):
144-
os.system('rm -rf ./sounds/notes/' + packageName)
145-
return 1
152+
if os.path.exists('./sounds/notes/' + packageName):
153+
os.system('rm -rf ./sounds/notes/' + packageName)
154+
return 1
146155

147156

148157
def verifyVersion(self, packageName, version):
149-
print("verifica pacchetto")
158+
logging.info("verifica pacchetto")
150159
#newversionList = version.split('.')
151160
if packageName not in self.packages:
152161
return True
@@ -169,15 +178,15 @@ def verifyVersion(self, packageName, version):
169178
def addPackage(self, filename):
170179
pkgnames = filename.split('_')
171180
version = pkgnames[1].replace('.zip', '')
172-
print(version)
181+
logging.info("Music Package version: " + version)
173182
pkgname = pkgnames[0]
174183
pkgpath = './sounds/notes/' + pkgname
175184
if not self.verifyVersion(pkgname, version):
176185
if (version == self.packages[pkgname].getVersion()):
177-
print("errore, il pacchetto " + pkgname + " ha versione identica a quello attualmente installato")
186+
logging.error("errore, il pacchetto " + pkgname + " ha versione identica a quello attualmente installato")
178187
return 3
179188
else:
180-
print("errore, il pacchetto " + pkgname + " ha versione precendente a quello attualmente installato")
189+
logging.info("errore, il pacchetto " + pkgname + " ha versione precendente a quello attualmente installato")
181190
return 2
182191
else:
183192

@@ -187,7 +196,7 @@ def addPackage(self, filename):
187196
os.system('mv ./updatePackages/' + pkgname + "/" + 'audio.wav ' + pkgpath + '/')
188197

189198
with open('./updatePackages/' + pkgname + '/' + pkgname + '.json') as json_file:
190-
print("adding " + pkgname + " package")
199+
logging.info("adding " + pkgname + " package")
191200
data = json.load(json_file)
192201
for p in data['packages']:
193202
package = data['packages'][p]

v2.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,24 @@ paths:
8181
responses:
8282
200:
8383
description: "ok"
84+
/deleteMusicPackage:
85+
post:
86+
operationId: "api.deleteMusicPackage"
87+
summary: "Delete Music Package"
88+
parameters:
89+
- name: package_data
90+
in: body
91+
schema:
92+
type: object
93+
properties:
94+
package_name:
95+
type: string
96+
responses:
97+
200:
98+
description: "ok"
99+
400:
100+
description: "not found"
101+
84102
/updateFromPackage:
85103
post:
86104
operationId: "api.updateFromPackage"

0 commit comments

Comments
 (0)