aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Baumgartner <dev@igsor.net>2023-02-08 21:16:55 +0100
committerMatthias Baumgartner <dev@igsor.net>2023-02-08 21:16:55 +0100
commitf39d577421bc2e4b041b5d22e788f4615ef78d77 (patch)
tree417f4fe5af06bfeb028e96c809bb23bf58bb4e29
parente4b98fb261c83588ca1151a1c3f8891965051b2f (diff)
downloadtagit-f39d577421bc2e4b041b5d22e788f4615ef78d77.tar.gz
tagit-f39d577421bc2e4b041b5d22e788f4615ef78d77.tar.bz2
tagit-f39d577421bc2e4b041b5d22e788f4615ef78d77.zip
adapt to upstream changes
-rw-r--r--tagit/apps/port-schema.nt5
-rw-r--r--tagit/apps/port_data.py22
-rw-r--r--tagit/widgets/browser.py10
3 files changed, 22 insertions, 15 deletions
diff --git a/tagit/apps/port-schema.nt b/tagit/apps/port-schema.nt
index 2b354e5..7569052 100644
--- a/tagit/apps/port-schema.nt
+++ b/tagit/apps/port-schema.nt
@@ -19,10 +19,11 @@ bsfs:Tag rdfs:subClassOf bsfs:Node .
bsfs:Group rdfs:subClassOf bsfs:Node .
# common definitions
-bsfs:Blob rdfs:subClassOf bsfs:Literal .
+bsfs:BinaryBlob rdfs:subClassOf bsfs:Literal .
bsfs:URI rdfs:subClassOf bsfs:Literal .
bsfs:Number rdfs:subClassOf bsfs:Literal .
bsfs:Time rdfs:subClassOf bsfs:Literal .
+bsfs:JPEG rdfs:subClassOf bsfs:BinaryBlob .
xsd:string rdfs:subClassOf bsfs:Literal .
xsd:integer rdfs:subClassOf bsfs:Number .
@@ -101,7 +102,7 @@ bsp:orientation rdfs:subClassOf bsfs:Predicate ;
bsp:asset rdfs:subClassOf bsfs:Predicate ;
rdfs:domain bsfs:Preview ;
- rdfs:range xsd:string ; # FIXME: mb/port
+ rdfs:range bsfs:JPEG ;
bsfs:unique "true"^^xsd:boolean .
diff --git a/tagit/apps/port_data.py b/tagit/apps/port_data.py
index 56fb522..cda2d63 100644
--- a/tagit/apps/port_data.py
+++ b/tagit/apps/port_data.py
@@ -52,76 +52,76 @@ def add_port_data(store):
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent01_w100_h100.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent01_w100_h100.jpg'), 'rb').read())
)
n0.set(ns.bse.preview,
store.node(ns.bsfs.Preview, str('http://example.com/me/preview#ent01_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent01_w400_h200.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent01_w400_h200.jpg'), 'rb').read())
)
n0.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent01_w400_h400')) \
.set(ns.bsp.width, 400) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent01_w400_h400.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent01_w400_h400.jpg'), 'rb').read())
)
n1.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent02_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent02_w100_h100.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent02_w100_h100.jpg'), 'rb').read())
)
n1.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent02_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent02_w400_h200.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent02_w400_h200.jpg'), 'rb').read())
)
n2.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent03_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent03_w100_h100.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent03_w100_h100.jpg'), 'rb').read())
)
n2.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent03_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent03_w400_h200.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent03_w400_h200.jpg'), 'rb').read())
)
n3.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent04_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent04_w100_h100.png')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent04_w100_h100.png'), 'rb').read())
)
n3.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent04_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent04_w400_h200.png')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent04_w400_h200.png'), 'rb').read())
)
n4.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent05_w100_h100')) \
.set(ns.bsp.width, 100) \
.set(ns.bsp.height, 100) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent05_w100_h100.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent05_w100_h100.jpg'), 'rb').read())
)
n4.set(ns.bse.preview,
store.node(ns.bsfs.Preview, URI('http://example.com/me/preview#ent05_w400_h200')) \
.set(ns.bsp.width, 200) \
.set(ns.bsp.height, 400) \
.set(ns.bsp.orientation, 1) \
- .set(ns.bsp.asset, str(os.path.join(base, 'ent05_w400_h200.jpg')))
+ .set(ns.bsp.asset, open(os.path.join(base, 'ent05_w400_h200.jpg'), 'rb').read())
)
diff --git a/tagit/widgets/browser.py b/tagit/widgets/browser.py
index 4a254ee..1e42c9c 100644
--- a/tagit/widgets/browser.py
+++ b/tagit/widgets/browser.py
@@ -7,6 +7,7 @@ Author: Matthias Baumgartner, 2022
# standard imports
from collections import defaultdict
from functools import reduce, partial
+import io
import logging
import math
import operator
@@ -421,8 +422,13 @@ class Browser(GridLayout, StorageAwareMixin, ConfigAwareMixin):
# select the best fitting preview
chosen = rmatcher.by_area_min(resolution, options)
# open the preview file, default if no asset is available
- thumb = open(chosen.get(ns.bsp.asset, default=default), 'rb') # FIXME: mb/port: asset storage
- except IndexError:
+ thumb_data = chosen.asset(default=None) # FIXME: get all assets in one call
+ if thumb_data is None:
+ raise KeyError()
+ thumb = io.BytesIO(thumb_data)
+
+ except (KeyError, IndexError):
+ # KeyError:
# no viable resolution found
thumb = open(default, 'rb')
# update the image in the child widget