示例#1
0
$playlist_scan = new PlaylistScan('itunes');
$playlist = PlaylistTable::getInstance();
$playlist_files = PlaylistFilesTable::getInstance();
$itunes_parser = new StreemeItunesPlaylistParser(dirname(__FILE__) . '/../files/iTunes Music Library.xml');
$t->comment('->construct()');
$playlist_scan = new PlaylistScan('itunes');
$t->comment('->get_last_scan_id()');
$t->is($playlist_scan->get_last_scan_id(), 2, 'Got valid playlist scan id');
$t->comment('->get_service_name()');
$t->is($playlist_scan->get_service_name(), 'itunes', 'got valid source name');
$t->comment('->is_scanned()');
$playlist_id = $playlist_scan->is_scanned($playlist_scan->get_service_name(), '90\'s Rock', 'B16E9C5DFFC4695D');
$t->is($playlist_id, '1', 'Targeted the correct playlist');
$t->is($playlist_scan->get_total_playlists(), 1, 'Playlist count incremented');
$t->comment('->add_playlist()');
$playlist_scan = new PlaylistScan('itunes');
$t->comment('Adding New...');
$new_stuff_files = array(array('filename' => 'file://localhost/home/music/new1.mp3'));
$playlist_id = $playlist_scan->add_playlist('New Stuff', $new_stuff_files, 0, $playlist_scan->get_last_scan_id(), 'itunes', 'AED0293002lECFFC');
$t->is($playlist_scan->get_added_playlists(), '1', 'Added Playlist');
$result = $playlist->find($playlist_id);
$t->is($result->name, 'New Stuff', 'Correct playlist name added');
$t->is($result->service_name, 'itunes', 'Correct service name added');
$t->is($result->service_unique_id, 'AED0293002lECFFC', 'Correct scan id added');
$t->is($result->scan_id, 3, 'Correct scan id added');
$t->comment('Updating Existing Playlist with new playlist name and an extra file');
$rock_files = array(array('filename' => 'file://localhost/E:/music/TheKingOfLimbs-MP3/The%20King%20Of%20Limbs/01%20Bloom.MP3'), array('filename' => 'file://localhost/E:/music/TheKingOfLimbs-MP3/some%20rock.MP3'));
$update_playlist_id = $playlist_scan->is_scanned($playlist_scan->get_service_name(), 'Nineties Rock', 'B16E9C5DFFC4695D');
$playlist_id = $playlist_scan->add_playlist('Nineties Rock', $rock_files, $update_playlist_id, $playlist_scan->get_last_scan_id(), 'itunes', 'B16E9C5DFFC4695D');
$t->is($playlist_scan->get_added_playlists(), '2', 'Added Updated Name Playlist');
$t->is($playlist_id, 5, 'added new playlist entry');
示例#2
0
<?php

/**
 * playlistScanItunes
 *
 * Itunes playlist ingest process
 *
 * @package    streeme
 * @author     Richard Hoar
 * @version    SVN: $Id: Builder.php 7490 2010-03-29 19:53:27Z jwage $
 */
$itunes_music_library = sfConfig::get('app_itunes_xml_location');
$mapped_drive_locations = sfConfig::get('app_mdl_mapped_drive_locations');
$allowed_filetypes = array_map('strtolower', sfConfig::get('app_aft_allowed_file_types'));
$itunes_parser = new StreemeItunesPlaylistParser($itunes_music_library);
$playlist_scan = new PlaylistScan('itunes');
$playlist_name = $itunes_playlist_id = null;
$playlist_songs = array();
function mapItunes($collection)
{
    return array('filename' => iconv(sfConfig::get(app_filesystem_encoding, 'ISO-8859-1'), 'UTF-8//TRANSLIT', StreemeUtil::itunes_format_decode($collection['filename'], StreemeUtil::is_windows(), sfConfig::get('app_mdl_mapped_drive_locations'))));
}
while ($itunes_parser->getPlaylist($playlist_name, $itunes_playlist_id, $playlist_songs)) {
    //There's no point scanning the entire library again, so we'll exclude the first record in iTunes
    if (!isset($first_skipped)) {
        $first_skipped = true;
        continue;
    }
    //convert itunes filenames to system specific paths
    $playlist_songs = array_map(mapItunes, $playlist_songs);
    //update playlists