diff options
Diffstat (limited to 'src/helpers.cr')
| -rw-r--r-- | src/helpers.cr | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/helpers.cr b/src/helpers.cr index 4f671e46..c253cd89 100644 --- a/src/helpers.cr +++ b/src/helpers.cr @@ -243,31 +243,31 @@ end def make_client(url, context) client = HTTP::Client.new(url, context) - client.read_timeout = 30.seconds - client.connect_timeout = 30.seconds + client.read_timeout = 10.seconds + client.connect_timeout = 10.seconds return client end -def get_reddit_comments(id, client) +def get_reddit_comments(id, client, headers) query = "(url:3D#{id}%20OR%20url:#{id})%20(site:youtube.com%20OR%20site:youtu.be)" - search_results = client.get("/search.json?q=#{query}") + search_results = client.get("/search.json?q=#{query}", headers) - if search_results.status_code == 302 - search_results = client.get(search_results.headers["Location"]).body - - result = JSON.parse(search_results) - - thread = RedditThread.from_json(result[0]["data"]["children"][0].to_json) - else + if search_results.status_code == 200 search_results = RedditSubmit.from_json(search_results.body) thread = search_results.data.children.sort_by { |child| child.data.score }[-1] - - result = client.get("/r/#{thread.data.subreddit}/comments/#{thread.data.id}?sort=top&depth=3").body + result = client.get("/r/#{thread.data.subreddit}/comments/#{thread.data.id}?sort=top&depth=3", headers).body result = JSON.parse(result) + elsif search_results.status_code == 302 + search_results = client.get(search_results.headers["Location"], headers).body + + result = JSON.parse(search_results) + thread = RedditThread.from_json(result[0]["data"]["children"][0].to_json) + else + raise "Got error code #{search_results.status_code}" end - comments = result[1]["data"]["children"] + comments = result[1]["data"]["children"] return comments, thread end |
