diff --git a/app.rb b/app.rb index 768e358..4a7d77c 100644 --- a/app.rb +++ b/app.rb @@ -1045,7 +1045,7 @@ elsif /(?:(?:imgur|reddit)\.com)?\/?r\/(?[a-zA-Z0-9_]+)/ =~ params[:q] # https://imgur.com/r/aww # https://www.reddit.com/r/aww - redirect "/imgur/r/#{subreddit}" + redirect "/imgur/r/#{subreddit}#{"?#{params[:type]}" if !params[:type].empty?}" return elsif /(?[a-zA-Z0-9]+)\.imgur\.com/ =~ params[:q] and username != "i" # https://thebookofgray.imgur.com/ @@ -1079,28 +1079,39 @@ if user_id.nil? "This image was probably uploaded anonymously. Sorry." else - redirect "/imgur/#{user_id}/#{username}" + redirect "/imgur/#{user_id}/#{username}#{"?#{params[:type]}" if !params[:type].empty?}" end end -get "/imgur/r/:subreddit" do - @subreddit = params[:subreddit] - - response = ImgurParty.get("/gallery/r/#{@subreddit}") +get "/imgur/:user_id/:username" do + if params[:user_id] == "r" + @subreddit = params[:username] + response = ImgurParty.get("/gallery/r/#{@subreddit}") + else + @user_id = params[:user_id] + @username = params[:username] + # can't use user_id in this request unfortunately + response = ImgurParty.get("/account/#{@username}/submissions") + end raise ImgurError.new(response) if !response.success? or response.body.empty? @data = response.parsed_response["data"] - erb :imgur_feed -end - -get "/imgur/:user_id/:username" do - @user_id = params[:user_id] - @username = params[:username] - - # can't use user_id in this request unfortunately - response = ImgurParty.get("/account/#{@username}/submissions") - raise ImgurError.new(response) if !response.success? - @data = response.parsed_response["data"] + if params[:animated] + value = params[:animated] == "true" + @data.select! { |image| image["animated"] == value } + end + if params[:nsfw] + value = params[:nsfw] == "true" + @data.select! { |image| image["nsfw"] == value } + end + if params[:is_album] + value = params[:is_album] == "true" + @data.select! { |image| image["is_album"] == value } + end + if params[:min_score] + value = params[:min_score].to_i + @data.select! { |image| image["score"] >= value } + end erb :imgur_feed end diff --git a/views/imgur_feed.erb b/views/imgur_feed.erb index a129b8e..066afa8 100644 --- a/views/imgur_feed.erb +++ b/views/imgur_feed.erb @@ -17,22 +17,36 @@ body = <<-EOF.undent.esc - #{image["description"].to_paragraphs} + #{image["description"].linkify.to_paragraphs}

Download album

EOF else id = "imgur:image:#{image["id"]}" title = "#{image["title"]} [#{image["width"]}x#{image["height"]}]" link = "https://imgur.com/#{image["id"]}" - ext = image["type"].split("/")[1] - img_src = "https://i.imgur.com/#{image["id"]}h.#{ext}" - body = <<-EOF.undent.esc - + if image["gifv"] + title = "Gif: #{title}" + img_src = "https://i.imgur.com/#{image["id"]}.gif" + gifv_url = "#{img_src}v" + body = <<-EOF.undent.esc + +

Open embed

- #{image["description"].to_paragraphs} -

Download

-

Size: #{image["size"].to_filesize} (#{image["width"]}x#{image["height"]})

- EOF + #{image["description"].linkify.to_paragraphs} +

Download

+

Size: #{image["size"].to_filesize} (#{image["width"]}x#{image["height"]})

+ EOF + else + ext = image["type"].split("/")[1] + img_src = "https://i.imgur.com/#{image["id"]}h.#{ext}" + body = <<-EOF.undent.esc + + + #{image["description"].linkify.to_paragraphs} +

Download

+

Size: #{image["size"].to_filesize} (#{image["width"]}x#{image["height"]})

+ EOF + end end -%> diff --git a/views/index.erb b/views/index.erb index 8cbfe0e..8fbf5f6 100644 --- a/views/index.erb +++ b/views/index.erb @@ -215,6 +215,12 @@
+ +