Canto 0.7.10 ChangeLog * Add canto-inspect.1 manpage * Fix other manpages * Fix some 2.6 incompatible abuse * Add workaround for bad feed data caused by switching between the system feedparser and the builtin. Canto 0.7.9 ChangeLog * Fix fresh install sans system feedparser * Make canto-inspect use builtin feedparser Canto 0.7.8 ChangeLog * Fix feed exception encoding problem. * Fix occasional zombies / extra pids floating around. * Import feedparser into source tree. * Add -s/--sysfp flag to canto-fetch to fall back on system feedparser * Render improvements by honoring declared content types Canto 0.7.7 ChangeLog * Fix harmless widecurse.c warning * Fix going to locale incompatible URLs * Fix Python 2.6.5 weirdness * Fix enclosure parsing/display exception * Fix set_{filter,tag_filter,sort}(None) * Improved config validation for gui options * Work harder to maintain selections through updates * Make cursor behavior more flexible * Change default cursor behavior * Documentation tweaks (thanks acoolon) Canto 0.7.6 ChangeLog * Fix non-consecutive sorts * Fix multi-tag sorts * Fix change_feed * Fix possible get_text exception * Replace multiprocessing functionality * Worker process initiated on demand * Add "restart" keybind (|) * Add wget_link reader_key * Add highlight_word drawing hook * Add "setup.py uninstall" command * Minor c-f cleanup Canto 0.7.5 ChangeLog * Fix some reader inconsistencies with reader keys moving selections * Wrap some harmless, rare curses exceptions * Workaround messed up SIGCHLD handling in multiprocessing * Doc updates Canto 0.7.4 ChangeLog * Correct some overlooked 0.7.3 stuff =P Canto 0.7.3 ChangeLog * Fix various update issues on long-running clients * Fix sluggish reader link toggling * Fix worker signals (and ^C as a side-effect) * Fix reader n/p keys not setting items read * Fix double quotes in programmatically added main tags * Fix shadows on horrendously broken feeds * Fix all-filtered stub * Refix hard-filters (??) * Minor cleanups * Documentation clarifications Canto 0.7.2 ChangeLog * Fix some precache troubles with aggregate filters / reverse * Restore feed-order without sort * Startup cleanups Canto 0.7.1 ChangeLog * Fix hard (feed) filters * Fix keyword escaping for non-regex searches * Fix items with totally undefined titles * Fix fetchlog header from arg refactor * Ignore some exceptions cause by multiprocessing * Minor doc tweaks Canto 0.7.0 ChangeLog * Convert to multiprocessing worker slave (huge performance) * Vast memory improvement (esp. for large lists) * Large scale refactor of *lots* of code * Better code documentation * Better site documentation * Partially validating configuration code * Partial test framework (to be added to as bugs arise) * Added configurable update triggers * Added `never_discard()` to keep certain items indefinitely. * Added SIGUSR2 signal to output debug backtrace. * Added state_change_hook * Added `canto-inspect`, a simple wrapper for examining feed internals * Added no-content stub for unfetchable feeds to avoid trying to update broken URLS repeatedly. * Added `add_info` extra function for adding content to the reader * new_hook now enforced by canto-fetch * Ignore keep settings lower than the number of items in a feed * tags variably now implicitly set to sane default * "reader" keybind now doesn't set item read (coupled with "just_read" for default) * Filters and Sorts now all subclass Filter and Sort class * Accept `conf.py` as well as `conf` for config name. * Fix double enforcement of rates (client more responsive to fetch updates) * Fix blank titles * Fix runhere.sh killing c-f Canto 0.6.13 ChangeLog * Fix drawing regression Canto 0.6.12 ChangeLog * Fix tag crash * Fix strange character weirdness * Fix/Improve HTML parser * Try UTF-8 for config before chardet Canto 0.6.11 ChangeLog * Fix OPML handling for OPML without text attribute * Exception clean ups * Doc clean ups * canto.extra additions Canto 0.6.10 ChangeLog * Make HTML parser more resistant to broken HTML * Fix minor exception in c-f thread * Finally make exceptions play nice with ncurses Canto 0.6.9 ChangeLog * Fix setup.py generating null bytes in const.py * Add 30 second timeout to canto-fetch * Make selection data persist for hooks / filters * Unset signals before exit (avoid shell garbage) * Set User-Agent to Canto/x.y.z (fixes some 403'd feeds) * Fix multiple c-f subtle corruption bug * Sync docs now that site runs out of git. Canto 0.6.8 ChangeLog * Fix set_tag_sort(None) * Fix miscount of items when all filtered * Reader keybinds now passed reader object (like Gui keybinds) * Cache overused locale query (crazy speedup on that) * Convert setup.py to pure python (no more sed scripts) Canto 0.6.7 ChangeLog * Make filter syntax uniform (add filters now work with canto/extra filters) * Fix add_tag() without sorts= set (typo) Canto 0.6.6 ChangeLog * Make setup.py sed scripts BSD compatible * Even basic print statements now obey locale.preferredencoding() * All input command-line input is unicode'd() (-n fix) Canto 0.6.5 ChangeLog * Fix multiple identical main tag weirdness * Fix curses crash with TERM misset * Fix unset default handlers * Fix lock crash * Fix small update problem * Allow 256 color definitions Canto 0.6.4 ChangeLog * Re-fix Unicode Tags (incomplete fix last time) * Detect / add encode declaration to conf (defaults to utf-8) Canto 0.6.3 ChangeLog * Fix Unicode Tags (damn you, `exec`) * Fix imports with unknown encoding * Fix locking issue causing items to reappear as unread Canto 0.6.2 ChangeLog * Browser improvements * runhere.sh detects 64-bit now Canto 0.6.1 ChangeLog * Fix docs/manpage * Fix add_tag troubles Canto 0.6.0 ChangeLog * Much improved reader output using HTMLParser * New message bar, no more floating boxes * Brand spanking new fine-grained locking in Canto and Canto-fetch * Basic multi-threading in Canto-fetch * New content handling (can now open images and enclosures with custom handlers bases on extensions and link type) - Content can now be fetched to /tmp for programs too * Support for Snownews/Liferea type execurl scripts * Reader can now take a dedicated number of lines on the top, bottom, left, or right of the typical GUI * Username/password support for feeds using Basic or Digest auth * Add ; / : to jump skip through feeds by index * -t flag to use with -r to set a tag on the command line * New UTF-8 compatible InputBox for non-ASCII searching * Everything (sorts, filters, tags) is directly set-able with a keybind * Deprecate `add_feed`, `browser`, and `text_browser` * Terminal output is now coerced to locale.preferredencoding(), fixing non-UTF locales being used. Internals now stricly Unicode * Much more advanced usage of tags * More correct and flexible drawing code * The beginnings of a test-suite (still incomplete). Canto 0.5.7 ChangeLog * Add -r flag to add URL from the command line. * Added save() example keybind to canto/extra.py * Fix nasty text browser problems from 0.5.6 Canto 0.5.6 ChangeLog * Fix OPML import * Fix changing feed names immediately * Two feeds with the same name are now merged * Add -b (background flag) to canto-fetch Canto 0.5.5 ChangeLog * Allow add_feed() to be called without a tag (name) * Add canto-fetch -d (daemon mode) * Add runhere.sh script to run canto straight from source * Add source_urls * Fix OPML export output * Fix Canto hang after help * Cleanup C compile warning * More rendering cleanups Canto 0.5.4 ChangeLog * Fix renderer overrides Canto 0.5.3 ChangeLog * Fixed browser zombies * Fixed closing link enumeration * Fixed missing -i/-o man page references * Add ability to use any type of URL for feed (e.g. file://) Canto 0.5.2 ChangeLog * Added sorting * Added OPML support * Added change_feed * addfeed() == add_feed() * Added missing default_filterlist() * Fixed bad keybind crashes Canto 0.5.1 ChangeLog * Fixed progressing memory leak * Hooks/filters are now wrapped in an exception logging wrapper. * noitem_unsafe decorator applied to all Gui() functions that can't be used without any items * Fixed uninitialized variable causing crash. Canto 0.5.0 ChangeLog * New dependency on feedparser and chardet. * Global and per-feed filters implemented. * Hooks, to call code on events (like new items, changing selection, etc.) * Entirely changed, much less fragile on-disk format. * Canto and canto-fetch are now a single, multi-call binary * Canto-fetch no longer has its own config * More useful keybinds, support lists of actions and arbitrary functions. * Per-feed renderers can be configured. * Story items now include all content, rather than just title/link/description (pretty useful for neat per-feed renderers, thanks to feedparser) * Reader is now prettier, and more correct. * Canto.extra is provided for nice helper functions for your config. * Code documentation is much improved * Code organization is more logical * Proper locking between multiple instances of canto/canto-fetch. * Entirely backwards compatible with 0.4.0 configs Canto 0.4.8 ChangeLog * Fix minor search problem * Move title_key logic into canto_fetch Canto 0.4.7 ChangeLog * Fix HTML entities in story titles. * Prioritize read over unread stories on disk. * Remove --delete, canto-fetch cleans up automatically. * Add vim-like (j/k) scrolling default bindings. * Theme cleanups, interpret more HTML tags. * Add User-Agent request header, fixing feeds like Google News. * Add next/prev_unread bindings (default to ./,) Canto 0.4.6 ChangeLog * More title_key fixups. * Move entity parsing to client, for more correct handling. * Add basic list handling to reader. Canto 0.4.5 ChangeLog * Fix html entity crash * Improve reader internal link detection * Fix title_key behavior * Minor theme fix for collapsed feeds Canto 0.4.4.1 ChangeLog * Quick fix for conf.example generation/use. Canto 0.4.4 ChangeLog * Vast cleanups in renderer / renderer format / C code * Added canto -l for listing * Added canto -n for printing number of new items in feed * Added canto -a for printing number of new items in all * Added canto-fetch -V for verbose state printing * Added canto-fetch -f to force update, regardless of timestamp * Added set_collapse_all unset_collapse_all keybinds, eliminate toggle. * Added title_key option to addfeed with default * Make canto -u verbose * Create and use a conf.example if no conf file found. * Stop kludging paths with sed, start relying on os.system() * Start forcing an update if all feeds are empty (first start?) * Fix canto -D * Fix drawing on very skinny terminals * Fix feed / tag separation in cfg Canto 0.4.3 ChangeLog * `xterm -e canto` now works as planned (reported by Aldrik Dunbar and grunge) * The canto/.conf is now encoded in memory to UTF-8 fixing embedded, non-ASCII characters (reported by Ricardo Martins) * Feed names now have forward slashes stripped for disk storage (reported by Ricardo Martins)