Sha256: 82f833b3bcf430ecac0af6bd428fe3449b7867685a47502777eb997829b2e37b

Contents?: true

Size: 1.12 KB

Versions: 8

Compression:

Stored size: 1.12 KB

Contents

module Wikidata
  module Property
    class CommonsMedia < Wikidata::Property::Base
      BASE_PAGE_URL = "https://commons.wikimedia.org/wiki/File:%s.%s".freeze
      IMAGE_URL = "https://upload.wikimedia.org/wikipedia/commons/%s/%s/%s.%s"
      THUMB_IMAGE_URL = "https://upload.wikimedia.org/wikipedia/commons/thumb/%s/%s/%s.%s/%ipx-%s.%s"

      def page_url
        @_page_url ||= sprintf BASE_PAGE_URL, basename, extension
      end

      def url size = nil
        if size
          sprintf THUMB_IMAGE_URL, md5[0], md5[0..1], basename, extension, size, basename, extension, thumb_extension
        else
          sprintf IMAGE_URL, md5[0], md5[0..1], basename, extension
        end
      end

      def md5
        @_md5 ||= Digest::MD5.hexdigest "#{basename}.#{extension}"
      end

      def basename
        @_basename ||= name.gsub ' ', '_'
      end

      def name
        @_name ||= File.basename(value, ".#{extension}")
      end

      def thumb_extension
        @_thumb_ext ||= extension == 'svg' ? 'svg.png' : extension
      end

      def extension
        @_ext ||= File.extname(value).tr '.', ''
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
wikidata-client-0.1.0 lib/wikidata/property/commons_media.rb
wikidata-client-0.1.0.pre.rc1 lib/wikidata/property/commons_media.rb
wikidata-client-0.0.12 lib/wikidata/property/commons_media.rb
wikidata-client-0.0.11 lib/wikidata/property/commons_media.rb
wikidata-client-0.0.10 lib/wikidata/property/commons_media.rb
wikidata-client-0.0.9 lib/wikidata/property/commons_media.rb
wikidata-client-0.0.8 lib/wikidata/property/commons_media.rb
wikidata-client-0.0.7 lib/wikidata/property/commons_media.rb