javascript 获取已标记的Omnifocus任务Applescript

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 获取已标记的Omnifocus任务Applescript相关的知识,希望对你有一定的参考价值。

# javascript for mac - get OF flagged tasks
var of = Application('OmniFocus');

var doc = of.defaultDocument;

getTasks();

function getTasks(){
    var today = new Date();
    var dueDate = new Date(today.setDate(today.getDate()+7));
    var    taskList = [];
    var flattenedTasks = doc.flattenedTasks.whose({_or: [
        {completed: false, flagged: false, blocked: false, dueDate: {"<":dueDate}},
        {completed: false, flagged: true, blocked: false},
        {completed: false, flagged: false, blocked: false , _match: [ObjectSpecifier().parentTask.flagged, true] },
        {completed: false, blocked: false , _match: [ObjectSpecifier().parentTask.dueDate, {"<":dueDate}] }
    ]});    
    flattenedTasks().forEach(function(task){
        if ( !task.context.hidden &&  (!task.deferDate()) || (today > task.deferDate()) ) {
            var context = (task.context() !== null) ? task.context().name() : '';
            var project = (task.container() !== null) ? task.container().name() : '';
            var taskDue = false;
            if (task.dueDate() || task.parentTask.dueDate()){
                taskDue = true;
            };
            taskList.push({
                name: task.name(),
                id: task.id(),
                context: context,
                project: project,
                note: task.note(),
                due: taskDue,
                
            });
        }
    });
        
    var retObj = {
        'tasks' : taskList,
        'count' : taskList.length
    };

    return JSON.stringify(retObj);
}

以上是关于javascript 获取已标记的Omnifocus任务Applescript的主要内容,如果未能解决你的问题,请参考以下文章

javascript Pivotal Tracker脚本用于标记已完成的故事

如何使用 JavaScript 从元标记中获取信息?

如何在javascript中打印元素异步推送到它的数组?

javascript 获取HTML标记属性

javascript 获取url hash标记href参数

如何使用 JavaScript 函数从 Select Option 标记中获取值