lib/relaton_nist/data_fetcher.rb in relaton-nist-1.19.0 vs lib/relaton_nist/data_fetcher.rb in relaton-nist-1.19.1
- old
+ new
@@ -1,12 +1,14 @@
# frozen_string_literal: true
require "yaml"
+require "loc_mods"
+require_relative "mods_parser"
module RelatonNist
class DataFetcher
- URL = "https://raw.githubusercontent.com/usnistgov/NIST-Tech-Pubs/nist-pages/xml/allrecords.xml"
+ URL = "https://github.com/usnistgov/NIST-Tech-Pubs/releases/download/May2024/allrecords-MODS.xml"
def initialize(output, format)
@output = output
@format = format
@ext = format.sub(/^bib/, "")
@@ -66,19 +68,21 @@
rescue StandardError => e
Util.error "#{e.message}\n#{e.backtrace[0..5].join("\n")}"
end
def fetch_tech_pubs
- docs = Nokogiri::XML OpenURI.open_uri URL
- docs.xpath(
- "/body/query/doi_record/report-paper/report-paper_metadata",
- ).each { |doc| write_file TechPubsParser.parse(doc, series) }
+ docs = LocMods::Collection.from_xml OpenURI.open_uri(URL)
+ # docs.xpath(
+ # "/body/query/doi_record/report-paper/report-paper_metadata",
+ # )
+ docs.mods.each { |doc| write_file ModsParser.new(doc, series).parse }
end
def add_static_files
Dir["./static/*.yaml"].each do |file|
hash = YAML.load_file file
- write_file RelatonNist::NistBibliographicItem.from_hash(hash)
+ bib = RelatonNist::NistBibliographicItem.from_hash(hash)
+ index.add_or_update bib.docidentifier[0].id, file
end
end
#
# Fetch all the documnts from dataset