Plug-In: Note to File
This action will save the note text of the selected task to a file. On macOS, the option to open the created file will be presented after the export has completed.
NOTE: See the Data section for a plug-in to save clipboard RTF content to file.
Return to: OmniFocus Plug-In Collection
Note to File
/*{
"type": "action",
"targets": ["omnifocus"],
"author": "Otto Automator",
"identifier": "com.omni-automation.of.note-to-file",
"version": "1.1",
"description": "This action will save the note text of the selected task to a plain text file.",
"label": "Note to File",
"shortLabel": "Note to File",
"paletteLabel": "Note to File",
"image": "square.and.pencil.circle.fill"
}*/
(() => {
const action = new PlugIn.Action(async function(selection, sender){
try {
task = selection.tasks[0]
textToWrite = task.note
if(textToWrite === ""){
alertMsg = "The note of the selected task contains no text."
Alert("Missing Data", alertMsg).show()
} else {
textDataObj = Data.fromString(textToWrite)
textFileName = task.name + " note.txt"
wrapper = FileWrapper.withContents(textFileName, textDataObj)
urlObj = await new FileSaver().show(wrapper)
console.log(urlObj.string)
if(Device.current.mac){
alertTitle = "File Created"
alertMsg = "Open the file?"
alert = new Alert(alertTitle, alertMsg)
alert.addOption("Open")
alert.addOption("Skip")
alert.show(function(result){
if (result == 0){urlObj.open()}
})
}
}
}
catch(err){
if(!err.causedByUserCancelling){
new Alert(err.namer, err.message).show()
}
}
});
action.validate = function(selection, sender){
return (selection.tasks.length === 1)
};
return action;
})();