47 lines
773 B
Ruby
47 lines
773 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Onebox
|
|
class Movie
|
|
def initialize(json_ld_data)
|
|
@json_ld_data = json_ld_data
|
|
end
|
|
|
|
def name
|
|
@json_ld_data['name']
|
|
end
|
|
|
|
def image
|
|
@json_ld_data['image']
|
|
end
|
|
|
|
def description
|
|
@json_ld_data['description']
|
|
end
|
|
|
|
def rating
|
|
@json_ld_data.dig('aggregateRating', 'ratingValue')
|
|
end
|
|
|
|
def genres
|
|
@json_ld_data['genre']
|
|
end
|
|
|
|
def duration
|
|
return nil unless @json_ld_data['duration']
|
|
|
|
Time.parse(@json_ld_data['duration']).strftime '%H:%M'
|
|
end
|
|
|
|
def to_h
|
|
{
|
|
name: name,
|
|
image: image,
|
|
description: description,
|
|
rating: rating,
|
|
genres: genres,
|
|
duration: duration
|
|
}
|
|
end
|
|
end
|
|
end
|