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