summaryrefslogtreecommitdiff
path: root/animism-align/cli
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-10-12 18:38:42 +0200
committerJules Laplace <julescarbon@gmail.com>2020-10-12 18:38:42 +0200
commit4368c66b4efddbda87335c42d82dc562629bd0e9 (patch)
tree1b09a26108966388bc57ea2217a0f7bea588ce7a /animism-align/cli
parent3fbc92d236e243ad23b0bba8aa7399ea2384b1cd (diff)
adding splice function
Diffstat (limited to 'animism-align/cli')
-rw-r--r--animism-align/cli/app/controllers/annotation_controller.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/animism-align/cli/app/controllers/annotation_controller.py b/animism-align/cli/app/controllers/annotation_controller.py
index cd70d80..757f1e3 100644
--- a/animism-align/cli/app/controllers/annotation_controller.py
+++ b/animism-align/cli/app/controllers/annotation_controller.py
@@ -26,3 +26,39 @@ class AnnotationView(CrudView):
item.start_ts = form['start_ts']
if 'settings' in form:
item.settings = form['settings']
+
+ def splice(self):
+ """Add or remove time"""
+ session = Session()
+
+ try:
+ start_ts = float(args.get('start_ts'))
+ except:
+ print("Annotation splice: duration is invalid")
+ session.close()
+ return
+
+ try:
+ duration = float(args.get('duration'))
+ except:
+ print("Annotation splice: duration is invalid")
+ session.close()
+ return
+
+ query = session.query(self.model)
+ query = query.filter(Annotation.start_ts > form['start_ts'])
+ items = query.all()
+
+ print(f"{len(items)} annotations would be updated")
+
+ for item in items:
+ item.start_ts += duration
+ # session.add(item)
+ # session.commit()
+
+ res = {
+ 'status': 'ok',
+ 'items': len(items),
+ }
+ session.close()
+ return jsonify(res)