discourse/lib/onebox/movie.rb

47 lines
774 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