Skip to content

Commit b58a8cf

Browse files
committed
feat: empty search query
solves #432
1 parent 10cec0e commit b58a8cf

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

scratchattach/site/session.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -496,9 +496,11 @@ def search_projects(self, *, query: str = "", mode: str = "trending", language:
496496
Returns:
497497
list<scratchattach.project.Project>: List that contains the search results.
498498
"""
499+
query = f"&q={query}" if query else ""
500+
499501
response = commons.api_iterative(
500502
f"https://api.scratch.mit.edu/search/projects", limit=limit, offset=offset,
501-
add_params=f"&language={language}&mode={mode}&q={query}")
503+
add_params=f"&language={language}&mode={mode}{query}")
502504
return commons.parse_object_list(response, project.Project, self)
503505

504506
def explore_projects(self, *, query: str = "*", mode: str = "trending", language: str = "en", limit: int = 40,
@@ -526,20 +528,19 @@ def explore_projects(self, *, query: str = "*", mode: str = "trending", language
526528

527529
def search_studios(self, *, query: str = "", mode: str = "trending", language: str = "en", limit: int = 40,
528530
offset: int = 0) -> list[studio.Studio]:
529-
if not query:
530-
raise ValueError("The query can't be empty for search")
531+
query = f"&q={query}" if query else ""
532+
531533
response = commons.api_iterative(
532534
f"https://api.scratch.mit.edu/search/studios", limit=limit, offset=offset,
533-
add_params=f"&language={language}&mode={mode}&q={query}")
535+
add_params=f"&language={language}&mode={mode}{query}")
534536
return commons.parse_object_list(response, studio.Studio, self)
535537

536538
def explore_studios(self, *, query: str = "", mode: str = "trending", language: str = "en", limit: int = 40,
537539
offset: int = 0) -> list[studio.Studio]:
538-
if not query:
539-
raise ValueError("The query can't be empty for explore")
540+
query = f"&q={query}" if query else ""
540541
response = commons.api_iterative(
541542
f"https://api.scratch.mit.edu/explore/studios", limit=limit, offset=offset,
542-
add_params=f"&language={language}&mode={mode}&q={query}")
543+
add_params=f"&language={language}&mode={mode}{query}")
543544
return commons.parse_object_list(response, studio.Studio, self)
544545

545546
# --- Create project API ---

tests/test_search.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import sys
2+
3+
4+
def test_search():
5+
sys.path.insert(0, ".")
6+
import scratchattach as sa
7+
from util import session
8+
sess = session()
9+
10+
print(sess.search_projects())
11+
print(sess.explore_projects())
12+
print(sess.search_studios())
13+
print(sess.explore_studios())
14+
15+
if __name__ == "__main__":
16+
test_search()

0 commit comments

Comments
 (0)