ginatrapani/todo.txt-touch — Issue #250: team version
Author: shane0
Created: 2012-02-21 22:25:04+00:00
State: open

at work we use this excellent wiki http://www.atlassian.com/software/confluence/overview which has xmlrpc so I wrote this python script so other people can see what I'm doing and they can leave comments, confluence has a watch feature so I get emails when someone leaves comments which makes todo.txt-touch collaborative

when I have time I'm going to add inotify (monitors file changes on linux)
so it only runs when the file changes instead of a cron then it will update in realtime

looking at my todo.txt on the wiki sparked ideas on a multi-user app based on todo.txt, too many ideas to post here but you can imagine, keeping it based on text files and dropbox is important I could see this getting overly complex quickly... might need to be a seperate project so the simplicity of this app doesn't get ruined

what I picture is a dashboard where you can view all users todo list in columns and edit them, sending push notifications to users on phones

could be done by sharing a dropbox account or folders using dropbox's api and markdown like http://scriptogr.am/

this could solve common problems in real time like people going off in different directions or someone pulling someone off, you could have logging show who made changes to narrow down who has disputes or have permissions with override, etc.

here is the script for posting your todo.txt to confluence, runs on my computer as cron job, could work with any web app using xmlrpc:

```python
#!/usr/bin/env python
import sys
from xmlrpclib import Server
import fileinput
# read the todo.txt file
import os
os.system('/home/name/Dropbox/todo/todo.sh -@p ls @work >
/home/name/Dropbox/todo/xmlrpc/todo.txt')
f = open('/home/name/Dropbox/todo/xmlrpc/todo.txt')
linelist = f.readlines()
content = '
'.join(map(str,linelist))
#update page
s = Server("http://server/rpc/xmlrpc" )
token = s.confluence2.login("username", "password")
page = s.confluence2.getPage(token, "~space name", "page name")
page["content"] = content
s.confluence2.storePage(token, page)
```