Skip to content

Commit 81d12c1

Browse files
author
Anonymous Committer
committed
feat: add search api
1 parent fbc8476 commit 81d12c1

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed

justoneapi/apis/search.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from justoneapi.apis import request_util
2+
from justoneapi.log import logger
3+
4+
5+
class SearchAPI:
6+
def __init__(self, token: str, base_url: str):
7+
self.token = token
8+
self.base_url = base_url
9+
10+
def search_v1(self, keyword: str = None, source: str = None, start: str = None, end: str = None, next_cursor: str = None):
11+
url = f"{self.base_url}/api/search/v1"
12+
params = {
13+
"token": self.token,
14+
}
15+
if keyword:
16+
params["keyword"] = keyword
17+
if source:
18+
params["source"] = source
19+
if start:
20+
params["start"] = start
21+
if end:
22+
params["end"] = end
23+
if next_cursor:
24+
params["nextCursor"] = next_cursor
25+
26+
has_next_page = False
27+
result, data, message = request_util.get_request_page(url, params)
28+
try:
29+
if data.get("nextCursor"):
30+
has_next_page = True
31+
except Exception as e:
32+
logger.warning(f"Pagination parse error at {url}. Contact us to fix it.")
33+
return result, data, message, has_next_page

justoneapi/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from justoneapi.apis.bilibili import BilibiliAPI
33
from justoneapi.apis.douyin import DouyinAPI
44
from justoneapi.apis.kuaishou import KuaishouAPI
5+
from justoneapi.apis.search import SearchAPI
56
from justoneapi.apis.taobao import TaobaoAPI
67
from justoneapi.apis.user import UserAPI
78
from justoneapi.apis.weibo import WeiboAPI
@@ -26,3 +27,4 @@ def __init__(self, token: str, env: str = "cn"):
2627
self.kuaishou = KuaishouAPI(self.token, self.base_url)
2728
self.weibo = WeiboAPI(self.token, self.base_url)
2829
self.bilibili = BilibiliAPI(self.token, self.base_url)
30+
self.search = SearchAPI(self.token, self.base_url)

tests/test_search.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import json
2+
import os
3+
from unittest import TestCase
4+
5+
from justoneapi.client import JustOneAPIClient
6+
7+
8+
class TestSearchAPI(TestCase):
9+
client = JustOneAPIClient(token=os.environ.get("JUSTONEAPI_TOKEN"))
10+
11+
def test_search_v1(self):
12+
result, data, message, has_next_page = self.client.search.search_v1(keyword="deepseek", source="XIAOHONGSHU", start="2025-07-10 00:00:00", end="2025-08-10 00:00:00")
13+
if result:
14+
print(json.dumps(data, ensure_ascii=False))

0 commit comments

Comments
 (0)