Perhaps I can write a web scraper for this site, that adds the PDF URL automatically. I’ll have a look at it.
Christiaan > On 27 Oct 2019, at 01:11, Danushka Bollegala <danushka.bolleg...@gmail.com> > wrote: > > Great! Thanks. The url I get is correct and ‘download thePub’ worked as > expected and downloaded the PDF. > As acl anthology is the main repository for natural language processing > related research and there are thousands of users of it, > I released the script as a gist on github, acknowledging your support. Hope > this is ok with you. > > https://gist.github.com/Bollegala/7cc6adafda38daa5638c98f5346c9cc1 > <https://gist.github.com/Bollegala/7cc6adafda38daa5638c98f5346c9cc1> > > Thank you for your continuous support. > > Best wishes > > Danushka > ______________________________ > Prof. Danushka Bollegala > Head of Data Mining and Machine Learning > Department of Computer Science > University of Liverpool > 224 Ashton Building > Ashton Street > Liverpool L69 3BX > > T +44 151 795 4283 > F +44 151 795 4235 > W danushka.net <http://danushka.net/> > E m...@danushka.net <mailto:m...@danushka.net> > T @Bollegala > > > > >> On 26 Oct 2019, at 23:36, Christiaan Hofman <cmhof...@gmail.com >> <mailto:cmhof...@gmail.com>> wrote: >> >> Sorry, I see now that there is a bug in the download command, that makes it >> fail for linked URLs. That will be fixed in tomorrow’s nightly (and the next >> release). What also work is instead to the publication to the download >> command (‘download thePub’) >> >> Christiaan >> >>> On 27 Oct 2019, at 00:30, Christiaan Hofman <cmhof...@gmail.com >>> <mailto:cmhof...@gmail.com>> wrote: >>> >>> The download command (in the comments line) should download the linked URL >>> and that as a linked file. This is of course not immediate. Doesn’t that >>> work for you? Is the URL you get correct? >>> >>> Christiaan >>> >>>> On 27 Oct 2019, at 00:26, Danushka Bollegala <danushka.bolleg...@gmail.com >>>> <mailto:danushka.bolleg...@gmail.com>> wrote: >>>> >>>> Thank you for the quick response. There was a small bug in the script >>>> where the function “fixURL” was called as “fixedURL” within the “using >>>> terms BibDesk” routine. >>>> Fixing this and adding this as an import Publication script hook solved >>>> the issue. I am copying my script for future reference below. >>>> One thing that I wondered was the commented out line "download linked URL >>>> 1 --with replace" >>>> Uncommenting this did not make any difference. What would be the syntax to >>>> download the converted pdf url and link it to the bib entry? >>>> >>>> >>>> >>>> property theURLPrefixes : {"https://www.aclweb.org/anthology/ >>>> <https://www.aclweb.org/anthology/>"} >>>> property thePDFExtension : ".pdf" >>>> >>>> >>>> on hasAnyPrefix(theString, thePrefixes) >>>> repeat with thePrefix in thePrefixes >>>> if theString starts with thePrefix then return true >>>> end repeat >>>> return false >>>> end hasAnyPrefix >>>> >>>> on fixURL(theURL) >>>> if (my hasAnyPrefix(theURL, theURLPrefixes) and theURL does not end >>>> with thePDFExtension) then >>>> if theURL ends with "/" then set theURL to text 1 thru -2 of >>>> theURL >>>> set theURL to theURL & thePDFExtension >>>> end if >>>> return theURL >>>> end fixURL >>>> >>>> using terms from application "BibDesk" >>>> on perform BibDesk action with publications thePubs for script hook >>>> theScriptHook >>>> tell application "BibDesk" >>>> repeat with thePub in thePubs >>>> tell contents of thePub >>>> set theURL to value of field "Url" >>>> set theFixedURL to my fixURL(theURL) >>>> if (theURL is not theFixedURL) then >>>> set value of field "Url" to >>>> theFixedURL >>>> end if >>>> if (count of linked URLs) > 0 then >>>> set theURL to linked URL 1 >>>> set theFixedURL to my >>>> fixURL(theURL) >>>> if (theURL is not theFixedURL) >>>> then >>>> remove theFixedURL >>>> add theFixedURL to >>>> beginning of linked URLs >>>> --download linked URL 1 >>>> --with replace >>>> end if >>>> end if >>>> end tell >>>> end repeat >>>> end tell >>>> end perform BibDesk action with publications >>>> end using terms from >>>> >>>> Best wishes >>>> >>>> Danushka >>>> ______________________________ >>>> Prof. Danushka Bollegala >>>> Head of Data Mining and Machine Learning >>>> Department of Computer Science >>>> University of Liverpool >>>> 224 Ashton Building >>>> Ashton Street >>>> Liverpool L69 3BX >>>> >>>> T +44 151 795 4283 >>>> F +44 151 795 4235 >>>> W danushka.net <http://danushka.net/> >>>> E m...@danushka.net <mailto:m...@danushka.net> >>>> T @Bollegala >>>> >>>> >>>> >>>> >>>>> On 26 Oct 2019, at 22:09, Christiaan Hofman <cmhof...@gmail.com >>>>> <mailto:cmhof...@gmail.com>> wrote: >>>>> >>>>> It should be the Import Publication script hook. How do you add the >>>>> citation? >>>>> >>>>> Christiaan >>>>> >>>>>> On 26 Oct 2019, at 22:53, Danushka Bollegala >>>>>> <danushka.bolleg...@gmail.com <mailto:danushka.bolleg...@gmail.com>> >>>>>> wrote: >>>>>> >>>>>> Thank you Christian for the script. >>>>>> >>>>>> In order to run this script when I copy a bibtex entry from the >>>>>> aclanthology to bibdesk, to which script hook should I assign it? >>>>>> I tried assigning it to “Import publication” hook but that does not seem >>>>>> to get invoked. >>>>>> If you could kindly clarify how to get the script associated and running >>>>>> that would be great. >>>>>> >>>>>> Thanks in advance >>>>>> >>>>>> Danushka >>>>>> >>>>>> >>>>>>> On 26 Oct 2019, at 14:54, Christiaan Hofman <cmhof...@gmail.com >>>>>>> <mailto:cmhof...@gmail.com>> wrote: >>>>>>> >>>>>>> Here’s an example of such a script hook: >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On 26 Oct 2019, at 15:28, Christiaan Hofman <cmhof...@gmail.com >>>>>>>> <mailto:cmhof...@gmail.com>> wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> On 25 Oct 2019, at 23:44, Christiaan Hofman <cmhof...@gmail.com >>>>>>>>> <mailto:cmhof...@gmail.com>> wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>>> On 25 Oct 2019, at 23:14, Danushka Bollegala >>>>>>>>>> <danushka.bolleg...@gmail.com <mailto:danushka.bolleg...@gmail.com>> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Thank you for developing BibDesk which is an essential component of >>>>>>>>>> my research workflow! >>>>>>>>>> >>>>>>>>>> I use acl anthology for importing papers into bibdesk. The Url field >>>>>>>>>> in the BibText in acl anthology does not contain .pdf extension. >>>>>>>>>> For example, see https://www.aclweb.org/anthology/N18-2115/ >>>>>>>>>> <https://www.aclweb.org/anthology/N18-2115/> >>>>>>>>>> for which the bibtex entry contains >>>>>>>>>> url = "https://www.aclweb.org/anthology/N18-2115 >>>>>>>>>> <https://www.aclweb.org/anthology/N18-2115>” >>>>>>>>>> Unfortunately, this gets mapped to the Url field in Bibdesk and I >>>>>>>>>> cannot download the pdf but the top page by “Download Urls” menu. >>>>>>>>>> Is there a way (for example a script hook etc.) that would let me >>>>>>>>>> automatically append .pdf to the url field when a bibtex entry is >>>>>>>>>> copied to BibDesk? >>>>>>>>>> Thank you >>>>>>>>>> Danushka >>>>>>>>>> ______________________________ >>>>>>>>>> Prof. Danushka Bollegala >>>>>>>>>> Head of Data Mining and Machine Learning >>>>>>>>>> Department of Computer Science >>>>>>>>>> University of Liverpool >>>>>>>>>> 224 Ashton Building >>>>>>>>>> Ashton Street >>>>>>>>>> Liverpool L69 3BX >>>>>>>>>> >>>>>>>>>> T +44 151 795 4283 >>>>>>>>>> F +44 151 795 4235 >>>>>>>>>> W danushka.net <http://danushka.net/> >>>>>>>>>> E m...@danushka.net <mailto:m...@danushka.net> >>>>>>>>>> T @Bollegala >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Perhaps the Import Publications script hook could do that. How do you >>>>>>>>> import the bibtex entries? And what is setting this URL field? >>>>>>>>> >>>>>>>>> Christiaan >>>>>>>> >>>>>>>> >>>>>>>> Be aware that the Import Publications script hook comes after the >>>>>>>> conversion of the Url field to a linked URL, so you probably also want >>>>>>>> to repoace the linked URL from the script hook. Also if you want to >>>>>>>> automatically downoad the URL, this would not be done in this case, so >>>>>>>> you should also do that from the script hook. >>>>>>>> >>>>>>>> Christiaan >>>>>>>> >>>>>>> >>>>>>> >>>>>>> Here’s an example of such a script hook: >>>>>>> >>>>>>> property theURLPrefixes : {"https://www.aclweb.org/anthology/ >>>>>>> <https://www.aclweb.org/anthology/>"} >>>>>>> property thePDFExtension : ".pdf" >>>>>>> >>>>>>> on hasAnyPrefix(theString, thePrefixes) >>>>>>> repeat with thePrefix in thePrefixes >>>>>>> if theString starts with thePrefix then return true >>>>>>> end repeat >>>>>>> return false >>>>>>> end hasAnyPrefix >>>>>>> >>>>>>> on fixURL(theURL) >>>>>>> if (my hasAnyPrefix(theURL, theURLPrefixes) and theURL does not >>>>>>> end with thePDFExtension) then >>>>>>> if theURL ends with "/" then set theURL to text 1 thru >>>>>>> -2 of theURL >>>>>>> set theURL to theURL & thePDFExtension >>>>>>> end if >>>>>>> return theURL >>>>>>> end fixURL >>>>>>> >>>>>>> using terms from application "BibDesk" >>>>>>> on perform BibDesk action with publications thePubs for script >>>>>>> hook theScriptHook >>>>>>> tell application "BibDesk" >>>>>>> repeat with thePub in thePubs >>>>>>> tell contents of thePub >>>>>>> set theURL to value of field >>>>>>> "Url" >>>>>>> set theFixedURL to my >>>>>>> fixedURL(theURL) >>>>>>> if (theURL is not theFixedURL) >>>>>>> then >>>>>>> set value of field >>>>>>> "Url" to theURL & theExt >>>>>>> end if >>>>>>> if (count of linked URLs) > 0 >>>>>>> then >>>>>>> set theURL to linked >>>>>>> URL 1 >>>>>>> set theFixedURL to my >>>>>>> fixedURL(theURL) >>>>>>> if (theURL is not >>>>>>> theFixedURL) then >>>>>>> remove theURL >>>>>>> add theURL to >>>>>>> beginning of linked URLs >>>>>>> --download >>>>>>> linked URL 1 --with replace >>>>>>> end if >>>>>>> end if >>>>>>> end tell >>>>>>> end repeat >>>>>>> end tell >>>>>>> end perform BibDesk action with publications >>>>>>> end using terms from >>>>>>> >>>>>>> hth, >>>>>>> Christiaan >>>>> >>>
_______________________________________________ Bibdesk-users mailing list Bibdesk-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-users