discourse/lib/onebox/movie.rb

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