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