Giter Club home page Giter Club logo

toodledo's Introduction

toodledo

DESCRIPTION

This is a Ruby API and client for http://toodledo.com, a task management website. It implements all of the calls from Toodledo's developer API, and provides a nice wrapper around the functionality.

The client allows you to work with Toodledo from the command line. It will work in either interactive or command line mode.

You can also use the client in your shell scripts, or use the API directly as part of a web application. Custom private RSS feed? Want to have the Mac read out your top priority? Input tasks through Quicksilver? Print out tasks with a BetaBrite? It can all happen.

FEATURES/PROBLEMS

  • Command line client interface
  • Interactive client interface
  • Fully featured session based API
  • Supports Proxy and SSL usage
  • Easy configuration and automation (Quicksilver / Scripts / Automator)

SYNOPSIS

SETUP

You will need an account on Toodledo. Once you have that and you're logged in, go to:

http://www.toodledo.com/info/api_doc.php

and retrieve your userid. You will need this for setup.

Then, type

gem install toodledo
toodledo setup

and enter your userid and password in the spaces provided. Then save the file, and you're good to go.

COMMAND LINE

You can add tasks. The simplest form is here:

toodledo add 'This is a test'

But tasks don't have to be simple. Toodledo has a particularly rich model of a task, and allows full GTD type state to be attached to them. The syntax for the client is as follows:

*Folder
@Context
^Goal
!Priority
#DueDate
%Tags

Additionally, a * not followed immediately by a folder name indicates that the task should be starred.

For adding tasks, you may specify Priority as either a word: top,high,medium,low,negative or as a number: -1,0,1,2,3

You can encase the symbol with square brackets if there is a space involved:

*[Blue Sky]
@[Someday / Maybe]
^[Write Toodledo Ruby API]
!top
#[2011-03-18] or #[today]
%[foo bar]

You can only provide one folder, context, goal, priority, or date, but you can provide multiple tags, using the syntax shown above (i.e. foo and bar are two separate tags).

Let's use the command line client to list only the tasks you have in the office:

toodledo tasks '@Office *Action'

Now let's add a task with several symbols:

toodledo add '*Action @Programming ^[Write Toodledo Ruby API] Write docs'

Now let's add a different task with a date and tags:

toodledo add Write more docs #today %for_my_boss

You can also edit tasks, using the task id. This sets the folder to Someday:

toodledo edit '*Someday 15934131'

And finally you can complete or delete tasks, again using the task id.

toodledo complete 15934131
toodledo delete 15934131

INTERACTIVE MODE

Toodledo also comes with an interactive mode that is used if no arguments are found:

toodledo
> add This is a test

You can type 'help' at the prompt for a complete list of commands. The client makes for a nice way to enter in tasks as you think of them.

The client will also allow you to set up filters. Filters are added with the symbols, so in interactive mode

filter @Office *Action
tasks

Then it produces the same results as:

toodledo tasks '@Office *Action'

Finally, if you want to write your own scripts, working with Toodledo is very simple, since it will use the YAML config file:

require 'rubygems'
require 'toodledo'
Toodledo.begin do |session|
  # work with session
end

If you want to work with the session directly, then you should do this instead:

require 'rubygems'
require 'toodledo'
session = Session.new(userid, password)
session.connect()

REQUIREMENTS

INSTALL

  • sudo gem install toodledo
  • toodledo setup (sets up the YAML file with your credentials)
  • toodledo

TROUBLESHOOTING

  • The server returned a fatal error: invalid userid - Verify you are using the unique user id from https://www.toodledo.com/info/api_doc.php (it seems to always start with td). This is different than your account's alias or password.
  • The server returned a fatal error: key did not validate - Verify you are using the correct user id and password.

LICENSE:

	   GPL v3

toodledo's People

Contributors

afrolov avatar ahoward avatar alswl avatar cescalante avatar douglasdd avatar rleber avatar studgeek avatar wsargent avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

toodledo's Issues

Toodledo Argument Error

Hi Will,
I use Toodledo and Alfred, tried to set up direct input from Alfred via:
http://aosekai.net/2011/09/quickly-add-new-task-to-toodledo-with-alfred/

When in terminal, I have done:

sudo gem install toodledo
toodledo setup (sets up the YAML file with your credentials)
toodledo

When I first did toodledo setup, I put in my userid from toodledo and my toodledo password and then :w to save the file - the YAML file was created; however when ever I run toodledo or toodledo setup I get an argument error (I've changed my actual userid/password to 'mypassword' below, but the space is there between the password: and actual password):


Eric-Bruners-MacBook-2:~ EJB$ toodledo
/usr/local/lib/ruby/1.8/yaml.rb:133:in load': syntax error on line 21, col 2: password: mypassword' (ArgumentError)
from /usr/local/lib/ruby/1.8/yaml.rb:133:in load' from /usr/local/lib/ruby/gems/1.8/gems/toodledo-1.3.8/lib/toodledo/command_line/client.rb:71:ininitialize'
from /usr/local/lib/ruby/gems/1.8/gems/toodledo-1.3.8/bin/toodledo:10:in new' from /usr/local/lib/ruby/gems/1.8/gems/toodledo-1.3.8/bin/toodledo:10 from /usr/local/bin/toodledo:19:inload'
from /usr/local/bin/toodledo:19


I am not that familiar with Terminal, so am probably doing something wrong. The YAML contents (user-config.yml) look as expected (I think):


The connection to Toodledo.

connection:

If you have a Pro account, you can use HTTPS instead of HTTP

url: http://www.toodledo.com/api.php

If you are logged in to Toodledo, you should be able to see

your userid at this URL:

http://www.toodledo.com/info/api_doc.php

user_id:td36f40ced4f022

Your password

password: mypassword

Uncomment this section if you are working through a proxy

proxy:

host:

port:

user:

password:


Excessive API token requests

I created a brand new user and attempted to add an item via the command line and got the following error: The server returned a fatal error: Excessive API token requests over the last 1 hour. This user is temporarily blocked.

updating notes from the API

I would like to be able to update the Notes section of a todo with this. I see the notes are available in the general API, but cannot find how to set them with this ruby client?

Thanks - and this is just what I needed !!

undefined method `name' for nil:NilClass (NoMethodError)

This error just started in the last few days. I have tried a fresh install. I'm wondering if toodledo API has changed bit.

$ toodledo add 'test'
/Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/lib/toodledo/session.rb:248:in `call': undefined method `name' for nil:NilClass (NoMethodError)
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/lib/toodledo/session.rb:343:in `get_uncached_token'
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/lib/toodledo/session.rb:278:in `get_token'
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/lib/toodledo/session.rb:99:in `connect'
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/lib/toodledo.rb:59:in `begin'
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/lib/toodledo/command_line/add_command.rb:117:in `execute'
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/cmdparse-2.0.6/lib/cmdparse.rb:464:in `parse'
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/lib/toodledo/command_line/client.rb:920:in `main'
	from /Users/drxxx/.rbenv/versions/2.4.2/lib/ruby/gems/2.4.0/gems/toodledo-1.4.2/bin/toodledo:11:in `<top (required)>'
	from /Users/drxxx/.rbenv/versions/2.4.2/bin/toodledo:23:in `load'
	from /Users/drxxx/.rbenv/versions/2.4.2/bin/toodledo:23:in `<main>'

Issue with setup

I am a pro account holder and tried to setup my account using toodledo setup. For some reason it wouldn't work and is giving me this error:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/psych.rb:205:in `parse': (<unknown>): could not find expected ':' while scanning a simple key at line 17 column 3 (Psych::SyntaxError)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/psych.rb:205:in `parse_stream'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/psych.rb:153:in `parse'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/psych.rb:129:in `load'
    from /Library/Ruby/Gems/2.0.0/gems/toodledo-1.4.1/lib/toodledo/command_line/client.rb:74:in `initialize'
    from /Library/Ruby/Gems/2.0.0/gems/toodledo-1.4.1/bin/toodledo:10:in `new'
    from /Library/Ruby/Gems/2.0.0/gems/toodledo-1.4.1/bin/toodledo:10:in `<top (required)>'
    from /usr/bin/toodledo:23:in `load'
    from /usr/bin/toodledo:23:in `<main>'

Update to OAuth2 for login

The version of the Toodledo API being used by this gem is deprecated, and the newer version of the API uses OAuth2, which should let me login with my Two Factor Authentication setting.

(See http://api.toodledo.com/3/index.php,. However, I know the new owner might be changing everything, so perhaps this is all futile!)

Setup not working

Hi, I also have an issue with the setup command, pasted below.
thanks!
giovanni

$ toodledo setup
/Library/Ruby/Gems/2.0.0/gems/cmdparse-3.0.0/lib/cmdparse.rb:773:in initialize': wrong number of arguments (2 for 0) (ArgumentError) from /Library/Ruby/Gems/2.0.0/gems/toodledo-1.4.1/lib/toodledo/command_line/client.rb:884:innew'
from /Library/Ruby/Gems/2.0.0/gems/toodledo-1.4.1/lib/toodledo/command_line/client.rb:884:in main' from /Library/Ruby/Gems/2.0.0/gems/toodledo-1.4.1/bin/toodledo:11:in<top (required)>'
from /usr/bin/toodledo:23:in load' from /usr/bin/toodledo:23:in

'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.