dbagg3 TODO =========== Overall ------- * Possible name: feedReactor * Profiles * Command-line, cron, & static HTML * Embedded in desktop app * Personal server * Multi-user web app * General * Work on much, much better error handling and reporting everywhere. * Think about restructuring to be more object-oriented? * Atom over Jabber * Update on received pings * Resolve permissions problem with logging, between web server user & CLI user * Data model * Notes for Subscriptions * Delicious-style tags for Subscriptions and Entries * Public user feed/subscriptions * Web UI * Use MUCH more unobtrusive JavaScript * http://www.onlinetools.org/articles/unobtrusivejavascript/chapter1.html * Sign up (by invitation?) * Email confirm? * Invitation code? * Login * Token in cookie? * Front / index page * Subscription management (add / edit / delete) * Need a plain reverse-chron entry listing * Convert favicons to GIF, include in UI * UI * Flash UI, OS X UI * REST API * Need by-URL ACLs. * Self-documenting API, pulled from docstrings * Make ALL urls in REST api relative, specify base in root tag xml:base attrib * Change REST api methods to have rest_* prefix. * Split rest API into separate topic-modules * Construct a query to list feeds along with new entry counts, ala bloglines * Think about Atom API for posting entries into feeds * Toss query parameters into XML produced by REST API, ala Amazon (parameters in XSL now) * CLI * Change cli-method docstrings to use OPTS: namecmd {one} {two} [{three}] * Distribute methods/functions collected in cli/api to respective modules. Extracted --------- ./bin/update-todo.sh:2:# TODO: Make this suck less. ./htdocs/api:10:# TODO: Need XML-based traceback/error reporting ./htdocs/js/agg.js:127: // TODO: Better busy-indicator for feed being marked as seen. ./htdocs/js/agg.js:135: // TODO: Better busy-indicator for entry being marked as seen. ./htdocs/js/agg.js:143: // TODO: Better busy-indicator for feed being marked as seen. ./htdocs/js/agg.js:151: // TODO: Better busy-indicator for entry being marked as seen. ./htdocs/js/agg.js:163: // TODO: Break up multiples into smaller chunks (of 10?) ./htdocs/js/agg.js:212: // TODO: Some sort of loading animation for entries and XmlHTTPRequest ./htdocs/js/agg.js:256: // TODO: Need an 'error' icon to switch handles to on loading error. ./lib/dbagg3/aggregate.py:300: ### TODO: Collapse runs of empty whitespace & newlines in XML character copying. ./lib/dbagg3/aggregate.py:303: # TODO: Do something sensible with errors encountered during XML copying. ./lib/dbagg3/handler/__init__.py:5:# TODO: Make more handlers (ie. pure Atom, xpath scraper), implement per-feed switching mechanism ./lib/dbagg3/handler/universal.py:213: # TODO: Offer a preference to actually delete source ./lib/dbagg3/model.py:22: # TODO: This seems stupid & evil. Learn about Unicode & fix. ./lib/dbagg3/model.py:27: # TODO: Figure out how to handle Unicode encoding detection ./lib/dbagg3/rest.py:18:# TODO: Auto-generate API docs (in HTML?) from docstrings as an API call ./lib/dbagg3/rest.py:19:# TODO: Need better non-Pythonic error handling, in defined XML ./lib/dbagg3/rest.py:422: # TODO: Find some way to abstract/automate these CRUD-style methods ./lib/dbagg3/rest.py:427: # TODO: Figure out why XmlHTTPRequest is sending a null-terminated string ./lib/dbagg3/rest.py:487: # TODO: Figure out proper way to present Location: header when multiple documents updated ./lib/dbagg3/rest.py:597: # TODO: Output streams to stdout, should buffer (mid-stream exception?) ./lib/dbagg3/rest.py:666:# TODO: Find a better way to handle the EOL case in URL templates ./lib/dbagg3/scan.py:102: # TODO: Per-source mix/max and period tweaking constants ./lib/dbagg3/scan.py:103: # TODO: Per-source modular period tweaking algorithms (constant, AIMD, IM-driven) ./lib/dbagg3/web/api.py:18:# TODO: Auto-generate API docs (in HTML?) from docstrings as an API call ./lib/dbagg3/web/api.py:19:# TODO: Need better non-Pythonic error handling, in defined XML ./lib/dbagg3/web/api.py:542: # TODO: Output streams to stdout, should buffer (mid-stream exception?) ./lib/dbagg3/web/api.py:601:# TODO: Find a better way to handle the EOL case in URL templates ./lib/dbagg3/web/httpd.py:21: # TODO: Why doesn't os.path.join work here? ./lib/dbagg3/web/ui.py:115: # TODO: Recognize attempts to create duplicate subscriptions ./lib/dbagg3/web/ui.py:116: # TODO: Ask for confirmation before subscription. ./xsl/outliner/entry_include.xsl:11: TODO: Make more tag-driven to handle cases of varying granularity. (ie. /feeds, /feed, /entry) ./xsl/outliner/entry_include_jsrs.xsl:11: TODO: Make more tag-driven to handle cases of varying granularity. (ie. /feeds, /feed, /entry) ./xsl/outliner/index.xsl:11: TODO: Make more tag-driven to handle cases of varying granularity. (ie. /feeds, /feed, /entry)