Skip to content
Snippets Groups Projects
Commit 5a0cd77c authored by Maxence Larrieu's avatar Maxence Larrieu
Browse files

nakala zenodo added

parent 1ca7f006
No related branches found
No related tags found
No related merge requests found
/0-collect-data/personnal-keys.json
/0-collect-data/bso/
/hide
\ No newline at end of file
10.22190/JTESAP1803341W
10.31905/UOQ9LVHZ
10.15454/D3ODJM
10.15454/L7QN45
10.1101/810754
10.26302/SSHADE/EXPERIMENT_OP_20191119_001
10.26302/SSHADE/EXPERIMENT_OP_20200212_001
10.515/lex-2021-0011
10.21336/7f34-8j17
10.1088/1361-665X/aaf0ea
10.57745/GZKUZS
10.1016/j.coastaleng.2021.103917
10.1016/j.ancene.2019.100230.
10.6096/MISTRALS-HyMeX.1438
10.6084/m9.figshare.12295910
10.6084/m9.figshare.14216912
10.1017/pds.2021.443
10.1051/0004-6361/202140963
10.1007/s12351-021-00647-0
10.1109/ICME.2017.8019533
10.6084/m9.figshare.14754468
10.1007/s11747-020-00723-5
10.6084/m9.figshare.7017137.v2
10.1109/WCNC51071.2022.9771695
10.15439/2020F154
10.15778/RESIF.FR
10.5281/zenodo.5913981
10.1080/14786435.2021.1985734
10.1016/j.jinorgbio.2020.111257
10.6073/pasta/b473b048846875b721d139416b8fd882
10.5281/zenodo.4729758
10.1101/756403
10.34847/nkl.6caam3dp
10.34847/nkl.76abr599
10.34847/nkl.a0fe865m
10.34847/nkl.5bcck3cz
10.34847/nkl.ca709965
10.34847/nkl.ca8dmbdh
10.34847/nkl.a5ae8y33
10.34847/nkl.748eqz51
10.34847/nkl.2c0fj3ai
10.34847/nkl.2bad8uj6
10.34847/nkl.87788ro3
10.34847/nkl.2404plkh
10.34847/nkl.bafagy29
10.34847/nkl.9bd4vqc6
10.34847/nkl.4540o25d
10.34847/nkl.36ac9k92
10.34847/nkl.231c4067
10.34847/nkl.a0db89n9
10.34847/nkl.5bb02187
10.34847/nkl.adc04b9w
10.34847/nkl.aacad5y8
10.34847/nkl.3dbc2mtb
10.34847/nkl.bc2b1071
10.34847/nkl.81dcdekj
10.34847/nkl.b1cb3arm
10.34847/nkl.c9e92or4
facquier
nschumacher
acarbonnelle
tfraslin
vgirard1
irequenaruiz
naudas
jfrancony
craphael
lcharles1
rhadbi
echetouane
mlarrieu
egreslou
troulet
mbeligne
acarbonnelle
annegf
\ No newline at end of file
# Récupérer les DOIs de l'UGA présents dans Nakala
## 2023-11-29, Maxence Larrieu
"""
# Particularités
- pas de données d'affiliations, on passe directement par les comptes des déposants qui nous ont été fournis par l'équipe HumaNum
- réponse de l'API dans la navigateur en XML et via requets en json
## Process
- charger les userid
- itérer sur tous les userid
- récupérer les DOIs de tous leurs dépôts
- exlure les actions de création de collection
- extra : recherche aussi de nouveau utilisateurs par l'intémédiaire des droits des dépôts effectués
## question sur le périmètre
- périmètre : est-ce qu'on inclut des personnels comme Thomas Leduc (univ. nantes) mais membre AAU ?
"""
def get_dois_n_users(user_id):
"""
attention logique d'utilisateurs (=compte nakala), pas d'auteur
extrait les DOIs déposées par un user dans Nakala (les collections sont exclues)
user_network : ressortir des userId avec qui les déposant ont partagés des droits de modif. sur leurs dépôts
"""
buffer_dois = []
other_users = []
url_req = "https://api.nakala.fr/search?order=relevance&page=1&size=25&fq=depositor="
req = requests.get(url_req + user_id)
## filtre si la requete n'aboutie pas
if req.status_code != 200 :
return{
"continue" : False,
"content" : r,
"other_users" : False
}
res = req.json()
# iterer sur tous les résultats
for item in res["datas"] :
## exclure les collections, qui ne contiennes pas d'élement "files"
if not item.get("files") :
continue
# récupérer le DOI
buffer_dois.append( item.get("identifier") )
# rechercher d'autres userId
if item.get("rights") :
## pour toutes les personnes à qui on a ajouté des droits
for person in item["rights"] :
## récupérer leurs userid
person_userid = person.get("username")
## si on trouve un autre utilisateurs
if person_userid and person_userid not in nakala_uga_users and person_userid not in other_users :
other_users.append( person_userid )
return{
"continue" : True,
"content" : buffer_dois,
"other_users" : other_users
}
import json, requests
parent_folder = "0-collect-data"
## list to stock datas
nakala_uga_users = []
all_dois = []
other_user_finded = []
## importer les users depuis le fichier txt
with open(parent_folder + '/nakala-uga-users.txt', 'r') as f:
## attention bien stripper quand on import du txt sinon les sauts de ligne sont présents
[nakala_uga_users.append( user.strip() ) for user in f.readlines()]
print("nb d'utilisateur Nakala UGA importés", len(nakala_uga_users))
# ____n____ iterer sur les users uga
for user in nakala_uga_users :
## rechercher les jeux de données
res = get_dois_n_users(user)
if res["continue"] :
print(f"{user}\n\tnb DOI {len(res['content'])}" )
## ajouter les DOIs trouvés
if len(res["content"]) > 0 :
all_dois += res["content"]
## ajouter les personnes
if len(res["other_users"]) > 0 :
#print(f"\nnew person {','.join(res['other_users'])}")
other_user_finded += [x for x in res["other_users"] ]
## ____n____ exporter les DOI au format txt
with open(parent_folder + "/nakala-dois.txt", 'w') as fh :
[fh.write(f"{line}\n") for line in all_dois]
## print les autres utilisateurs trouvés7
print("\n\n nakala user trouvés ")
for elem in other_user_finded :
print(elem)
10.5281/zenodo.10211920
10.5281/zenodo.10204837
10.5281/zenodo.10204743
10.5281/zenodo.10200663
10.5281/zenodo.10199624
10.5281/zenodo.10142460
10.5281/zenodo.10133203
10.5061/dryad.tdz08kq5j
10.5281/zenodo.7628236
10.5281/zenodo.8269855
10.5281/zenodo.10063860
10.5281/zenodo.10062356
10.5281/zenodo.10046054
10.5281/zenodo.10058946
10.5281/zenodo.10049814
10.5281/zenodo.10053093
10.5281/zenodo.10050503
10.5281/zenodo.10050323
10.5281/zenodo.10046806
10.5281/zenodo.10005463
10.5281/zenodo.10005440
10.5281/zenodo.8430044
10.5281/zenodo.8316094
10.1002/esp.5650
10.5281/zenodo.8420459
10.5281/zenodo.8412455
10.5281/zenodo.8384883
10.5281/zenodo.8410346
10.5281/zenodo.8408864
10.5281/zenodo.8408515
10.1021/acs.jpcc.3c01887.
10.5281/zenodo.8392608
10.5061/dryad.7h44j100f
10.5281/zenodo.8379418
10.5281/zenodo.8376503
10.5061/dryad.ttdz08m16
10.5281/zenodo.8362750
10.5281/zenodo.8363118
10.5281/zenodo.8353229
10.5281/zenodo.8223563
10.5281/zenodo.8319001
10.5281/zenodo.8342388
10.5281/zenodo.8341374
10.5281/zenodo.8247362
10.5281/zenodo.8333896
10.5281/zenodo.8329497
10.5281/zenodo.8324811
10.5281/zenodo.8271248
10.5281/zenodo.8319672
10.5281/zenodo.8314927
10.5281/zenodo.8314813
10.5281/zenodo.8289247
10.5061/dryad.4f4qrfjjc
10.5281/zenodo.8279040
10.5281/zenodo.8275263
10.5281/zenodo.8269409
10.5281/zenodo.8272736
10.5281/zenodo.8269693
10.5281/zenodo.8269356
10.5281/zenodo.8269305
10.5281/zenodo.7937759
10.5281/zenodo.8226430
10.5281/zenodo.8206446
10.5281/zenodo.8205153
10.5281/zenodo.8144596
10.5281/zenodo.8143305
10.5281/zenodo.7485725
10.5281/zenodo.8139775
10.5281/zenodo.8131976
10.5061/dryad.8gtht76tq
10.5281/zenodo.8082768
10.5281/zenodo.8124000
10.5281/zenodo.8116463
10.5281/zenodo.8101891
10.5281/zenodo.8025653
10.5281/zenodo.8104792
10.5281/zenodo.8104455
10.5281/zenodo.8095047
10.5281/zenodo.8085467
10.5281/zenodo.8091094
10.5281/zenodo.7828494
10.5281/zenodo.8086478
10.5061/dryad.3ffbg79pv
10.5281/zenodo.8060225
10.5281/zenodo.8057992
10.5281/zenodo.8052969
10.5281/zenodo.8014905
10.5281/zenodo.7986836
10.5281/zenodo.7969515
10.5281/zenodo.7969434
10.5281/zenodo.7961207
10.5281/zenodo.7148513
10.5281/zenodo.7898656
10.5281/zenodo.7890953
10.5281/zenodo.7890462
10.5281/zenodo.7030107
10.5281/zenodo.7871187
10.5061/dryad.k98sf7m98
10.5281/zenodo.7866962
10.5281/zenodo.7866738
10.5281/zenodo.7865424
10.5281/zenodo.7462516
10.5281/zenodo.7835266
10.5281/zenodo.7348972
10.5281/zenodo.7667342
10.5281/zenodo.7813697
10.5281/zenodo.7798143
10.5281/zenodo.7802771
10.5281/zenodo.7802745
10.5281/zenodo.7796264
10.5281/zenodo.7790110
10.5281/zenodo.7785223
10.5281/zenodo.7780496
10.5281/zenodo.7760251
10.5281/zenodo.7755650
10.5281/zenodo.7741947
10.18709/perscido.2021.09.ds353
10.5061/dryad.4j0zpc8h2
10.5281/zenodo.7693381
10.5281/zenodo.7655981
10.5281/zenodo.6786833
10.5281/zenodo.7649167
10.5061/dryad.wh70rxwpz
10.5281/zenodo.7573372
10.5281/zenodo.7614856
10.5061/dryad.3bk3j9kph
10.5281/zenodo.7603489
10.5281/zenodo.7602827
10.5281/zenodo.7580589
10.5281/zenodo.7584063
10.5281/zenodo.7567833
10.1051/0004-6361/202244633
10.5281/zenodo.7561767
10.5281/zenodo.7560290
10.5061/dryad.jq2bvq8bm
10.5281/zenodo.7537055
10.5281/zenodo.7533669
10.1016/j.pss.2022.105536
10.5061/dryad.bnzs7h4dx
10.5281/zenodo.7499383
10.5281/zenodo.7495559
10.5281/zenodo.7254133
10.5281/zenodo.7472518
10.7280/D1Z69G
10.5281/zenodo.7464081
10.5281/zenodo.7438422
10.5281/zenodo.7429639
10.5281/zenodo.7418361
10.5281/zenodo.7387170
10.5281/zenodo.7389281
10.5281/zenodo.7385781
10.5281/zenodo.7385445
10.5281/zenodo.7382840
10.5061/dryad.9s4mw6mm3
10.5281/zenodo.7115984
10.5281/zenodo.7307563
10.5061/dryad.rxwdbrvbg
10.5281/zenodo.7327824
10.5281/zenodo.7308352
10.5281/zenodo.7269139
10.5281/zenodo.7249512
10.5061/dryad.5x69p8d6v
10.5281/zenodo.5835995
10.5281/zenodo.7054555
10.5281/zenodo.7147022
10.5281/zenodo.7213408
10.5281/zenodo.7195152
10.5281/zenodo.7141346
10.5281/zenodo.7142646
10.5281/zenodo.3870657
10.5061/dryad.6q573n621
10.5281/zenodo.7122113
10.5281/zenodo.7114168
10.5281/zenodo.7113144
10.5281/zenodo.7108355
10.5061/dryad.7wm37pvx5
10.5281/zenodo.6977303
10.5281/zenodo.7064041
10.5281/zenodo.7057257
10.5281/zenodo.7056781
10.5281/zenodo.7056694
10.5061/dryad.bnzs7h4ds
10.5281/zenodo.7030984
10.5281/zenodo.7025633
10.5281/zenodo.6798922
10.1016/j.mtla.2022.101480
10.5281/zenodo.6303309
10.5281/zenodo.7015277
10.5281/zenodo.7007289
10.5281/zenodo.7006744
10.5281/zenodo.6991116
10.5281/zenodo.6941739
10.5281/zenodo.6985564
10.5061/dryad.brv15dvcj
10.5281/zenodo.6974319
10.5281/zenodo.6674852
10.5281/zenodo.6956953
10.5281/zenodo.6939154
10.5281/zenodo.6913393
10.5281/zenodo.6909792
10.5281/zenodo.6860555
10.5281/zenodo.6860527
10.5281/zenodo.6861341
10.1561/2200000089
10.5281/zenodo.6787572
10.5061/dryad.8cz8w9gqs
10.5281/zenodo.4265431
10.5281/zenodo.6802738
10.5281/zenodo.6855728
10.3897/natureconservation.49.82931.suppl2
10.3897/natureconservation.49.82931.suppl1
10.3897/natureconservation.49.82931.suppl3
10.3897/natureconservation.49.82931.suppl4
10.5281/zenodo.6822165
10.5281/zenodo.6818751
10.5281/zenodo.6078514
10.5281/zenodo.6803257
10.5281/zenodo.6760050
10.5281/zenodo.6685515
10.5281/zenodo.6675912
10.5281/zenodo.6671769
10.5281/zenodo.6653187
10.5281/zenodo.6645980
10.5281/zenodo.6638442
10.5281/zenodo.6406158
10.5061/dryad.fbg79cnx2
10.5281/zenodo.6580925
10.5281/zenodo.6526421
10.5281/zenodo.6568218
10.5281/zenodo.6565895
10.5281/zenodo.6546702
10.5281/zenodo.5554849
10.5281/zenodo.6535396
10.5281/zenodo.6532308
10.5281/zenodo.6517730
10.5281/zenodo.6498344
10.5061/dryad.ksn02v75q
10.5281/zenodo.6506336
10.5281/zenodo.6448390
10.5061/dryad.jwstqjqbr
10.5281/zenodo.6458203
10.5281/zenodo.6405782
10.5281/zenodo.6401829
10.5281/zenodo.6400739
10.5281/zenodo.6397629
10.21203/rs.3.rs-1370209/v1
10.5281/zenodo.6390598
10.5281/zenodo.6380887
10.5061/dryad.zw3r2286h
10.5281/zenodo.6055786
10.5281/zenodo.5555329
10.5281/zenodo.6280986
10.5281/zenodo.6321323
10.5281/zenodo.6319386
10.5281/zenodo.6315226
10.5281/zenodo.5084367
10.5281/zenodo.6223302
10.5061/dryad.qrfj6q5hv
10.1063/5.0077868
10.5281/zenodo.5833771
10.5281/zenodo.5998113
10.5061/dryad.6t1g1jx0m
10.5281/zenodo.5913708
10.5281/zenodo.5899162
10.5281/zenodo.5865001
10.5061/dryad.n5tb2rbx9
10.5281/zenodo.5841588
10.5281/zenodo.5842110
10.5281/zenodo.5838139
10.5281/zenodo.5835168
10.5281/zenodo.5744160
10.5281/zenodo.5824568
10.5061/dryad.wpzgmsbp2
10.5281/zenodo.5801251
10.5281/zenodo.5799465
10.5281/zenodo.5793694
10.5281/zenodo.4972594
10.5281/zenodo.5769631
10.5281/zenodo.5788695
10.5281/zenodo.5761723
10.3897/neobiota.70.65454.suppl2
10.3897/neobiota.70.65454.suppl1
10.5281/zenodo.5783436
10.5281/zenodo.5775523
10.5281/zenodo.5763672
10.5281/zenodo.5647786
10.5281/zenodo.5729532
10.5281/zenodo.5727127
10.5281/zenodo.5724117
10.5281/zenodo.5723606
10.5281/zenodo.5717483
10.5281/zenodo.5645545
10.5281/zenodo.5217997
10.5281/zenodo.5654628
10.5281/zenodo.5648316
10.5061/dryad.qrfj6q5h6
10.7280/D1B114
10.5281/zenodo.5500364
10.5281/zenodo.5570297
10.5061/dryad.dbrv15f06
10.5281/zenodo.5563067
10.5281/zenodo.5336853
10.1002/essoar.10508001.1
10.5061/dryad.612jm643q
10.5281/zenodo.5549758
10.5281/zenodo.5535532
10.5281/zenodo.5535624
10.5281/zenodo.5527127
10.5061/dryad.cvdncjt2p
10.5281/zenodo.4639769
10.5061/dryad.f4qrfj6wr
10.5281/zenodo.5500144
10.5281/zenodo.5285177
10.5281/zenodo.5289201
10.5281/zenodo.5243362
10.5281/zenodo.5243356
10.5281/zenodo.5243352
10.5281/zenodo.5243277
10.5281/zenodo.5243268
10.5281/zenodo.5243264
10.5281/zenodo.5243257
10.5281/zenodo.5243248
10.5281/zenodo.5243218
10.5281/zenodo.5243209
10.5281/zenodo.5243199
10.5281/zenodo.5243189
10.5281/zenodo.5243180
10.5281/zenodo.5242879
10.5281/zenodo.5242859
10.5281/zenodo.5242829
10.5281/zenodo.5237575
10.5281/zenodo.5237279
10.5281/zenodo.5237214
10.5281/zenodo.5237198
10.5281/zenodo.5237188
10.5281/zenodo.5189179
10.5061/dryad.000000046
10.5061/dryad.hmgqnk9hh
10.5281/zenodo.5145755
10.5281/zenodo.5120376
10.5281/zenodo.5119079
10.5281/zenodo.4746349
10.5281/zenodo.5109574
10.5281/zenodo.5108951
10.5061/dryad.3j9kd51j5
10.5281/zenodo.5062314
10.7280/D1GW91
10.7280/D1R085
10.5281/zenodo.5024655
10.5061/dryad.6c886
10.5061/dryad.pc866t1k5
10.5061/dryad.283pp
10.5061/dryad.n13hn
10.5061/dryad.3r2280ggb
10.5281/zenodo.5013300
10.5061/dryad.ttdz08ktn
10.5061/dryad.f7h12
10.5061/dryad.2v1m1fj
10.5061/dryad.3mv8v434
10.5061/dryad.q1d7f
10.5061/dryad.8290n
10.5061/dryad.5s77q
10.5061/dryad.490p9
10.5061/dryad.6226d
10.5061/dryad.1sf007b
10.7280/D1WT11
10.5061/dryad.hb3b5
10.5061/dryad.sq67g
10.5061/dryad.cz8w9gj06
10.5061/dryad.mw6m905tc
10.5061/dryad.689110r
10.5061/dryad.5b58400
10.5061/dryad.k31d4
10.5061/dryad.b8gtht78h
10.7280/D11H3X
10.5061/dryad.2fqz612m4
10.7280/D1MM37
10.5281/zenodo.4943234
10.15146/zf0j-5m50
10.5061/dryad.2j5s7
10.5061/dryad.n230404
10.5061/dryad.v475g
10.5061/dryad.3216c
10.5061/dryad.4rr39
10.5061/dryad.j6q573n7x
10.5061/dryad.1s7v5
10.5061/dryad.rb0qk13
10.5061/dryad.9g5fp
10.5061/dryad.27qf3
10.5061/dryad.st350
10.7280/D1595V
10.5061/dryad.1qt12
10.5061/dryad.c670tq2
10.5061/dryad.78642
10.5061/dryad.4n5929c
10.25914/604eb7628b4e7
10.5281/zenodo.4923680
10.5061/dryad.qv9s4mwf3
10.5281/zenodo.4916120
10.5061/dryad.ksn02v746
10.5061/dryad.wh70rxwnf
10.5061/dryad.m1t32
10.5281/zenodo.4776977
10.5281/zenodo.4769825
10.5281/zenodo.4767203
10.5281/zenodo.4767088
10.5281/zenodo.4767012
10.5281/zenodo.4763381
10.5281/zenodo.4751241
10.5281/zenodo.4695961
10.5281/zenodo.4724109
10.5281/zenodo.4715737
10.5281/zenodo.4646678
10.5281/zenodo.4008396
10.5281/zenodo.4632200
10.5061/dryad.9w0vt4bd1
10.5281/zenodo.4629216
10.5281/zenodo.4616357
10.5281/zenodo.4603786
10.5281/zenodo.4603782
10.5281/zenodo.4603774
10.5281/zenodo.4603535
10.5281/zenodo.4591774
10.5281/zenodo.4573897
10.5281/zenodo.4590885
10.5061/dryad.m0cfxpp06
10.5281/zenodo.4574537
10.5281/zenodo.4546112
10.5281/zenodo.4543130
10.5281/zenodo.4538745
10.5281/zenodo.4498331
10.5281/zenodo.4421252
10.5281/zenodo.3903874
10.5281/zenodo.4314872
10.5281/zenodo.4310798
10.5281/zenodo.4308510
10.5281/zenodo.4302473
10.5281/zenodo.4306051
10.5281/zenodo.4305970
10.5281/zenodo.4305929
10.5281/zenodo.4302006
10.7280/D1667W
10.5281/zenodo.4282267
10.5281/zenodo.4286111
10.5281/zenodo.4048589
10.5061/dryad.dv41ns1wf
10.5281/zenodo.4273949
10.5281/zenodo.4256801
10.5281/zenodo.4264747
10.5281/zenodo.4244325
10.5061/dryad.m37pvmd0v
10.5281/zenodo.4139737
10.5061/dryad.d51c5b019
10.3897/neobiota.62.52934.suppl2
10.3897/neobiota.62.52934.suppl3
10.3897/neobiota.62.52934.suppl1
10.5281/zenodo.4115984
10.5061/dryad.wm37pvmkw
10.5061/dryad.jq2bvq878
10.5281/zenodo.4090905
10.5281/zenodo.4067946
10.5281/zenodo.4059193
10.5281/zenodo.3826146
10.5281/zenodo.4024414
10.5281/zenodo.4014726
10.5281/zenodo.3981252
10.5061/dryad.2z34tmpjg
10.5061/dryad.c866t1g49
10.5061/dryad.jm63xsj7b
10.5281/zenodo.3966773
10.5061/dryad.rjdfn2z7p
10.5061/dryad.d2547d810
10.5061/dryad.mgqnk98wm
10.5281/zenodo.3941193
10.5281/zenodo.3932935
10.5281/zenodo.3937672
10.5281/zenodo.3938956
10.5281/zenodo.3928606
10.5281/zenodo.3925378
10.5281/zenodo.3888347
10.5281/zenodo.3898495
10.5281/zenodo.3899776
10.5281/zenodo.3771710
10.5281/zenodo.3813574
10.5281/zenodo.3876188
10.5281/zenodo.3876052
10.5281/zenodo.3874714
10.5281/zenodo.3873216
10.5281/zenodo.3873088
10.5281/zenodo.3872130
10.5281/zenodo.3871603
10.5281/zenodo.3871493
10.5281/zenodo.3862151
10.5281/zenodo.3603072
10.5281/zenodo.3832094
10.5281/zenodo.3816663
10.5281/zenodo.3773905
10.5281/zenodo.3631244
10.5281/zenodo.3725791
10.5281/zenodo.3707930
10.5281/zenodo.3725624
10.5281/zenodo.3701520
10.5281/zenodo.3672715
10.5281/zenodo.3689678
10.3897/BDJ.8.e48623.suppl1
10.5281/zenodo.3648639
10.5281/zenodo.3635402
10.5281/zenodo.3634740
10.5281/zenodo.3628018
10.5281/zenodo.3583364
10.5281/zenodo.3630439
10.5281/zenodo.3628203
10.5281/zenodo.3625778
10.5281/zenodo.3613951
10.5281/zenodo.3611936
10.5281/zenodo.3606016
10.5281/zenodo.3585723
10.5281/zenodo.3557199
10.5281/zenodo.3549806
10.5281/zenodo.3543624
10.5281/zenodo.3541149
10.5281/zenodo.3528068
10.5281/zenodo.3514728
10.5281/zenodo.3483601
10.5281/zenodo.3463483
10.5281/zenodo.3382123
10.5281/zenodo.3405119
10.5281/zenodo.3403082
10.5281/zenodo.3403088
10.5281/zenodo.3384633
10.5281/zenodo.3372756
10.5281/zenodo.3367347
10.5281/zenodo.3361544
10.5281/zenodo.3354711
10.5281/zenodo.3340631
10.5281/zenodo.3257654
10.5281/zenodo.3048780
10.5281/zenodo.2677907
10.1088/1752-7163/aa9e71
10.5281/zenodo.2641214
10.5281/zenodo.2641991
10.5281/zenodo.2641965
10.5281/zenodo.2641868
10.5281/zenodo.2641812
10.5281/zenodo.2590150
10.5281/zenodo.2585685
10.5281/zenodo.2581296
10.5281/zenodo.2540773
10.5281/zenodo.888977
10.5281/zenodo.1495070
10.5281/zenodo.1443459
10.5281/zenodo.1199545
10.5281/zenodo.1307653
10.5281/zenodo.1289969
10.5281/zenodo.1256648
10.5281/zenodo.1194786
10.5281/zenodo.1185426
10.5281/zenodo.1156633
10.5281/zenodo.1112342
10.5281/zenodo.1068339
10.5281/zenodo.1009126
10.5281/zenodo.1009122
10.5281/zenodo.854619
10.5281/zenodo.848277
10.5281/zenodo.832421
10.5281/zenodo.580042
10.5281/zenodo.163632
10.5281/zenodo.159474
10.5281/zenodo.204818
10.5281/zenodo.200198
10.5281/zenodo.154083
10.5281/zenodo.61089
10.5281/zenodo.56682
10.5281/zenodo.48170
10.5281/zenodo.37476
10.5281/zenodo.20031
10.5281/zenodo.10117556
10.5281/zenodo.10069276
10.5281/zenodo.10055462
10.5281/zenodo.8398772
10.5281/zenodo.10014634
10.5281/zenodo.6573845
10.5281/zenodo.6506583
10.5281/zenodo.6074472
10.5281/zenodo.5564457
10.1126/scitranslmed.abc8362
10.5281/zenodo.4925909
10.5281/zenodo.4790667
10.5281/zenodo.4655840
10.5281/zenodo.4680486
10.1103/PhysRevB.102.214514
10.5281/zenodo.4453192
10.5281/zenodo.4264162
10.5281/zenodo.4010153
10.5281/zenodo.3902757
10.5281/zenodo.3568739
10.5281/zenodo.3407127
10.5281/zenodo.3454628
10.5281/zenodo.2789093
10.5281/zenodo.1476113
10.5281/zenodo.1475906
10.5281/zenodo.45044
# Récupérer les DOIs de l'UGA depuis Zenodo
## 2023-11-29, Maxence Larrieu
"""
## todo
- recherche itératives par types : dataset, image, video, software, physical object, other OU bien regarder si on requeter aussi dans le champs type directment
## Documentation
* Liste des métadonnées obligatoires lors du dépôts (upload_type, sub_type, publication_date, titre, creators, ) https://developers.zenodo.org/#representation
* Recherche dans l'interfance : https://zenodo.org/search?q=creators.affiliation%3Agrenoble&q=type%3Adataset&l=list&p=1&s=10&sort=bestmatch
* Doc dev API champs de requêtes classsiques https://developers.zenodo.org/#records
* doc champs poussées pour la recherche https://help.zenodo.org/guides/search/
* typologie des dépôts possiblent : publication: Publication, poster: Poster, presentation: Presentation, Dataset: Dataset, image: Image, video: Video/Audio, software: Software, lesson: Lesson, physicalobject: Physical object, other: Other
### Identifier les dépôts :
- utilisation du champs `creators.affiliation` (multi affiliation)
- v2 : chercher aussi au niveau des "contributeurs" : `contributors.affiliation` et au niveau auteur `contributors.orcid`
- v2 : passer par les ORCID des 'auteurs' `creator.orcid`
- v2 : rechercher UGA comme financeur `grants.funder.doi`
## Notes sur la récupération
- exemple résultats de requete : https://zenodo.org/api/records?q=creators.affiliation%3A*grenoble*&type=dataset&page=6&size=100&sort=mostrecent&all_version=False&access_tpoken=4A1P6e4gIkvhpcNpVpI05C9yVCjJIDD3vljILoJ1wlyxT9VA70ZXyPMdjqHB)
- deux DOI identiques sont présent : un à la racine `[hits][doi]` et un autre dans `[hits][metadata][doi]`
- il y a des DOI renseignés par le déposant qui ne sont pas de Zenodo
"""
import pandas as pd, requests, json
parent_folder = "0-collect-data"
print("\n\nzenodo.py is launched")
## import API key. Recquired to req Zenodo API
with open(parent_folder + "/personnal-keys.json") as f :
ACCESS_TOKEN = json.load(f)["ZENODO_KEY"]
def req_zenodo(page_nb) :
"""
retourne les jeux de données UGA depuis Zenodo
page_nb précise le numéro de la page de la requête
"""
r = requests.get(
"https://zenodo.org/api/records",
params = {
"q" : "creators.affiliation:grenoble",
"type" : "dataset",
"page" : page_nb,
"size" : 100,
"sort" : "mostrecent",
"all_version" : False,
"access_tpoken" : ACCESS_TOKEN
}
)
# to debug print(r.url)
## si pb présent dans les résultats
if r.status_code != 200 :
return {
"continue" : False,
"content" : r
}
## s'il n'y a pas de probleme
res = r.json()
return {
"continue" : True,
"content" : res["hits"]
}
## var to initiate the loop
output_dois = []
current_page_number = 0
iterate = True
while iterate :
current_page_number += 1
print("new iteration page =", current_page_number)
res = req_zenodo(current_page_number)
# verifier si la requete a bien fonctionnée
if not res["continue"] :
print("oups, problem with the query")
print(res["content"].status_code ) ## res[content] contient la réponse de la requête
break
# pour la premiere iteration, extraire le nb de DOI a récupérer
if current_page_number == 1 :
nb_dois_to_get = res["content"]["total"]
print("\tfirst iteration. DOIs to get =", nb_dois_to_get )
## parcourir tous les DOIs et les placer dans la liste
## placer le DOI uniquement si une donnée est présente
[output_dois.append( item.get("doi") ) for item in res["content"]["hits"] if item.get("doi")]
## managing the loop
### if I have all the DOIs inside my outputs, then I had finish
if len(output_dois) >= nb_dois_to_get :
iterate = False
## ____z____ exporter la liste de DOI au format txt
with open(parent_folder + "/zenodo-dois.txt", 'w') as f :
[f.write(f"{line}\n") for line in output_dois]
This diff is collapsed.
import os
"""
v2
- revoir gestion de l'arborescence import et export des fichiers (tout passer par des modules ? ) :https://stackoverflow.com/questions/52577047/run-another-python-script-in-different-folder
"""
def execute_python_file(file_path):
"""
excute a py program from a file_path
"""
try :
os.system(f'python {file_path}')
except FileNotFoundError:
print(f"Error: The file '{file_path}' does not exist.")
# file_path = "0-collect-data/nakala.py"
file_path = "0-collect-data/zenodo.py"
execute_python_file (file_path)
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment