Skip to content

Commit 35f5b0b

Browse files
committed
Improve kv-search, when non-kv terms present
- Just simple terms: Join them with sql wildcard (%) and apply on "title" field - Just kv, keep as-is - Both: - title present already: append non-kv terms to title (if spaces in original this could be a problem. FIXME replace them?) - title not present already: simply add non-kv terms %-joined to title field
1 parent 45db6b0 commit 35f5b0b

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

discodos/ctrl/collection.py

+19-4
Original file line numberDiff line numberDiff line change
@@ -1217,10 +1217,25 @@ def remove_and_delete_sales_listing(self, listing_id):
12171217

12181218
def prepare_key_value_search(self, query):
12191219
"""Returns a dictionary from space-delimited key=value pairs."""
1220-
return dict([
1221-
item.split("=") if "=" in item else ["title", item]
1222-
for item in query
1223-
])
1220+
kv = {}
1221+
non_kv = []
1222+
for item in query:
1223+
if "=" in item:
1224+
key, value = item.split("=")
1225+
kv[key] = value
1226+
else:
1227+
non_kv.append(item)
1228+
1229+
if non_kv:
1230+
if not kv:
1231+
kv = {"title": "%".join(non_kv)}
1232+
elif "title" in kv:
1233+
kv_title = kv["title"].replace(" ", "%")
1234+
non_kv_terms = "%".join(non_kv)
1235+
kv["title"] = f"{kv_title}%{non_kv_terms}"
1236+
else:
1237+
kv["title"] = "%".join(non_kv)
1238+
return kv
12241239

12251240
def tui_ls_releases(
12261241
self, search_terms, orderby=None, reverse_order=False, sales_extra=False

0 commit comments

Comments
 (0)