initial commit
commit
f13d3ac019
|
@ -0,0 +1,33 @@
|
|||
import json
|
||||
import urllib2
|
||||
from sys import argv, stderr
|
||||
|
||||
xisbn_url = 'http://xisbn.worldcat.org/webservices/xid/isbn/%s?method=getMetadata&format=json&fl=*'
|
||||
class WCException(Exception):
|
||||
pass
|
||||
|
||||
def check_worldcat(isbn):
|
||||
data = urllib2.urlopen(xisbn_url % isbn)
|
||||
res = json.load(data)
|
||||
if res['stat'] != 'ok':
|
||||
raise WCException(res['stat'])
|
||||
return res['list']
|
||||
|
||||
def main(fname):
|
||||
output = []
|
||||
with open(fname, 'r') as f:
|
||||
for line in f:
|
||||
isbn = line.strip()
|
||||
print >> stderr, '[II] Checking metadata for ISBN:', isbn
|
||||
try:
|
||||
res = check_worldcat(isbn)
|
||||
if len(res) != 1:
|
||||
print >> stderr, '[WW](ISBN: %s) %d results found, omitting from output' % \
|
||||
(isbn, len(res))
|
||||
output.append(res[0])
|
||||
except WCException as e:
|
||||
print >> stderr, '[EE](ISBN: %s) Exception:' % isbn, e
|
||||
print json.dumps(output, indent=4)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(argv[1])
|
Loading…
Reference in New Issue