mirror of
https://github.com/moebooru/moebooru
synced 2025-08-22 01:47:48 +00:00
Use native multipart handling
This commit is contained in:
parent
b5fd63dcb2
commit
7b3e1a859c
@ -1,26 +0,0 @@
|
|||||||
require "net/http"
|
|
||||||
|
|
||||||
class Net::HTTP::Post
|
|
||||||
def multipart=(params = [])
|
|
||||||
boundary_token = "--multipart-boundary"
|
|
||||||
self.content_type = "multipart/form-data; boundary=#{boundary_token}"
|
|
||||||
|
|
||||||
self.body = ""
|
|
||||||
params.each do |p|
|
|
||||||
self.body += "--#{boundary_token}\r\n"
|
|
||||||
self.body += "Content-Disposition: form-data; name=#{p[:name]}"
|
|
||||||
self.body += "; filename=#{p[:filename]}" if p[:filename]
|
|
||||||
self.body += "\r\n"
|
|
||||||
if p[:binary]
|
|
||||||
self.body += "Content-Transfer-Encoding: binary\r\n"
|
|
||||||
|
|
||||||
mime_type = MiniMime.lookup_by_filename(p[:filename].to_s).try(:content_type)
|
|
||||||
mime_type ||= "application/octet-stream"
|
|
||||||
|
|
||||||
self.body += "Content-Type: #{mime_type}\r\n"
|
|
||||||
end
|
|
||||||
self.body += "\r\n#{p[:data]}\r\n"
|
|
||||||
end
|
|
||||||
self.body += "--#{boundary_token}--\r\n"
|
|
||||||
end
|
|
||||||
end
|
|
@ -52,23 +52,15 @@ module SimilarImages
|
|||||||
|
|
||||||
params = []
|
params = []
|
||||||
if search_url
|
if search_url
|
||||||
params += [ {
|
params << [ "url", search_url ]
|
||||||
name: "url",
|
|
||||||
data: search_url
|
|
||||||
} ]
|
|
||||||
else
|
else
|
||||||
params += [ {
|
params << [ "file", source_file, filename: File.basename(source_filename) ]
|
||||||
name: "file",
|
|
||||||
binary: true,
|
|
||||||
data: source_file,
|
|
||||||
filename: File.basename(source_filename)
|
|
||||||
} ]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
services_list.each do |s|
|
services_list.each do |s|
|
||||||
params += [ { name: "service[]", data: s } ]
|
params << [ "service[]", s ]
|
||||||
end
|
end
|
||||||
params += [ { name: "forcegray", data: "on" } ] if options[:forcegray] == "1"
|
params << [ "forcegray", "on" ] if options[:forcegray] == "1"
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Timeout.timeout(10) do
|
Timeout.timeout(10) do
|
||||||
@ -85,7 +77,7 @@ module SimilarImages
|
|||||||
http.read_timeout = 10
|
http.read_timeout = 10
|
||||||
|
|
||||||
request = Net::HTTP::Post.new(server)
|
request = Net::HTTP::Post.new(server)
|
||||||
request.multipart = params
|
request.set_form params, "multipart/form-data"
|
||||||
response = http.request(request)
|
response = http.request(request)
|
||||||
server_responses[server] = response.body
|
server_responses[server] = response.body
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user