Skip to content

Commit 5763bc8

Browse files
committed
add default activity init
1 parent 55023d5 commit 5763bc8

File tree

3 files changed

+64
-26
lines changed

3 files changed

+64
-26
lines changed

activity.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from tinydb import TinyDB, Query
2+
from tinydb.operations import delete
3+
4+
# Programs and Activities databases
5+
class Activities():
6+
_instance = None
7+
8+
@classmethod
9+
def get_instance(cls):
10+
if cls._instance == None:
11+
cls._instance = Activities()
12+
return cls._instance
13+
14+
def __init__(self):
15+
self.activities = TinyDB("data/activities.json")
16+
self.query = Query()
17+
18+
def load(self, name):
19+
return self.activities.search(self.query.name == name)[0]
20+
21+
def save(self, activity):
22+
if self.activities.search(self.query.name == activity["name"]) == []:
23+
self.activities.insert(activity)
24+
else:
25+
self.activities.update(activity, self.query.name == activity["name"])
26+
27+
def delete(self, activity):
28+
activities.remove(self.query.name == activity["name"])
29+
30+
31+
def list(self):
32+
return self.activities.all()
33+
34+
def init_default(self):
35+
activities_collection = self.activities.search(self.query.stock == True)
36+
if len(activities_collection) == 0:
37+
activity = {
38+
"name": "default",
39+
"stock": True,
40+
"codeFont": 'ubuntumono',
41+
"description": None,
42+
"drawerEnabled": True,
43+
"exec": {
44+
"camera": True,
45+
"log": True,
46+
},
47+
"fontSize": 'Medio',
48+
"showName": True,
49+
"maxBlocks": None,
50+
}
51+
self.save(activity)
52+

api.py

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,14 @@
88
import json
99
import logging
1010
import connexion
11-
from tinydb import TinyDB, Query
12-
from tinydb.operations import delete
11+
import pigpio
1312
from cachetools import cached, TTLCache
1413
from coderbot import CoderBot
1514
from program import ProgramEngine, Program
1615
from config import Config
16+
from activity import Activities
1717
from coderbotTestUnit import run_test as runCoderbotTestUnit
1818
from cnn_manager import CNNManager
19-
import pigpio
2019
from musicPackages import MusicPackageManager
2120

2221
BUTTON_PIN = 16
@@ -27,8 +26,6 @@
2726
encoder=bool(bot_config.get("encoder"))
2827
)
2928

30-
query = Query()
31-
3229
def get_serial():
3330
"""
3431
Extract serial from cpuinfo file
@@ -110,8 +107,7 @@ def get_info():
110107
prog = None
111108
prog_engine = ProgramEngine.get_instance()
112109

113-
# Programs and Activities databases
114-
activities = TinyDB("data/activities.json")
110+
activities = Activities.get_instance()
115111

116112
## Robot control
117113

@@ -247,23 +243,17 @@ def listPrograms():
247243
## Activities
248244

249245
def saveActivity(data):
250-
data = data["activity"]
251-
if activities.search(query.name == data["name"]) == []:
252-
activities.insert(data)
253-
return 200
254-
else:
255-
activities.update(data, query.name == data["name"])
256-
return 200
246+
activity = data["activity"]
247+
activities.save(activity)
257248

258249
def loadActivity(name):
259-
return activities.search(query.name == name)[0], 200
250+
return activities.load(name)
260251

261252
def deleteActivity(data):
262-
activities.remove(query.name == data["name"])
263-
253+
activities.delete(data), 200
264254

265255
def listActivities():
266-
return activities.all()
256+
return activities.list()
267257

268258
def resetDefaultPrograms():
269259
"""

main.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
from event import EventManager
3333
from audioControls import AudioCtrl
3434
from musicPackages import MusicPackageManager
35+
from activity import Activities
36+
3537
# Logging configuration
3638
logger = logging.getLogger()
3739
logger.setLevel(logging.INFO)
@@ -484,14 +486,8 @@ def run_server():
484486
EventManager.get_instance("coderbot")
485487

486488
# Programs and Activities databases
487-
activities = TinyDB("data/activities.json")
488-
activities_collection = activities.search(query.stock == True)
489-
if len(activities_collection) == 0:
490-
activity = {
491-
name: "default"
492-
stock: True
493-
}
494-
activities.insert(activity)
489+
activities = Activities.get_instance()
490+
activities.init_default()
495491

496492
if app.bot_config.get('load_at_start') and app.bot_config.get('load_at_start'):
497493
prog = app.prog_engine.load(app.bot_config.get('load_at_start'))

0 commit comments

Comments
 (0)