From f2ff95cd793651b37cab5a358e669416f871e6fc Mon Sep 17 00:00:00 2001 From: grufoony Date: Mon, 17 Nov 2025 19:30:57 +0100 Subject: [PATCH 1/2] Revert some changes --- _cite/cite.py | 2 +- _cite/plugins/arxiv.py | 59 ------------------------------------------ _data/orcid.yaml | 6 +++-- 3 files changed, 5 insertions(+), 62 deletions(-) delete mode 100644 _cite/plugins/arxiv.py diff --git a/_cite/cite.py b/_cite/cite.py index b7734cfb..4f11f957 100644 --- a/_cite/cite.py +++ b/_cite/cite.py @@ -29,7 +29,7 @@ sources = [] # in-order list of plugins to run -plugins = ["google-scholar", "pubmed", "orcid", "arxiv", "sources"] +plugins = ["google-scholar", "pubmed", "orcid", "sources"] # loop through plugins for plugin in plugins: diff --git a/_cite/plugins/arxiv.py b/_cite/plugins/arxiv.py deleted file mode 100644 index 7f5ac3b5..00000000 --- a/_cite/plugins/arxiv.py +++ /dev/null @@ -1,59 +0,0 @@ -import json -from urllib.request import Request, urlopen -from urllib.parse import quote -from util import * - - -def main(entry): - """ - receives single list entry from arxiv data file - returns list of sources to cite - """ - - # arxiv api endpoint - endpoint = "http://export.arxiv.org/api/query?search_query=au:$AUTHOR&start=0&max_results=1000" - - # get author from entry - author = get_safe(entry, "author", "") - if not author: - raise Exception('No "author" key') - - # query api - @log_cache - @cache.memoize(name=__file__, expire=1 * (60 * 60 * 24)) - def query(author): - url = endpoint.replace("$AUTHOR", quote(author)) - request = Request(url=url) - response = urlopen(request).read().decode('utf-8') - return response - - response = query(author) - - # list of sources to return - sources = [] - - # parse XML response - import xml.etree.ElementTree as ET - root = ET.fromstring(response) - - # namespace for arxiv - ns = {'atom': 'http://www.w3.org/2005/Atom', - 'arxiv': 'http://arxiv.org/schemas/atom'} - - # go through response and format sources - for work in root.findall('atom:entry', ns): - # extract arxiv id from the id field - id_element = work.find('atom:id', ns) - if id_element is not None and id_element.text: - arxiv_id = id_element.text.split('/abs/')[-1] - - # create source with arxiv identifier for Manubot - source = {"id": f"arxiv:{arxiv_id}"} - - # copy fields from entry to source - source.update(entry) - - # add source to list - sources.append(source) - - return sources diff --git a/_data/orcid.yaml b/_data/orcid.yaml index b5616c24..11174bdb 100644 --- a/_data/orcid.yaml +++ b/_data/orcid.yaml @@ -1,2 +1,4 @@ -- orcid: 0000-0002-9633-0017 -- orcid: 0000-0003-0316-3449 +- orcid: 0000-0002-9633-0017 # Armando Bazzani +- orcid: 0000-0003-0316-3449 # Mirko Degli Esposti +- orcid: 0000-0002-0005-0441 # Giulio Colombini +- orcid: 0009-0004-7797-9138 # Gregorio Berselli From b6d4106f7ab3313ff910bb6208b3f1e2b3403dfa Mon Sep 17 00:00:00 2001 From: Grufoony <64806874+Grufoony@users.noreply.github.com> Date: Mon, 17 Nov 2025 18:33:28 +0000 Subject: [PATCH 2/2] Update citations --- .../5b/38074930471bda8ad43962205b18.val} | Bin _cite/.cache/cache.db | Bin 94208 -> 98304 bytes _data/citations.yaml | 46 +++++++++++++++++- 3 files changed, 44 insertions(+), 2 deletions(-) rename _cite/.cache/{83/3e/ae5b97aaab5884ffb7ac78cc980c.val => 96/5b/38074930471bda8ad43962205b18.val} (100%) diff --git a/_cite/.cache/83/3e/ae5b97aaab5884ffb7ac78cc980c.val b/_cite/.cache/96/5b/38074930471bda8ad43962205b18.val similarity index 100% rename from _cite/.cache/83/3e/ae5b97aaab5884ffb7ac78cc980c.val rename to _cite/.cache/96/5b/38074930471bda8ad43962205b18.val diff --git a/_cite/.cache/cache.db b/_cite/.cache/cache.db index 80cafddf29ccae698398794f1f9be3ffa6cf8a8b..81458aeb739c95b241f63d548196cacab6962a43 100644 GIT binary patch delta 15369 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 E1-pl$MgRZ+ delta 8931 zcmcJUd3+Sbw#WNqmY$`TBxIQ^WRVaCNSG{SW6Opi5D2TFfP@&fKnP(;00je>t5+`u z#|FyfYH+~?QOsx5x!`gE-&GJ-eC~jV>;fW)$`$dRQ_Xbe`R@C?&->$r4|C?*^Q-FW zs_I{z>Rz?VzUr{;z64vWAPBMklwyeOoW4iZs=}Sx=y2P=`5$ewpfox#BYb2MG-;jv zvPRY70sM37K@g<&MoY3|N$u>K`oKD(e zX{xWA*D$lDY0-iu3+fg$*gWk^wSK<1`1Te{wsY~qhWaHlYZfnWtedlFLF0nv#j)+p zTCL9$*1kl$&6g0r*y0PjCaSBgn}gE&TW6*S(d~=07k#mj3oWTo*WA!h(@;OZeu=AB z`+~q1zHk*9wbMiLvFWMBF|7+!OKOzC)a9}2uj)_g59%59gnC3hsD7?~tiG@A4MdFDqLxKZ zM}>1DengGNkBAEV2p@zWYA${#eegq0#Sh7YA8r*tTw)l0g8Bx23fdTzH>y?Y5H(v( zQ)5+^@|$vA`BwQ<*{i&!Y*QXrHYk5qZc`eST4jPVOc|hLDk(}g#V%i#&&XfP`{jSg zf0Lh+AC>)bo4iz>E8i@Sk;~mw?UG)So|Ybx?v++ai=|o8 zP0~oISjv%lN*>AWzUuzLeboJ#`yKb|TKM#M?eO#~+WF}*fdjR#I{cfOG;!Xut&&BA z(l5&Z`P(m(^!qIVAn!Pb9HNG>91E&Z}$_|{KsUltlaZGGjN0s~gG?aDWx z-#IzY0NdlI`iJ1Ted)L58nAhNNsa;Yhp)~ypmNunSq50z8huhLAO4ErTMo4@>lgZI zOCU2W(}3IG%Fi$$ymDvX5IlRF&F*8sj=<&K2HcTF z`w~OY`c%f@ri2hZWq&h1J_MT&-8~}CfbGe$$ACZG_kOGaQ!|=k3`iK?7#)HqFa16; z%7E=TuXQtE(Uzh}4y`!+PxdKKiU|Gm#D&)mg&XkRozbcR%Ze%$1Nt7`A&21c)B9eN z3<#{7=r-W4Q%|@InCoqG8c?2g${|@=>F%!>{&?(fhs4lNkNs`H6LtgSeWz_9*z|GY z(^do8kM5xbQ6jgbKm7-^l8(OJr-vN!e{sjw{|9^gzqn(XZjbIK+#B6@yH~guxNmXa z;I1TJcMo*;bEmqa+#(uhRUmrd8Yef++YHkTJ8PPzx8n!XG!abGL@-Sg!8A>8$9dB< z5lquWFijJ|G);sqrio;lrnlpJ(=-uG(?l>$6Tvi11k*GTOw;ssoHI=m!8A>8YsWd$ zH1Q|XG!abGL@-U$+i})3O$5_45lquWFijJ|G)-^EnJ%V@WSS;|X_^S8X(E`WiC~(h zx8pn0G!abGL@-Sg!8A>TE~e@2IBl9Hf@zuvrfDLWrs?fCWtt{}X_^S8X(E`WiC~&0 zLKoBYcAPX#6Tvi11k*GTOw;ssoG?w(+i~19O$5_45lquWFiq3j(R$o8P5j9;O>f6B z(=-uG(?l>$6Tvi11k*IV9Y;;mL@-Sgp^IrEnWpLO_|`N{1k*GTOw&X#P1D$6G1o4Mlww#(=@#u-*j=hMgtTl+i_P;s{JmrKPU( z&O5~skN^pt{{Et+t!M&kY=-g}-Dt?PDNCbvknsfHZiXWOu{I zTrlM}$O0I{#;xErldX}Mazbh$ad6uTXn`2n`H^6Q+XY7tdxQ0BOC;P*|2qA1z;Z`~ zs6~HOhApF>rSh~ag?d`sb|hLGaUwi$|5q^pcJ0{%mDnumc2d%sMM`37)^siV^LWhF z7Ani zEZTtG*JFJ&oLs@9&Q#w}Hq{An+N|ACfwy-jfmIOfzD|E%yN5>D0ha`2ptRlfspDO- z(6-+4AYAJ7AH*}Ks@jY*6?kTv!&L7RJn9_Sd1e@ZqB+h{+h}5Q1&=xh7M$}_Ewc9P zht!QU-?@fIodfVu6@a9T+E3j_HvuUqgWw&Fk=oyjx-am~e(Y(t_RYt`u`;?vxRgho z110~t1;C|!_sKA-4DTDR;8AC)Y^fIhO`I0{X-r_nr(*$}+WVhXQiXVDaXF7V2QohI z0pQTad@+g?c)M{0k2(heU(`T6b)!@GP>}aX#jfSfIPosqN$ZF(P5997f5mb~iATHp z3SA#L5Y@1mN1drj6Y=_bXdhm(1)_c{0EpE_UZpD_kK%G3btZWgzk+2~V*&@S_P`!a zh|yj+Ot%pE7%#x1&H?u~B>>Ud$Rl(OWNuu+qt1bCM+O2!Y2STYfhQ%$BL$_4GzP?c z3^u$E-L-_H5rJEeh5>ZbRvx1}n>>-rdDJ=Z{xJn0QagB@hMkO(D|pm7kauD}K!o9(b7Ct2?+2Il%QG$`qIRkq; zIrzH;ssVbk(Kfy+VKTIqi+MybMiMW^RjCiV*9Pw3SsS2jrm=jHcLF6$RDyP!)Ct5? z;wJ2bUaUz3NAPVCashgvP!X zl;B`D+#edJBZ873jdSNZ?-TdhQ>`lR;_C=U*#GeQG+q~O*JIr{W2h%^^brm9C1oyxr#@fsad0#dom;kw?_b)UlzL% zsjD&5fTBT6vR ziKk+R$FnH~ps?Qu<5=#9qqFyAKg7desu@#pUW`YbgF_Qw-L>I?O@cB+n(HcaG>XNx z!`78yS7B49|4y*1nKFp=ycvq|uAuD-Rq{NKI@7uTDX_=tFnj8_8NP*qtZf=^DeY&t znn!(qL+Z#-OJi7U4V<#9nLdF1RKjN*?Rt0-9`#*NaBL}v07Yza85HA{&}N7<^dyP; zkvO=m44eRkY)84S!7UQk@Q50WOdSeeKmj{F6v&QfP)Sx4;f}eaQXE#IQi`F z6;MSd#@!V!!K2Q>lwt4|Kps0;36y5hri*KM)R}6XMQK(>aM^Gu2k6gU9|4qE(5{TD zdDJvJkW?MRK%JwLlt4JLli{^=4(Qm zz+f)g&e@*eN}}$jy)o594;DjAHGO|=4xmtE+XU+ohu0ae)LJm54+&9+3s>2ls%StmP=u8K!W`j=RK}6>uihojCfkTOO^fpWLtmhTznOPvw>f_ zGqM=&H6MYQKf1CD3-gO|tMBSp%9^~mnyk8ZMQ;0GL)DYKLX1Swps=mi-Xa-4rn7_N z!D%lWU~Rz@uI-7-^59+|*#{Vkp6uQ-aM_Ex95`DJE;N8qeesOHOCTp@(O+R!A)cea za!iQC8>-8n(X=@GFylOV_KL1G;*^J>hS0Wg6hv6Dwp==t#wL2f6Om(mQV8!-tzgL2 z@czCWUshH&mKbi->VrzXG_DXH)n|+O(#)0K9*cczAXbBx|m}E50u5~{e2~q6rez^1R#$L>T zzS@)%PMR5!EF}~2Y!OnTQ96}9;sZAo9%xgghlK=xX{=uB*MD`xO;o(VCd)SniT+ZL z+5a)@sZ4A)o<2jr%8@vnHkYCZDgM$#UIE+V1F1_1?bQe4U@BGEN2~lwwu!1Nc>Vq~ z>Y4s#>)Fme*lN12h@70loSZy7uNe|#lI1fHm-iXhUBV8Z3*19TPR&kAerSo-X zi+z{lis$GUx^a#4HnX zSW_W5#BB3O8rxI=PUbBDSse0*!!ej<;AITKslu=3s{*{TJpFq@A%5?#fB&4WxP*V# zE*|pG4QgI%5?if6ygkLZ_+%p=blWrj>(My-K>a|(5Gb@?XZ+}8%Z5O>-Dw=iU^|AO z_jLAUTPPD4$tvo2HhI2u z>jqwgM=XLd_;4Mia#fTqP*zHBBe;e~oheP|8Js*5?FeV=tXX;{hHolJNUwP*L!dVo zbbd`whH!d&g1^p!c>u%NoH;yUp!XTP2#;6@Yj9>{nR^m>Gs<5A}zJ{RqEEguDspnNaCCk5QA zT=zKFJ7$Z+?5n}!_g}GWnKoUUySgo=j6cui@73|SE=JA)>zaL5Ys~8M8tvmd?