Files
something-erlang/lib/something_erlang/awful_api/client.ex
2022-08-02 13:52:21 +02:00

30 lines
840 B
Elixir

defmodule SomethingErlang.AwfulApi.Client do
@base_url "https://forums.somethingawful.com/"
@user_agent "SomethingErlangClient/0.1"
def thread_doc(id, page, user) do
resp = new_request(user) |> get_thread(id, page)
:unicode.characters_to_binary(resp.body, :latin1)
end
defp cookies(args) when is_map(args) do
Enum.map_join(args, "; ", fn {k, v} -> "#{k}=#{v}" end)
end
defp get_thread(req, id, page \\ 1) do
url = "showthread.php"
params = [threadid: id, pagenumber: page]
Req.get!(req, url: url, params: params)
end
defp new_request(user) do
Req.new(
base_url: @base_url,
user_agent: @user_agent,
cache: true,
headers: [cookie: [cookies(%{bbuserid: user.id, bbpassword: user.hash})]]
)
# |> Req.Request.append_request_steps(inspect: &IO.inspect/1)
end
end