Permalink
Switch branches/tags
Nothing to show
Commits on Nov 20, 2016
  1. more permissive regexes for get-iplayer 2.95+

    only affects the progress bars
    committed Nov 20, 2016
  2. user-specifiable download mode

    use C-u for "good", any other prefix arg for "best" (default to
    "default").
    committed Nov 20, 2016
Commits on Jan 1, 2015
  1. update metadata

    committed Jan 1, 2015
Commits on Jul 24, 2014
  1. add CBBC/CBeebies presets

    committed Jul 24, 2014
Commits on May 22, 2014
  1. update copyright dates

    committed May 22, 2014
  2. implement process sentinel for iplayer downloads

    process state, in principle, goes
    
      connecting -> downloading -> transcoding -> finished
         |               v             |
         '-----------> failed <--------'
    
    thoughat the moment there's a wrong edge from downloading to finished
    if the get-iplayer process is terminated at an unfortunate time.
    committed May 22, 2014
Commits on May 21, 2014
  1. rudimentary progress display

    needs a lot of polishing:
    
    * could do with a sentinel to indicate done / aborted on process exit
    * progress bars would be nice
    * clearing old downloads
    * RET on each line should do something useful (e.g. jump to file in dired?)
    * we could display the title not the iplayer id
    
    but it might be basically functional
    committed May 21, 2014
Commits on Mar 17, 2014
  1. don't startup by default in "show all" mode

    my emacs takes a good couple of seconds merely to execute navigation
    commands through the buffer with all the content, and isearch chews up
    a *lot* of CPU.  It'd be nice to find out why and fix it, but in the
    meantime start up in "BBC One" mode (by default; there's a customize
    variable).
    
    Also include emacs-style next/previous and refresh key bindings.
    committed Mar 17, 2014
Commits on Dec 30, 2013
  1. Derive from special-mode

    - Ensures buffer is read-only, and responds to "q"
    - Buffer is made temporarily writable while inserting programme tree
    purcell committed Dec 30, 2013
Commits on Dec 28, 2013
Commits on Jun 25, 2013
  1. fix preset-handling code on emacs24

    only observable symptom was that £ for Radio 3 didn't work
    committed Jun 25, 2013
Commits on May 17, 2013
  1. make sure to select window/buffer/frame in emacs24

    (much easier than using the emacs23 method)
    committed May 17, 2013
Commits on Apr 23, 2013
  1. avoid using cl primitives

    use nth where possible, multiple cars where not
    committed Apr 23, 2013
  2. support other versions of get-iplayer

    use --modes=best to avoid errors from not having a particular kind of
    stream available.  (I'm not at all clear where the errors come from: I
    have never needed this before, but some users do).
    committed Apr 23, 2013
  3. support emacs 24

    Well this is horrible.  Now that execute-extended-command is in Lisp,
    using completing read, (this-command-keys-vector) ends up returing
    [13] for a function executed using M-x iplayer RET (rather than the
    more useful whole extended command key sequence).  This means that
    storing the key sequence for the last command and trying to execute it
    later mostly has the effect of adding linebreaks.  (The old code works
    if the command was invoked through a key sequence rather than through
    extended command; I think this suggests that execute-extended-command
    should be modified to update the various key variables/functions
    specially, like it already has been for this-command, but that is not
    helpful right now).
    
    So, as well, store the function name and funcall that.  Oh, but wait,
    some of the functions dispatch on the key sequence used to invoke
    them (presets).  So we need to pass the key sequence we were invoked
    with back.  That means we need to have a common signature for
    iplayer-functions.  This is all so horrible.
    
    But at least now it works with emacs24.  *sigh*.
    committed Apr 23, 2013
Commits on Mar 31, 2013
Commits on Nov 26, 2012
  1. slightly-confusing iplayer-{previous,next} commands

    Bind them to ?k and ?j in iplayer-mode.
    committed Nov 26, 2012
Commits on Jul 6, 2012
  1. cosmetic change

    Use this-command-keys-vector rather than this-command-keys --
    marginally easier to debug with.
    committed Jul 6, 2012
  2. fix iplayer commands invoked using M-x

    Sure, I only notice this when I have to restart my emacs.  But once is
    annoying enough.  The problem was that running M-x iplayer would cause
    an error from within execute-extended-command, within the process
    sentinel.  After trying to debug this and generating a nifty
    unbreakable infinite loop, I finally twigged that it was the
    frame/window/buffer frobbing that was the problem.  Piling hack upon
    hack, the answer is that we only want to do the frobbing once before
    the first command in the command keys, and once after the execution
    has finished.  Make it so.
    committed Jul 6, 2012
Commits on Jun 11, 2012
  1. rework commands in light of long cache refresh time

    The issue is that of get-iplayer itself managing its cache: if at any
    point it decides that the cache is sufficiently stale, it goes off and
    refreshes everything, which seems to take a long time -- if I'm
    unlucky, breaking my ERC sessions (and in any case making the rest of
    the editor session unusable).
    
    Construct a background process and sentinel to manage the cache
    updating before calling the real get-iplayer command.  The tricky bit
    here is to make sure that the sentinel and real body get executed in
    the right context.  Many things in the world are simpler with lexical
    scoping; this would have been one of them, but I am still on emacs 23
    and lexical binding is a thing of the future, so instead of making a
    bunch of thunks to be called later, we have to save commands (well,
    key sequences), but then those key sequences are divorced from the
    window and frame that they were originally typed into, so we have to
    get that context back.  Naive ways of doing that turn out not to work,
    because execute-kbd-macro runs its own command loop, which first of
    all selects a current frame and window, so if we've navigated away
    from the *iplayer* window/buffer we end up adding keystrokes to
    e.g. an ERC buffer, which is suboptimal; however, (ab)using the pre
    and post command hooks seems to make things work.  So do that, and all
    is well.
    committed Jun 11, 2012
Commits on Apr 24, 2012
Commits on Apr 23, 2012
  1. first cut of iPlayer interface for Emacs

    Very raw.  Uses get_iplayer (spelled "get-iplayer" on my system); "parses"
    the tree output; uses Orgstruct for presentation, and text properties for
    user interface.  Uncached calls to get-iplayer (the first in any four hours,
    unless the user has a cron job) blocks the whole of emacs for a good little
    while as get-iplayer spends its time pulling down metadata, and there is
    almost no useful feedback when downloading.
    
    On the other hand, it's easier for me than the command-line interface.
    committed Apr 23, 2012