responseDate = time.strftime("%Y-%m-%dT%H:%M:%S", time.localtime()) + zone
return responseDate
def OAIError(msg="Malformed OAI request."):
"Sends OAI error status."
print "Status: 400 Bad request"
print_header()
print "<h1 class=\"headline\">OAI Error</h1>"
print "<p>%s" % msg
print """<p>See the <a href="http://www.openarchives.org/OAI/openarchivesprotocol.htm">OpenArchives protocol</a>."""
print_footer()
sys.exit()
def OAIGetSysno(identifier):
"Returns the first MySQL BIB ID for the OAI identifier 'identifier', if it exists."
sysno = None
if identifier:
query = "SELECT DISTINCT(bb.id_bibrec) FROM bib90x AS bx, bibrec_bib90x AS bb WHERE bx.tag='%s' AND bb.id_bibxxx=bx.id AND bx.value='%s'" % (oaiidfield,identifier)
if dbg:
print_warning(query, "Debug")
cursor.execute(query)
row = cursor.fetchone()
if row:
sysno = row[0]
return sysno
def OAIGetSysnoList(set, date_from, date_until):
"Returns list of system numbers for the OAI set 'set', modified from 'date_from' until 'date_until'."
out_dict = {} # dict to hold list of out sysnos as its keys
if set:
query = "SELECT DISTINCT bibx.id_bibrec FROM bib90x AS bx LEFT JOIN bibrec_bib90x AS bibx ON bx.id=bibx.id_bibxxx LEFT JOIN bibrec AS b ON b.id=bibx.id_bibrec WHERE bx.tag='%s' AND bx.value='%s'" % (oaisetfield,set)
else:
query = "SELECT DISTINCT bibx.id_bibrec FROM bib90x AS bx LEFT JOIN bibrec_bib90x AS bibx ON bx.id=bibx.id_bibxxx LEFT JOIN bibrec AS b ON b.id=bibx.id_bibrec WHERE bx.tag='%s'" % (oaiidfield)