cpnporg / todoist-php
v0.1.0-alpha
2015-08-07 14:56 UTC
Requires
- php: >=5.3.3
- guzzlehttp/guzzle: 6.*
This package is auto-updated.
Last update: 2020-02-27 17:26:38 UTC
README
项目状态
目前,此项目提供了对Todoist任务和项目的只读访问。它增加了一些API直接未提供的基本过滤和操作功能。
基本用法
$todoist = new Todoist\Todoist($token); $tasks = $todoist->getTasks(); $projects = $todoist->getProjects();
设计决策
任务
和 项目
旨在可迭代、可链式调用且不可变。每个添加到类的自定义方法都会返回一个新的对象,该对象包含项目副本而不是引用。
foreach ($todoist->getTasks()->filterByProject('Project Name') as $task) { // $task is now an array derived from Todoist JSON. }
任务方法
// Filter tasks by project name or ID. $tasks = $tasks->filterByProject('Project Name'); $tasks = $tasks->filterByProject($project_id); // Filter tasks by regular expression. $tasks = $tasks->filterByContentPreg('/regex for task content/'); // Manipulate task content by prepending or appending parent task content. $tasks = $tasks->applyParentTasks(array( // 'prepend' or 'append' parent content // default: prepend 'apply' => 'prepend', // Strip content 'pre', 'post' or other from parent task with a colon before adding it. // default: '' (do not strip colon content from parent) 'strip_colon' => 'post', // Configure the delimiter to use between task and parent task content. // default: ': ' 'delimiter' => ': ', // Only apply the parent to short tasks (NULL = apply to all) // default: NULL 'strlen_max' => 5, ));
同步项目层次结构
警告:每个用户都分配了一个自定义的项目ID。因此,项目层次结构的同步依赖于不同的项目名称,而不管缩进如何。
警告:还重要的是要使用命令队列,以避免来自Todoist的速率限制错误。
以下示例同步项目并将未知项目移动到顶部。
$source_todoist = Todoist::factory($source_token); $source_projects = $source_todoist->getProjects(); try { $todoist = Todoist::factory($token); $todoist->useCommandQueue(TRUE); $projects = &$todoist->getProjects(); $projects->syncOrderIndent($source_projects, 'top'); $todoist->flushCommandQueue(); } catch (\Exception $e) { echo "Error: " . $e->getMessage() . "\n"; }