class EzproxyProviders::Gale

Public Class Methods

parse(path, params) click to toggle source
# File lib/logstash/filters/ezproxy_providers/gale.rb, line 4
def self.parse (path, params)
  
  data = {
    "provider" => "gale"
  }

  if ((match = /^\/ps\/([a-zA-z]+).do$/i.match(path)))
    data['rtype'] = 'ENCYCLOPAEDIA_ENTRY'
    data['mime']  = 'HTML'

    if (/[\w]Toc/.match(match[1]))
      data['rtype'] = 'TOC'
    end

    if (params.key?('docId'))
      data['title_id'] = params['docId'][0]
      data['unit_id']   = params['docId'][0] + '_' + ( params['contentSegment'][0] || "")
    end

    if (params.key?('workId') && /[\w\W]pdf/.match(params['workId'][0]))
      data['mime']   = 'PDF'
      data['unit_id'] = params['docId'][0] + '_' + params['workId'][0].split('|')[0]
    end


  elsif (/^\/cgi-bin\/([a-z]+)$/i.match(path))
    data['rtype']    = 'ENCYCLOPAEDIA_ENTRY'
    data['mime']     = 'MISC'
    if (params.key?('docId') && params.key?('contentSegment'))
      data['title_id'] = params['docId'][0]
      data['unit_id']   = params['docId'][0] + '_' + params['contentSegment'][0]
    end

  elsif (/^\/ps\/pdfViewer$/i.match(path))
    data['rtype']  = 'BOOK'
    data['mime']   = 'PDF'
    if params.key?('docId')
      data['unit_id'] = params['docId'][0]
    end

  elsif (/^\/gdc-artemis\/bulkPdfDownload$/i.match(path))
    data['rtype']  = 'ARTICLE'
    data['mime']   = 'PDF'
    if params.key?('file_name')
      data['unit_id'] = params['file_name'][0]
    end

  elsif (/^\/gdc\/artemis\/ManuscriptsDetailsPage\/ManuscriptsDetailsWindow$/i.match(path))
    data['rtype']  = 'ARTICLE'
    data['mime']   = 'HTML'
    if params.key?('documentId')
      data['unit_id'] = params['documentId'][0]
    end

  elsif (/^\/gdsc\/retrieve.do$/i.match(path))
    data['rtype']  = 'ARTICLE'
    data['mime']   = 'HTML'
    if params.key?('contentSet')
      data['unit_id'] = params['contentSet'][0]
    end

  elsif (/^\/gdsc\/downloadDocument.do$/i.match(path))
    data['rtype']  = 'ARTICLE'
    data['mime']   = 'PDF'
    if params.key?('docId')
      data['unit_id'] = params['docId'][0]
    end

  elsif (/^\/([a-z]+)\/([a-z]+)\/MonographsDetailsPage\/MonographsDetailsWindow$/i.match(path))
    data['rtype']  = 'ARTICLE'
    data['mime']   = 'HTML'
    if params.key?('documentId')
      data['unit_id'] = params['documentId'][0]
    end

  elsif (/^\/([a-z]+)\/archive\/FeatureArticlesDetailsPage\/FeatureArticlesDetailsWindow$/i.match(path))
    data['rtype']  = 'ENCYCLOPAEDIA_ENTRY'
    data['mime']   = 'HTML'
    if params.key?('documentId')
      data['unit_id'] = params['documentId'][0]
    end
  end

  return data

end