<?
//
// +---------------------------------------------------------------------------+
// | Blip.fm PHP5 API proxy v0.2                                               |
// +---------------------------------------------------------------------------+
// | Copyright (c) 2008 Fuzz Artists, Inc.                                     |
// | All rights reserved.                                                      |
// |                                                                           |
// | Redistribution and use in source and binary forms, with or without        |
// | modification, are permitted provided that the following conditions        |
// | are met:                                                                  |
// |                                                                           |
// | 1. Redistributions of source code must retain the above copyright         |
// |    notice, this list of conditions and the following disclaimer.          |
// | 2. Redistributions in binary form must reproduce the above copyright      |
// |    notice, this list of conditions and the following disclaimer in the    |
// |    documentation and/or other materials provided with the distribution.   |
// |                                                                           |
// | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR      |
// | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
// | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.   |
// | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,          |
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT  |
// | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY     |
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT       |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF  |
// | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.         |
// +---------------------------------------------------------------------------+
// | For help with this library, contact api@blip.fm                           |
// +---------------------------------------------------------------------------+
//
    // Remove the next line if you have PEAR and the module Crypt_HMAC
    
require_once ('lib/HMAC.php');
    require_once (
'lib/Blipfm.php');

    
// TODO: Prevent unwanted access by, for example, limiting access to specific IPs.

    // Enter your API info
    
define('API_KEY''<Your API key>');
    
define('SECRET_KEY''<Your secret key>');

    
$function   $_REQUEST['function'];
    
$params     $_REQUEST['params'];
    
$method     $_SERVER['REQUEST_METHOD'];

    
$blipfm = new Blipfm (API_KEYSECRET_KEY);

    
// Pass on HTTP Basic Authentication credentials
    
if($_SERVER['PHP_AUTH_USER'] && $_SERVER['PHP_AUTH_PW'])
    {
        
$blipfm->setCredentials($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
    }

    
// Pass the request to the PHP API Client, retrieve the results as a JSON string
    
try {
        
$result $blipfm->call ($function$params$methodBlipfm::FORMAT_OUTPUT_JSON);
    }
    catch (
Exception $e)
    {
        
$code $e->getCode();

        
// Set the response header
        
header ("HTTP/1.0 {$code}");

        
// The request failed, return the error code
        
$rtn = array();

        
$rtn['error'] = array (
            
'code' => $e->getCode (),
            
'message' => $e->getMessage (),
            
'result' => $e->getResult (),
            
'format' => $e->getFormat ()
        );

        
$result json_encode($rtn);
    }

    echo 
$result;
?>