Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

TiVo::Calypso
a Perl interface to the TiVo Calypso protocol

TiVo::Calypso - a Perl interface to the TiVo Calypso protocol


NAME


    TiVo::Calypso - a Perl interface to the TiVo Calypso protocol


SYNOPSIS


    use TiVo::Calypso;

    my $server = TiVo::Calypso::Server->new(

        SERVER_NAME => "My Server",

        CACHE_DIR   => "/tmp"

    );

    my $music_service = TiVo::Calypso::Container::Music->new(

        TITLE     => "Music Library",

        PATH      => "/mp3",      

        SERVICE   => "/Music",

        SCROBBLER =>

        {

            POSTURL  => 'http://post.audioscrobbler.com',

            USERNAME => 'scrobbleuser',

            PASSWORD => 'p4ssw0rd'

        }

    );

    $server->add_service( $music_service );


DESCRIPTION


    TiVo::Calypso provides a Perl interface to the TiVo Calypso

    protocol, allowing development of custom server and CGI

    applications to act as a media source for the TiVo consumer

    platform.

    TiVo::Calypso depends on the following third-party modules for

    full functionality:

        Storable        ( enables caching )

        Digest::MD5     ( enables caching )

        IO::File        ( enables general file serving )

        MP3::Info       ( enables MP3 serving )

        LWP::Simple     ( AudioScrobbling )

    TiVo::Calypso defines the following classes:

        TiVo::Calypso::Server

        TiVo::Calypso::Request

        TiVo::Calypso::Container

            TiVo::Calypso::Container::Server

            TiVo::Calypso::Container::Music

        TiVo::Calypso::Item

            TiVo::Calypso::Item::MP3


PUBLIC METHODS


    TiVo::Calypso::Server->new()

        Expects a hash of arguments to define the new Calypso

        server:

        SERVER_NAME defines the string by which the server

        identifies itself. It is purely cosmetic. (optional)

        CACHE_DIR defines the directory used to cache data

        objects and scaled images. This directory must be

        readable and writable in order for caching to take

        place.

    TiVo::Calypso::Server->add_service()

        Expects to be passed a TiVo::Container object which

        will be added to the master list of services

        available on this server.

    TiVo::Calypso::Server->request( $script_name, $path_info,

            $query_string )

        Expects to be passed three scalars (or a single

        predefined TiVo::Calypso::Request object) of the same

        format as the environment variables SCRIPT_NAME,

        PATH_INFO, and QUERY_STRING defined by a standard web

        server.

        TiVo::Calypso::Server->request returns a list with 2

        elements.  The first element is a reference to a hash

        which contains the recommended HTTP headers to be returned

        to the client. The second element is a reference to either

        a scalar or an IO::File object, depending on the type of

        data requested.

        TiVo::Calypso::Server->request returns undef on a bad

        request.

    TiVo::Calypso::Container::Music->new()

        Expects a hash of arguments to define a service

        (directory of content):

        PATH defines the directory on the local filesystem

        to search for content to be made available via

        this service.

        SERVICE is the virtual directory name which will be

        used to describe this service in URLs.

        TITLE is the descriptive label which will be used to

        describe this service in messages from the server.

        (optional)


MODIFICATIONS


    TiVo::Calypso is a branch of TiVo.pm, originally released by

    TiVo Inc.  TiVo.pm has been declared 'dead' by TiVo Inc. and

    released into the public domain.

    Additional modifications since the initial 1.0 release from

    TiVo include the following:

        Aggressive caching has been fixed.

        A smarter sort method has been implemented.

        AudioScrobbler (last.fm) support has been added.  The

        synopsis should be enough to explain how to use it.

        TiVo::Calypso::Container::Music now defaults to an

        alphabetical list for browsing.  200+ artists made

        browsing terribly slow/painful.


AUTHOR


    TiVo.pm was initially written by TiVo, Inc.

    Modifications and maintenance of TiVo::Calypso is now done

    by Scott Schneider <sschneid@gmail.com>.

    Please e-mail with problems, bug fixes, comments and complaints.
Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy