2020-03-28 20:02:55 +00:00
|
|
|
require "myhtml"
|
|
|
|
|
|
|
|
module Muse::Dl
|
|
|
|
class InfoParser
|
2020-03-28 20:14:43 +00:00
|
|
|
def self.infobox(myhtml : Myhtml::Parser)
|
2020-03-28 20:02:55 +00:00
|
|
|
info = Hash(String, String).new
|
|
|
|
myhtml.css(".details_row").each do |row|
|
|
|
|
label = row.css(".cell").map(&.inner_text).to_a[0].strip
|
|
|
|
value = row.css(".cell").map(&.inner_text).to_a[1].strip
|
|
|
|
case label
|
|
|
|
when "MARC Record"
|
|
|
|
else
|
|
|
|
info[label] = value
|
|
|
|
end
|
|
|
|
end
|
|
|
|
return info
|
|
|
|
end
|
2020-03-28 20:14:43 +00:00
|
|
|
|
2020-03-28 20:40:41 +00:00
|
|
|
def self.title(myhtml : Myhtml::Parser)
|
|
|
|
myhtml.css("#book_about_info .title").map(&.inner_text).to_a[0].strip
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.author(myhtml : Myhtml::Parser)
|
|
|
|
myhtml.css("#book_about_info .author").map(&.inner_text).to_a[0].strip
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.date(myhtml : Myhtml::Parser)
|
|
|
|
myhtml.css("#book_about_info .date").map(&.inner_text).to_a[0].strip
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.publisher(myhtml : Myhtml::Parser)
|
|
|
|
myhtml.css("#book_about_info .pub a").map(&.inner_text).to_a[0].strip
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.summary(myhtml : Myhtml::Parser)
|
|
|
|
myhtml.css("#book_about_info .card_summary").map(&.inner_text).to_a[0].strip
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.summary_html(myhtml : Myhtml::Parser)
|
|
|
|
return "TODO"
|
|
|
|
myhtml.css("#book_about_info .card_summary").map(&.tag_text).to_a[0].strip
|
2020-03-28 20:14:43 +00:00
|
|
|
end
|
2020-03-28 20:02:55 +00:00
|
|
|
end
|
|
|
|
end
|