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

Reply via email to