andygrunwald / andygrunwald/go-trending

Project.Stars returns total stargazers instead of trending stars

Open
#67 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
147
Forks
21
PR merge metrics
No merged PRs in 30d

Description

### Bug
`Project.Stars` is documented as "the number of GitHub stars this project received in the given timeframe", but the parser currently extracts the **total** stargazer count from the repository link instead of the "stars today/week/month" value shown on the trending page.

### Where it happens
In `GetProjects`, the code uses:
```go
starsString := s.Find("div a[href$=\"/stargazers\"]").Text()
```
This selects the total stargazer link (e.g. `5,096` in `testdata/github.com_trending.html`). The trending delta is in the trailing span (e.g. `1,582 stars today`).

### Repro (using bundled testdata)
1. Parse `testdata/github.com_trending.html`.
2. For `smol-ai/developer`, the HTML shows `5,096` total stars but `1,582 stars today`.
3. `Project.Stars` becomes `5096`, not `1582`, which contradicts the doc comment and expected timeframe semantics.

### Expected
`Project.Stars` should reflect the timeframe stars (e.g. `1,582`), matching the docstring and GitHub’s trending UI.

### Suggested fix
Parse the trailing "stars today/week/month" span (e.g. `span.d-inline-block.float-sm-right`) and extract the numeric portion (strip commas). If you prefer to keep total stars, please update the docstring to avoid the mismatch.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.