@@ -78,6 +78,7 @@ def get_extensions_route() -> dict[str, Any]:
7878 Returns all extensions
7979
8080 Query params:
81+ * q: string. Full-text search query across project path and description.
8182 * versions: string. Version of Ulauncher Extension API.
8283 Could be comma-separated list of versions.
8384 Returns all extensions if not specified.
@@ -87,6 +88,10 @@ def get_extensions_route() -> dict[str, Any]:
8788 versions_query = request .GET .get ("versions" )
8889 versions : list [str ] = versions_query .split ("," ) if versions_query else []
8990 try :
91+ q = request .GET .get ("q" )
92+ search_query = q .strip () if q is not None else None
93+ if q is not None :
94+ assert search_query , 'query argument "q" cannot be empty'
9095 sort_by = request .GET .get ("sort_by" ) or allowed_sort_by [0 ]
9196 sort_order = request .GET .get ("sort_order" ) or allowed_sort_order [0 ]
9297 assert sort_by in allowed_sort_by , "allowed sorty_by: " + ", " .join (allowed_sort_by )
@@ -100,7 +105,14 @@ def get_extensions_route() -> dict[str, Any]:
100105 except (AssertionError , ValueError ) as e :
101106 return ErrorResponse (e , 400 ) # type: ignore
102107
103- result = get_extensions (offset = offset , limit = limit , sort_by = sort_by , sort_order = int (sort_order ), versions = versions )
108+ result = get_extensions (
109+ offset = offset ,
110+ limit = limit ,
111+ sort_by = sort_by ,
112+ sort_order = int (sort_order ),
113+ versions = versions ,
114+ search_query = search_query ,
115+ )
104116
105117 return {"data" : result ["data" ], "offset" : offset , "has_more" : result ["has_more" ]}
106118
0 commit comments