バグ #600 » openimg-fix-instagram.patch
core/plugin/openimg/openimg.rb | ||
---|---|---|
Plugin.create :openimg do
|
||
DEFAULT_SIZE = [640, 480].freeze
|
||
USER_AGENT = (Environment::NAME + '/' + Environment::VERSION.to_s).freeze
|
||
@size = DEFAULT_SIZE
|
||
@position = [Gdk.screen_width/2 - @size[0]/2, Gdk.screen_height/2 - @size[1]/2].freeze
|
||
... | ... | |
begin
|
||
uri = URI.parse(url)
|
||
path = uri.path + (uri.query ? "?"+uri.query : "")
|
||
res = Net::HTTP.new(uri.host).get(path, "User-Agent" => Environment::NAME + '/' + Environment::VERSION.to_s)
|
||
res = Net::HTTP.new(uri.host).get(path, "User-Agent" => USER_AGENT)
|
||
case(res)
|
||
when Net::HTTPSuccess
|
||
address = get_tagattr(res.body, element_rule)
|
||
... | ... | |
nil
|
||
end
|
||
}
|
||
|
||
INSTAGRAM_PATTERN = %r{^http://(?:instagr\.am/p/([a-zA-Z0-9_]+)|instagram\.com/p/([a-zA-Z0-9_-]+))}
|
||
addsupport(INSTAGRAM_PATTERN) do |url, cancel|
|
||
m = url.match(INSTAGRAM_PATTERN)
|
||
shortcode = m[1] || m[2]
|
||
# http://instagram.com/developer/embedding/
|
||
uri = URI.parse "http://instagram.com/p/#{shortcode}/media/?size=l"
|
||
res = Net::HTTP.new(uri.host).get uri.request_uri, 'User-Agent' => USER_AGENT
|
||
if res.is_a? Net::HTTPRedirection
|
||
res['Location']
|
||
else
|
||
warn 'instagram url failed'
|
||
nil
|
||
end
|
||
end
|
||
::Gtk::TimeLine.addopenway(/.*\.(?:jpg|png|gif|)$/) { |shrinked_url, cancel|
|
||
url = MessageConverters.expand_url_one(shrinked_url)
|
||
Delayer.new { display(url, cancel) }
|
core/plugin/openimg/pattern_file.json | ||
---|---|---|
}
|
||
}
|
||
},
|
||
"Instagram": {
|
||
"url": "^http://(?:instagr\\.am/p/[a-zA-Z0-9_]+|instagram\\.com/p/[a-zA-Z0-9_-]+)",
|
||
"attribute": {
|
||
"class": "photo"
|
||
}
|
||
},
|
||
"img.ly": {
|
||
"url": "^http://img\\.ly/[a-zA-Z0-9_]+",
|
||
"attribute": {
|