Last active
March 17, 2020 21:11
-
-
Save bcdavasconcelos/e52d93c6aa96012c356363644845549e to your computer and use it in GitHub Desktop.
Add ABNT Reference Smart Rule for DT3 #DEVONthink3 #Applescript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on performSmartRule(theRecords) | |
tell application id "DNtp" | |
try | |
set these_items to the selection | |
if these_items is {} then error "Please select some contents." | |
repeat with this_item in these_items | |
set customMD to custom meta data of this_item | |
try | |
set the_type to mdtype of customMD | |
on error | |
set the_type to "" | |
end try | |
try | |
set the_authors to mdauthors of customMD | |
on error | |
set the_author to "" | |
end try | |
try | |
set the_editor to mdeditor of customMD | |
on error | |
set the_editor to "" | |
end try | |
try | |
set the_translator to mdtranslator of customMD | |
on error | |
set the_translator to "" | |
end try | |
try | |
set the_title to mdtitle of customMD | |
on error | |
set the_title to "" | |
end try | |
try | |
set the_publisher to mdpublisher of customMD | |
on error | |
set the_publisher to "" | |
end try | |
try | |
set the_date to mddate of customMD | |
on error | |
set the_date to "" | |
end try | |
try | |
set the_link2 to mdlink2 of customMD | |
on error | |
set the_link2 to "" | |
end try | |
try | |
set the_page to mdpage of customMD | |
on error | |
set the_page to "" | |
end try | |
try | |
set the_abstract to mdabstract of customMD | |
on error | |
set the_abstract to "" | |
end try | |
try | |
set the_bibkey to mdbibkey of customMD | |
on error | |
set the_bibkey to "" | |
end try | |
try | |
set the_doi to mddoi of customMD | |
on error | |
set the_doi to "" | |
end try | |
try | |
set the_sertitle to mdsertitle of customMD | |
on error | |
set the_sertitle to "" | |
end try | |
try | |
set the_journal to mdjournal of customMD | |
on error | |
set the_journal to "" | |
end try | |
try | |
set the_issue to mdissue of customMD | |
on error | |
set the_issue to "" | |
end try | |
try | |
set the_reference to mdreference of customMD | |
on error | |
set the_reference to "" | |
end try | |
try | |
set the_keywords to mdkeywords of customMD | |
on error | |
set the_keywords to "" | |
end try | |
try | |
set the_volume to mdvolume of customMD | |
on error | |
set the_volume to "" | |
end try | |
try | |
set the_place to mdplace of customMD | |
on error | |
set the_place to "" | |
end try | |
-- Article -- | |
--try | |
-- set ref_doi to "" | |
--end try | |
-- | |
--if the_doi is not "" then | |
-- try | |
-- set ref_doi to "<http://dx.doi.org/" & the_doi & ">" | |
-- end try | |
--end if | |
-- | |
try -- in case volume is present | |
set ref_volume to "" | |
end try | |
if the_volume is not "" then | |
try | |
set ref_volume to " (" & the_volume & ")" | |
end try | |
end if | |
try | |
set ref_article to the_authors & "; " & the_title & ". In: " & the_journal & " " & ref_volume & the_issue & ", " & the_date & "." & " Pp." & the_page | |
end try | |
-- Book -- | |
-- translator and editor -- | |
try | |
set ref_translator to "" | |
set ref_editor to "" | |
end try | |
if the_translator is not "" then | |
try | |
set ref_translator to "Trad.: " & the_translator & ". " | |
end try | |
end if | |
if the_editor is not "" then | |
try | |
set ref_editor to "Ed.: " & the_editor & ". " | |
end try | |
end if | |
try -- the book ref | |
set ref_book to the_authors & "; " & the_title & ". " & ref_editor & ref_translator & the_place & ": " & the_publisher & ", " & the_date | |
end try | |
-- the reference -- | |
if the_type is "Article" then | |
set the_ref to ref_article | |
end if | |
if the_type is "Book" then | |
set the_ref to ref_book | |
end if | |
add custom meta data the_ref for "reference" to this_item | |
try | |
set name of this_item to the_ref as text | |
end try | |
try | |
set the aliases of this_item to the_bibkey | |
end try | |
if the_keywords is not "" then | |
set {od, AppleScript's text item delimiters} to {AppleScript's text item delimiters, ","} | |
set theTags to text items of the_keywords | |
set AppleScript's text item delimiters to od | |
set theTags to (parents of this_item) & theTags | |
set the tags of this_item to theTags | |
set the mdkeywords of customMD to "" | |
end if | |
end repeat | |
on error error_message number error_number | |
if the error_number is not -128 then display alert "DEVONthink" message error_message as warning | |
end try | |
end tell | |
end performSmartRule |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For more information, see this thread on DT3 Forum.