Commits on Jul 27, 2012
  1. Fix possible feed forgetfulness.

    self.items being empty happens all the time, so previously it was
    possible for an initial request to timeout or otherwise fail and causing
    the daemon to stub out the disk, even if previous content was there.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 27, 2012
Commits on Jul 21, 2012
  1. Add proper versioning.

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 21, 2012
Commits on Jul 20, 2012
  1. Fix printing unset variable in remote.

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 19, 2012
Commits on Jul 19, 2012
  1. Allow empty strings to be set by remote config.

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 19, 2012
  2. Better whitespace sensitivity for remote

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 19, 2012
  3. Properly report addfeed errors.

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 18, 2012
  4. Change URLs in manpages

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 18, 2012
  5. Remove extraneous output.

    We don't need to print the OPML file being imported...
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 18, 2012
  6. Stub bugged/empty feeds with no previous items.

    The feed objects still exist, so we need to be able to count on shelf
    contents existing.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 18, 2012
  7. Add basic manpages for daemon and remote

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 18, 2012
Commits on Jul 18, 2012
  1. Py3 no longer should need to encode before printing

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 18, 2012
Commits on Jul 17, 2012
  1. Remove extraneous hook logging.

    This can actually cripple hook performance depending on the number of
    registered hooks and their string representations ... even though the
    log level is generally too low to actually *use* the string...
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jul 17, 2012
Commits on May 13, 2012
  1. Hardent client code for multiple connections.

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed May 13, 2012
Commits on May 11, 2012
  1. Add Reddit plugin User-Agent

    Improve reddit plugin to report a User-Agent other than python's,
    because otherwise it's pegged as a script and somehow deprioritized /
    additionally ratelimited. You get HTTP 429 errors in this case.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed May 11, 2012
  2. Logging tweak.

    Strip NULL from the protocol stuff so that the log files are better
    behaved (i.e. detected as text files by programs like grep).
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed May 11, 2012
Commits on Mar 5, 2012
  1. Trim unused tag configuration

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Mar 5, 2012
Commits on Mar 1, 2012
  1. Fix exception formatting.

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Mar 1, 2012
Commits on Feb 8, 2012
  1. Fix feedparser invocation in remote

    In particular, the code to grab the name of a feed automatically.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 8, 2012
  2. Fix reddit plugin

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 7, 2012
Commits on Feb 7, 2012
  1. Update feedparser invocation.

    Fixes actual fetching with Py3
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 7, 2012
  2. Remove ancient alpha info from README

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 7, 2012
  3. Update README

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 7, 2012
  4. Further py3 fixes

    - errnos moved to e.args[0] from e[0]
    - remove unused sortfunc kwarg
    - strip useless decoder function
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 7, 2012
  5. Initial port to Python 3

    There may be some lingering bugs in exception handlers.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 7, 2012
Commits on Feb 6, 2012
  1. Further workaround fix

    Have to waitpid for that pid or we'll race. This also allows us to
    eliminate the CHLD handler.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 6, 2012
  2. Cleanup/fix workaround.

    Previous workaround was code with 'r' mode still. Fixed. Also, clean it
    up a bit by performing the open and close in the fork'd process.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 6, 2012
  3. Workaround 13947

    Ugh, so the workaround in place for databases not shrinking themselves
    (thanks to bsddb disappearing), was to use the reorganize() function
    sporadically.
    
    This function has a bug I submitted: 13947 where it leaves file
    descriptors open that cause subsequent open() calls to fail with -EAGAIN
    until the process file descriptors are closed on exit().
    
    So, to workaround the bug in the workaround, we now fork(),
    reorganize(), and exit() in a pointless little temporary process.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Feb 5, 2012
Commits on Jan 26, 2012
  1. Properly check tag configs

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jan 25, 2012
  2. Reddit plugin v2

    This version abides by the request / 2 second limit Reddit imposes on
    clients.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jan 25, 2012
  3. Add missing traceback import

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jan 25, 2012
  4. Make failed arg transforms return False, not None

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Jan 25, 2012
Commits on Dec 20, 2011
  1. Warn on type change, instead of ignoring.

    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Dec 20, 2011
Commits on Dec 14, 2011
  1. Support automatically fetching attributes on ITEMS

    The current ATTRIBUTES command requires the client to know the ID of the
    story it's requesting attributes for, as it should. However, this means
    that two round trips have to be made when the IDs are unknown (ITEMS,
    then ATTRIBUTES).
    
    By adding the AUTOATTR command, the client can basically specify the
    attributes it knows it's going to need and the daemon will behave as if
    it received an ATTRIBUTES command for all of the returned items
    immediately afterwards.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Dec 14, 2011
  2. Move protocol to JSON

    To improve interoperability, all external presence of the daemon is now
    JSON based. The config was changed awhile back, now the protocol is JSON
    parse-able as well.
    
    The major difference here is that the story ID is now a string, which is
    in turn a JSON string dump of a dict including the ID and the URL.
    Before, it was a (URL, ID) tuple, but that's not hashable and not
    guaranteed to be easily parsable elsewhere.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Dec 14, 2011
Commits on Dec 2, 2011
  1. Reorganize database with read-only permissions

    I'm not 100% sure how a reorg only requires read permissions. I'm clear
    on how the database only needs to be read, but then it's overwritten. I
    assume that's a separate permissions check.
    
    I do know one thing: if this is done as a writer, for some reason
    subsequent opens to the file return EAGAIN that will never resolve. The
    simplest explanation for that error is that the file descriptor is still
    open r/w (gdbm doesn't allow multiple writers for obvious reasons), but
    since the reorganization code immediately calls close() I'm not sure how
    that's possible.
    
    I'm also not convinced that this hasn't broken the reorganization code,
    but it doesn't except and I'll accept a slowly growing database over a
    crashing daemon any day.
    
    Signed-off-by: Jack Miller <jack@codezen.org>
    committed Dec 2, 2011