This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/lib/onebox/engine/xkcd_onebox.rb
2023-01-09 12:10:19 +00:00

28 lines
540 B
Ruby

# frozen_string_literal: true
module Onebox
module Engine
class XkcdOnebox
include Engine
include LayoutSupport
include JSON
matches_regexp(%r{^https?://(www\.)?(m\.)?xkcd\.com/\d+})
def url
"https://xkcd.com/#{match[:comic_id]}/info.0.json"
end
private
def match
@match ||= @url.match(%{xkcd\.com/(?<comic_id>\\d+)})
end
def data
{ link: @url, title: raw["safe_title"], image: raw["img"], description: raw["alt"] }
end
end
end
end