跳转至

Todolist


任务管理软件https://todoist.com

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# !/bin/sh

token=1234567890abcdefg

get_project(){
curl -X GET \
  https://api.todoist.com/rest/v1/projects \
  -H "Authorization: Bearer $token" | awk '{ if(match($1, "\"id\"")) print "----\n"$1" "$2; if(index($1, "name")) print $1" "$2;}'
}

add_project(){
curl "https://api.todoist.com/rest/v1/projects" \
    -X POST \
    --data '{"name": "'$1'"}' \
    -H "Content-Type: application/json" \
    -H "X-Request-Id: $(uuidgen)" \
    -H "Authorization: Bearer $token"
}

del_project(){
    curl -X DELETE "https://api.todoist.com/rest/v1/projects/$1" \
    -H "X-Request-Id: $(uuidgen)" \
    -H "Authorization: Bearer $token"
}

add_task(){
    echo '{"content": "'$2'", "project_id": $1}'
    curl "https://api.todoist.com/rest/v1/tasks" \
    -X POST \
    --data '{"content": "'$2'", "project_id": '$1'}' \
    -H "Content-Type: application/json" \
    -H "X-Request-Id: $(uuidgen)" \
    -H "Authorization: Bearer $token"
}

parse2Param(){
    case $1 in
        "add")
            add_project $2
            ;;
        "del")
            del_project $2
            ;;
    esac

}

parse3Param(){
    case $1 in
        "add")
            add_task $2 $3
            ;;
    esac
}


case $# in
    0)
        get_project
        ;;
    2)
        parse2Param $1 $2
        ;;
    3)
        parse3Param $1 $2 $3
        ;;
    *)
    echo "Usage: $0"
    echo "Usage: $0 add project-name"
    echo "Usage: $0 del project-id"
    echo "Usage: $0 add project-id task-name"
    exit 1
        ;;
esac