mirror of
https://github.com/discourse/discourse.git
synced 2024-11-30 20:25:26 +08:00
47 lines
774 B
Ruby
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
|