Last active
December 26, 2015 09:19
-
-
Save jsmm/7128867 to your computer and use it in GitHub Desktop.
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
--2011-06-10 | |
--http://organognosi.blogspot.com/ | |
tell application "Skim" | |
set the clipboard to "" | |
set numberOfNote5 to (get text for note 5 of page 1 of document 1) as string | |
set pdfTitle to get (extended text of note 4) of page 1 of document 1 as string | |
set numberOfPages to count pages of document 1 | |
activate | |
set myColorCodes to my chooseColor() --εκτός των loops πρέπει να βρίσκεται, μια φορά το θέτεις | |
display dialog "Do you want to export all the notes or only some of them?" buttons {"All", "Some"} default button 1 | |
set answer to button returned of the result | |
if answer is "All" then | |
set firstPage to "1" as number | |
set lastPage to numberOfPages | |
set the clipboard to "===Skim notes===" & return | |
else | |
display dialog "Give me the written number of the first page." default answer "" | |
set firstPageWritten to text returned of the result as number | |
set firstPage to firstPageWritten - numberOfNote5 as number | |
display dialog "Give me the written numbers of the last page" default answer "" | |
set lastPageWritten to text returned of the result as number | |
set lastPage to lastPageWritten - numberOfNote5 as number | |
set the clipboard to (the clipboard) & "Notes from \"[[@" & pdfTitle & "]]\" (pages " & firstPage & " - " & lastPage & ") <br />" & return | |
end if | |
repeat with currentPage from firstPage to lastPage | |
--special provision for page 1 | |
if currentPage is 1 then | |
set pageNotes to notes of page 1 of document 1 | |
set notesAfter5 to items 6 thru -1 of pageNotes | |
exportPageNotes(notesAfter5, currentPage, myColorCodes) of me | |
else | |
set pageNotes to notes of page currentPage of document 1 | |
exportPageNotes(pageNotes, currentPage, myColorCodes) of me | |
end if | |
end repeat | |
end tell | |
on exportPageNotes(listOfNotes, pageForProcessing, myColorCodes) | |
tell application "Skim" | |
set numberOfNote5 to (get text for note 5 of page 1 of document 1) as string | |
set pdfTitle to get (extended text of note 4) of page 1 of document 1 as string | |
set numberOfPageNotes to count notes of page pageForProcessing of document 1 | |
set theWrittenPage to pageForProcessing + numberOfNote5 as string | |
set pdfDevonThinkLink to (get text for note 4 of page 1 of document 1) as string | |
set pdfDevonThinkLinkWihtoutZero to (text 1 thru ((length of pdfDevonThinkLink) - 1) of pdfDevonThinkLink) as string | |
repeat with coloredNote in listOfNotes | |
repeat with i from 1 to the count of myColorCodes | |
if color of coloredNote is item i of myColorCodes then | |
set pdfText to get text for coloredNote | |
set pdfText2 to get extended text of coloredNote as text | |
set fullNoteText to pdfText & " " & pdfText2 | |
set annotationDate to modification date of coloredNote as text | |
set pageForDevonThinkLink to pageForProcessing - 1 | |
--for use with MediaWiki semantic annotations | |
set firstCharacter to get the character 1 of fullNoteText | |
if firstCharacter = "[" then | |
set endofNote to "]]]" | |
else | |
set endofNote to "]" | |
end if | |
set textAfterFullNoteText to "[" & pdfDevonThinkLinkWihtoutZero & pageForDevonThinkLink & " p. " & theWrittenPage & endofNote & " <small>(" & annotationDate & ")</small>" | |
set textForTextMate to fullNoteText & " " & textAfterFullNoteText | |
set textForTextMate2 to replaceText(textForTextMate, "missing value", "") of me | |
set textForTextMate3 to replaceText(textForTextMate2, " ()", "") of me | |
set the clipboard to (the clipboard) & textForTextMate3 & return | |
end if | |
end repeat | |
end repeat | |
set theSeperationLine to "" | |
repeat with coloredNote in listOfNotes | |
if numberOfPageNotes > 0 then | |
repeat with i from 1 to the count of myColorCodes | |
if (color of coloredNote is item i of myColorCodes) then | |
set theSeperationLine to "----" & return | |
exit repeat | |
end if | |
end repeat | |
end if | |
end repeat | |
set the clipboard to (the clipboard) & theSeperationLine | |
end tell | |
end exportPageNotes | |
on replaceText(thisText, searchString, replacementString) | |
set AppleScript's text item delimiters to the searchString | |
set the itemList to every text item of thisText | |
set AppleScript's text item delimiters to the replacementString | |
set thisText to the itemList as string | |
set AppleScript's text item delimiters to {""} | |
return thisText | |
end replaceText | |
on chooseColor() | |
set selectedColors to (choose from list {"Destacado", "Resumen", "Citable/Definición", "Pregunta/Referencia", "Técnica/Método", "Resultado/Interpretación"} with prompt ("Choose the color of notes for exporting (you can select multiple colors):") default items {"Destacado"} with multiple selections allowed) | |
--selectedColors is a list of lists | |
set colorCodes to {} | |
set noteColor to "" | |
repeat with noteCol in selectedColors | |
set noteColor to noteCol as text | |
if noteColor is "Destacado" then | |
set end of colorCodes to {65535, 65531, 2689, 65535} | |
else if noteColor is "Resumen" then | |
set end of colorCodes to {52428, 65535, 26214, 65535} | |
else if noteColor is "Citable/Definición" then | |
set end of colorCodes to {26214, 65535, 65483, 65535} | |
else if noteColor is "Pregunta/Referencia" then | |
set end of colorCodes to {52428, 52428, 52428, 65535} | |
else if noteColor is "Técnica/Método" then | |
set end of colorCodes to {65260, 52435, 26213, 65535} | |
else if noteColor is "Resultado/Interpretación" then | |
set end of colorCodes to {26214, 65535, 26214, 65535} | |
end if | |
end repeat | |
return colorCodes | |
end chooseColor |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment