Skip to content

Commit c95e992

Browse files
authored
Merge pull request #28 from Garulf/fix-auth-user-repo-search
Fix auth user repo search
2 parents 523af95 + ddc98b7 commit c95e992

5 files changed

Lines changed: 829 additions & 300 deletions

File tree

src/query.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,34 @@
22
from pyflowlauncher.result import ResultResponse, send_results
33
from pyflowlauncher.jsonrpc import JsonRPCClient
44

5-
import results
5+
from results import repo_results, scored_repo_results
66

77
STARS_PREFIX = "*"
88
SEPERATOR = "/"
99

10+
PER_PAGE = 100
11+
SEARCH_LIMIT = 15
1012

11-
def query(query: str) -> ResultResponse:
12-
if not query:
13-
return send_results([])
1413

14+
def query(query: str) -> ResultResponse:
1515
settings = JsonRPCClient().recieve().get("settings", {})
1616
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)
1818

1919
repo_query = query
2020
parsed_query = query.split(SEPERATOR)
2121

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])
2633
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)

src/results.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ def repo_result(repo: Repository) -> Result:
2121

2222

2323
def repo_results(repos: PaginatedList) -> Generator[Result, None, None]:
24-
for repo in repos.get_page(0):
24+
for repo in repos:
2525
yield repo_result(repo)
2626

2727

28-
def starred_repo_results(query: str, repos: PaginatedList) -> Generator[Result, None, None]:
28+
def scored_repo_results(query: str, repos: PaginatedList) -> Generator[Result, None, None]:
2929
yield from score_results(query, repo_results(repos), match_on_empty_query=True)
3030

3131

0 commit comments

Comments
 (0)