提案 #1607 » 0001-refs-1607.patch
| plugin/mastodon/parser.rb | ||
|---|---|---|
|
Plugin::Score::HyperLinkNote.new(
|
||
|
description: attachment.text_url || url,
|
||
|
uri: url,
|
||
|
reference: Plugin.collect(:photo_filter, url).first
|
||
|
reference: (attachment.type == 'image') ? Plugin.collect(:photo_filter, url).first : nil
|
||
|
)
|
||
|
end
|
||
| plugin/openimg/model/photo.rb | ||
|---|---|---|
|
# -*- coding: utf-8 -*-
|
||
|
require 'uri'
|
||
|
module Plugin::Openimg
|
||
|
class Photo < Diva::Model
|
||
|
include Diva::Model::PhotoMixin
|
||
| ... | ... | |
|
field.uri :perma_link
|
||
|
def self.supported_image_extensions
|
||
|
@supported_image_extensions ||= begin
|
||
|
GdkPixbuf::Pixbuf.formats.each_with_object({}) do |format, exts|
|
||
|
format.extensions.each do |ext|
|
||
|
exts[ext.downcase] = true
|
||
|
end
|
||
|
end.freeze
|
||
|
end
|
||
|
end
|
||
|
def self.supported_image_uri?(uri)
|
||
|
path = URI(uri.to_s).path
|
||
|
ext = File.extname(path).sub(/\A\./, '').downcase
|
||
|
return false if ext.empty?
|
||
|
supported_image_extensions.key?(ext)
|
||
|
rescue URI::InvalidURIError
|
||
|
false
|
||
|
end
|
||
|
handle ->uri{
|
||
|
uri_str = uri.to_s
|
||
|
next false unless supported_image_uri?(uri)
|
||
|
openers = Plugin.collect(:openimg_image_openers)
|
||
|
openers.any?{ |opener| opener.condition === uri_str } if !openers.first(1).empty?
|
||
|
} do |uri|
|
||