44from caltechdata_api import caltechdata_edit
55
66
7- def fix_name (metadata ):
8- fixed = False
7+ def fix_name (metadata , fixed ):
98 for name in metadata :
109 if name ["nameType" ] == "Personal" :
1110 if "givenName" not in name :
@@ -15,37 +14,40 @@ def fix_name(metadata):
1514 return metadata , fixed
1615
1716
18- url = " https://data.caltech.edu/api/records"
17+ url = ' https://data.caltech.edu/api/records?q=-metadata.related_identifiers.identifier%3A"10.25989%2Fes8t-kswe"'
1918
2019headers = {
2120 "accept" : "application/vnd.datacite.datacite+json" ,
2221}
2322
24- response = requests .get (f"{ url } ? search_type=scan&scroll=5m" )
23+ response = requests .get (f"{ url } & search_type=scan&scroll=5m" )
2524
2625total = response .json ()["hits" ]["total" ]
2726pages = math .ceil (int (total ) / 1000 )
2827hits = [] # [{'id':'a7f64-a8k10'}]
2928print (total )
30- for c in progressbar (range (1 , 2 )): # , pages + 1)):
31- chunkurl = f"{ url } ? &sort=newest&size=1000&page={ c } "
29+ for c in progressbar (range (1 , pages + 1 )):
30+ chunkurl = f"{ url } &sort=newest&size=1000&page={ c } "
3231 response = requests .get (chunkurl )
3332 response = response .json ()
34-
3533 hits += response ["hits" ]["hits" ]
3634
35+
36+ url = 'https://data.caltech.edu/api/records'
37+
3738for h in progressbar (hits ):
3839 idv = str (h ["id" ])
40+
3941 response = requests .get (f"{ url } /{ idv } " , headers = headers )
4042 if response .status_code != 200 :
4143 print (response .text )
4244 exit ()
4345 else :
46+ fixed = False
4447 metadata = response .json ()
45- metadata ["creators" ], fixed = fix_name (metadata ["creators" ])
48+ metadata ["creators" ], fixed = fix_name (metadata ["creators" ], fixed )
4649 if "contributors" in metadata :
47- metadata ["contributors" ] = fix_name (metadata ["contributors" ])
50+ metadata ["contributors" ], fixed = fix_name (metadata ["contributors" ], fixed )
4851 if fixed :
4952 print (idv )
5053 caltechdata_edit (idv , metadata , production = True , publish = True )
51- exit ()
0 commit comments