Current section

Files

Jump to
still lib still site github.ex
Raw

lib/still/site/github.ex

if Mix.env() != :prod do
defmodule Still.Site.Github do
@moduledoc false
@rate_limited_stargazers 418
@rate_limited_username "@ratelimited"
@rate_limited_url "https://picsum.photos/400"
def stars do
{:ok, {_, _, body}} =
:httpc.request(
:get,
{"https://api.github.com/repos/still-ex/still",
[
{'Accept', 'application/vnd.github.v3+json'},
{'User-Agent',
'Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0'}
]},
[],
[]
)
body
|> Jason.decode!()
|> Map.get("stargazers_count", @rate_limited_stargazers)
end
def contributors do
{:ok, {_, _, body}} =
:httpc.request(
:get,
{"https://api.github.com/repos/still-ex/still/contributors",
[
{'Accept', 'application/vnd.github.v3+json'},
{'User-Agent',
'Mozilla/5.0 (X11; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0'}
]},
[],
[]
)
body
|> Jason.decode!()
|> Enum.map(fn
%{"login" => _} = user ->
%{
username: "@#{user["login"]}",
url: user["html_url"],
avatar_url: user["avatar_url"]
}
_error ->
%{
username: @rate_limited_username,
url: @rate_limited_url,
avatar_url: @rate_limited_url
}
end)
end
end
end