|
2 | 2 | from pyflowlauncher.result import ResultResponse, send_results |
3 | 3 | from pyflowlauncher.jsonrpc import JsonRPCClient |
4 | 4 |
|
5 | | -import results |
| 5 | +from results import repo_results, scored_repo_results |
6 | 6 |
|
7 | 7 | STARS_PREFIX = "*" |
8 | 8 | SEPERATOR = "/" |
9 | 9 |
|
| 10 | +PER_PAGE = 100 |
| 11 | +SEARCH_LIMIT = 15 |
10 | 12 |
|
11 | | -def query(query: str) -> ResultResponse: |
12 | | - if not query: |
13 | | - return send_results([]) |
14 | 13 |
|
| 14 | +def query(query: str) -> ResultResponse: |
15 | 15 | settings = JsonRPCClient().recieve().get("settings", {}) |
16 | 16 | token = settings.get("token", None) or None |
17 | | - gh = Github(login_or_token=token, per_page=15) |
| 17 | + gh = Github(login_or_token=token, per_page=PER_PAGE) |
18 | 18 |
|
19 | 19 | repo_query = query |
20 | 20 | parsed_query = query.split(SEPERATOR) |
21 | 21 |
|
22 | | - if query.startswith(STARS_PREFIX) and token: |
23 | | - stars = query[1:] |
24 | | - repos = gh.get_user().get_starred() |
25 | | - return send_results(results.starred_repo_results(stars, repos)) |
| 22 | + if token: |
| 23 | + if query.startswith("/") or query == "": |
| 24 | + repos = gh.get_user().get_repos() |
| 25 | + return send_results(scored_repo_results(query, repos)) |
| 26 | + elif query.startswith(STARS_PREFIX): |
| 27 | + query = query[1:] |
| 28 | + repos = gh.get_user().get_starred() |
| 29 | + return send_results(scored_repo_results(query, repos)) |
| 30 | + if len(parsed_query) == 2: |
| 31 | + user, repo_query = parsed_query |
| 32 | + results = repo_results(gh.search_repositories(f"user:{user} {repo_query}")[:SEARCH_LIMIT]) |
26 | 33 | else: |
27 | | - if len(parsed_query) > 1: |
28 | | - user, search = parsed_query |
29 | | - if not user and token is not None: |
30 | | - user = gh.get_user().login |
31 | | - if user: |
32 | | - repo_query = f"user:{user} {search}" |
33 | | - repos = gh.search_repositories(repo_query) |
34 | | - return send_results(results.repo_results(repos)) |
| 34 | + results = repo_results(gh.search_repositories(repo_query)[:SEARCH_LIMIT]) |
| 35 | + return send_results(results) |
0 commit comments