diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-05-13 07:27:16 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-05-13 07:27:16 +0000 |
commit | 6546c826432b5c18c22a2ac2cd7dd1d77a7002c3 (patch) | |
tree | 425469fcd29d5fbb26455220b40d3f576802dc38 | |
parent | ada740ec4123cf286c8abc3a09eb62ed80716fba (diff) | |
download | ampache-6546c826432b5c18c22a2ac2cd7dd1d77a7002c3.tar.gz ampache-6546c826432b5c18c22a2ac2cd7dd1d77a7002c3.tar.bz2 ampache-6546c826432b5c18c22a2ac2cd7dd1d77a7002c3.zip |
fixed playlists thing for real this time
-rw-r--r-- | admin/catalog.php | 16 | ||||
-rwxr-xr-x | docs/CHANGELOG | 4 | ||||
-rw-r--r-- | lib/class/catalog.class.php | 30 | ||||
-rw-r--r-- | lib/log.lib.php | 4 | ||||
-rw-r--r-- | lib/preferences.php | 11 | ||||
-rw-r--r-- | modules/amazon/AmazonSearchEngine.class.php | 25 | ||||
-rw-r--r-- | playlist.php | 9 | ||||
-rw-r--r-- | templates/show_import_playlist.inc.php | 14 |
8 files changed, 74 insertions, 39 deletions
diff --git a/admin/catalog.php b/admin/catalog.php index c3c3799e..54fac154 100644 --- a/admin/catalog.php +++ b/admin/catalog.php @@ -46,7 +46,8 @@ switch ($_REQUEST['action']) { include(conf('prefix') . '/templates/flag.inc'); break; case 'add_to_all_catalogs': - $_REQUEST['catalogs'] = Catalog::get_catalog_ids(); + $catalog = new Catalog(); + $_REQUEST['catalogs'] = $catalog->get_catalog_ids(); case 'add_to_catalog': if (conf('demo_mode')) { break; } if ($_REQUEST['catalogs'] ) { @@ -65,7 +66,7 @@ switch ($_REQUEST['action']) { case _("Add to all Catalogs"): if (conf('demo_mode')) { break; } - /* If they are using the file MPD type, and it's currently enabled lets do a DBRefresh for em */ + /* If they are using the file MPD type, and it's currently enabled lets do a DBRefresh for em if (conf('mpd_method') == 'file' AND conf('allow_mpd_playback')) { // Connect to the MPD if (!class_exists('mpd')) { require_once(conf('prefix') . "/modules/mpd/mpd.class.php"); } @@ -77,6 +78,8 @@ switch ($_REQUEST['action']) { $myMpd->DBRefresh(); } // if MPD enabled + //FIXME: File Method no longer exists... leaving this in for a bit + */ $catalogs = $catalog->get_catalogs(); foreach ($catalogs as $data) { @@ -85,7 +88,8 @@ switch ($_REQUEST['action']) { include(conf('prefix') . '/templates/catalog.inc'); break; case 'update_all_catalogs': - $_REQUEST['catalogs'] = Catalog::get_catalog_ids(); + $catalog = new Catalog(); + $_REQUEST['catalogs'] = $catalog->get_catalog_ids(); case 'update_catalog': /* If they are in demo mode stop here */ if (conf('demo_mode')) { break; } @@ -104,11 +108,12 @@ switch ($_REQUEST['action']) { show_confirmation($title,$body,$url); break; case 'full_service': + $catalog = new Catalog(); /* Make sure they aren't in demo mode */ if (conf('demo_mode')) { break; } if (!$_REQUEST['catalogs']) { - $_REQUEST['catalogs'] = Catalog::get_catalog_ids(); + $_REQUEST['catalogs'] = $catalog->get_catalog_ids(); } /* This runs the clean/verify/add in that order */ @@ -157,7 +162,8 @@ switch ($_REQUEST['action']) { show_confirmation($title,$body,$url); break; case 'clean_all_catalogs': - $_REQUEST['catalogs'] = Catalog::get_catalog_ids(); + $catalog = new Catalog(); + $_REQUEST['catalogs'] = $catalog->get_catalog_ids(); case 'clean_catalog': /* If they are in demo mode stop them here */ if (conf('demo_mode')) { break; } diff --git a/docs/CHANGELOG b/docs/CHANGELOG index 2b5e8e27..84bb3868 100755 --- a/docs/CHANGELOG +++ b/docs/CHANGELOG @@ -4,6 +4,10 @@ -------------------------------------------------------------------------- v.3.3.2-Beta3 + - Supressed deprecated var warnings in PHP5 + - Fixed link to playlist import + - Fixed playlist add on every catalog add (I'm not kidding this + time... really..) - Fixed Access Control List so that it prevents Login if you are not inside the allowed range. - Fixed Localplay/Stream Buttons so that they also work if you diff --git a/lib/class/catalog.class.php b/lib/class/catalog.class.php index 35ac600e..c70095cf 100644 --- a/lib/class/catalog.class.php +++ b/lib/class/catalog.class.php @@ -282,7 +282,7 @@ class Catalog { @param $gather_type=0 Determins if we need to check the id3 tags of the file or not @param $parse_m3u Tells Ampache to look at m3us */ - function add_files($path,$gather_type='',$parse_m3u='',$verbose=1) { + function add_files($path,$gather_type='',$parse_m3u=0,$verbose=1) { /* Strip existing escape slashes and then add them again This is done because we keep adding to the dir (slashed) + (non slashed) and a double addslashes would pooch things @@ -377,7 +377,7 @@ class Catalog { if (is_readable($full_file)) { - if (substr($file,-3,3) == 'm3u' AND $parse_m3u) { + if (substr($file,-3,3) == 'm3u' AND $parse_m3u > 0) { $this->_playlists[] = $full_file; } // if it's an m3u @@ -955,7 +955,7 @@ class Catalog { $start_time = time(); /* Get the songs and then insert them into the db */ - $this->add_files($this->path,$type,1,$verbose); + $this->add_files($this->path,$type,0,$verbose); echo "<script language=\"JavaScript\">"; echo "update_txt('" . $this->count . "','count_add_" . $this->id ."');"; @@ -1933,17 +1933,18 @@ class Catalog { $sql = "SELECT id FROM genre WHERE name LIKE '$genre'"; $db_results = mysql_query($sql, dbh()); - $results = mysql_fetch_object($db_results); + $results = mysql_fetch_assoc($db_results); - if (!$results->id) { + if (!$results['id']) { $sql = "INSERT INTO genre (name) VALUES ('$genre')"; $db_results = mysql_query($sql, dbh()); - $results->id = mysql_insert_id(dbh()); + $insert_id = mysql_insert_id(dbh()); } + else { $insert_id = $results['id']; } - $this->genres[$genre] = $results->id; + $this->genres[$genre] = $insert_id; - return $results->id; + return $insert_id; } //check_genre @@ -2122,16 +2123,19 @@ class Catalog { $results = explode("\n",$data); + $pattern = "/\.(" . conf('catalog_file_pattern'); + $pattern .= ")$/i"; + foreach ($results as $value) { // Remove extra whitespace $value = trim($value); - if (preg_match("/\.[A-Za-z0-9]{3,4}$/",$value)) { - $file[0] = str_replace("/","\\",$value); - $file[1] = str_replace("\\","/",$value); + if (preg_match($pattern,$value)) { + $filename = basename($value); /* Search for this filename, cause it's a audio file */ - $sql = "SELECT id FROM song WHERE file LIKE '%" . sql_escape($file[0]) . "' OR file LIKE '%" . sql_escape($file[1]) . "'"; + $sql = "SELECT id FROM song WHERE file LIKE '%" . sql_escape($filename) . "'"; $db_results = mysql_query($sql, dbh()); - $song_id = mysql_result($db_results,'id'); + $results = mysql_fetch_assoc($db_results); + $song_id = $results['id']; if ($song_id) { $songs[] = $song_id; } } // if it's a file diff --git a/lib/log.lib.php b/lib/log.lib.php index d187fa60..a82338f0 100644 --- a/lib/log.lib.php +++ b/lib/log.lib.php @@ -81,6 +81,10 @@ function ampache_error_handler($errno, $errstr, $errfile, $errline) { break; } // end switch + /* Don't log var: Deprecated we know shutup! */ + if (strstr($errstr,"var: Deprecated. Please use the public/private/protected modifiers")) { + return false; + } $log_line = "[$error_name] $errstr on line $errline in $errfile"; debug_event('error',$log_line,$level); diff --git a/lib/preferences.php b/lib/preferences.php index 371c5d92..a94140a6 100644 --- a/lib/preferences.php +++ b/lib/preferences.php @@ -428,4 +428,15 @@ function init_preferences() { } // init_preferences +/** + * show_import_playlist + * This just shows the template for importing playlists + * from something outside Ampache such as a m3u + */ +function show_import_playlist() { + + require_once(conf('prefix') . '/templates/show_import_playlist.inc.php'); + +} // show_import_playlist + ?> diff --git a/modules/amazon/AmazonSearchEngine.class.php b/modules/amazon/AmazonSearchEngine.class.php index 476468c2..f909b9ff 100644 --- a/modules/amazon/AmazonSearchEngine.class.php +++ b/modules/amazon/AmazonSearchEngine.class.php @@ -48,16 +48,17 @@ class AmazonSearch { function AmazonSearch($token, $base_url_param = '', $associates_id = 'none') {
- if($base_url_param != ''){$this->base_url = $base_url_param . $this->url_suffix;
- if (conf('debug')) {
- log_event($GLOBALS['user']->username,'amazon-search-results',"Retrieving from " . $base_url_param . $this->url_suffix);
- }
+ /* If we have a base url then use it */
+ if ($base_url_param != '') {
+ $this->base_url = $base_url_param . $this->url_suffix;
+ debug_event('amazon-search-results','Retrieving from ' . $base_url_param . $this->url_suffix,'5');
}
- else{ $this->base_url=$this->base_url_default . $this->url_suffix;
- if (conf('debug')) {
- log_event($GLOBALS['user']->username,'amazon-search-results',"Retrieving from DEFAULT");
- }
- };
+ /* Default Operation */
+ else {
+ $this->base_url=$this->base_url_default . $this->url_suffix;
+ debug_event('amazon-search-results','Retrieving from DEFAULT','5');
+ }
+
$this->token = $token;
$this->associates_id = $associates_id;
@@ -99,12 +100,10 @@ class AmazonSearch { $snoopy->fetch($url);
$contents = $snoopy->results;
- if (conf('debug')) {
- log_event($GLOBALS['user']->username,'amazon-search-results',"Retrieved $contents");
- }
+ debug_event('amazon-search-results','Retrieved ' . strlen($contents) . ' chars','5');
if (!xml_parse($this->_parser, $contents)) {
- die(sprintf('XML error: %s at line %d',xml_error_string(xml_get_error_code($this->_parser)),xml_get_current_line_number($this->_parser)));
+ debug_event('amazon-search-results','Error:' . sprintf('XML error: %s at line %d',xml_error_string(xml_get_error_code($this->_parser)),xml_get_current_line_number($this->_parser)),'1');
}
xml_parser_free($this->_parser);
diff --git a/playlist.php b/playlist.php index 2e90a4f5..98a6a9b8 100644 --- a/playlist.php +++ b/playlist.php @@ -148,6 +148,15 @@ switch ($action) { case 'show_import_playlist': show_import_playlist(); break; + case 'import_playlist': + $catalog = new Catalog(); + $catalog->import_m3u(scrub_in($_REQUEST['filename'])); + + $url = conf('web_path') . '/playlist.php'; + $title = _('Playlist Imported'); + $body = ''; + show_confirmation($title,$body,$url); + break; case 'set_track_numbers': /* Make sure they have permission */ if (!$playlist->has_access()) { diff --git a/templates/show_import_playlist.inc.php b/templates/show_import_playlist.inc.php index 05f32232..c4fd6284 100644 --- a/templates/show_import_playlist.inc.php +++ b/templates/show_import_playlist.inc.php @@ -21,20 +21,18 @@ */ ?> <form method="post" name="import_playlist" action="<?php echo conf('web_path'); ?>/playlist.php" enctype="multipart/form-data"> -<table border="0" cellpadding="0" cellspacing="0" class="border"> -<tr class="table-header" > - <td colspan="2" align="center"><?php echo _("Importing a Playlist from a File"); ?></td> -</tr> +<span class="header2"><?php echo _('Importing a Playlist from a File'); ?></span> +<table border="0" cellpadding="0" cellspacing="0" class="border" style="border: 1px solid black;"> <tr class="<?php echo flip_class(); ?>"> <td> - <?php echo _("Filename"); ?>: + <?php echo _('Filename'); ?>: <?php $GLOBALS['error']->print_error('filename'); ?> </td> - <td><input type="text" name="filename" value="<?php echo $_REQUEST['filename']; ?>" size="45" /></td> + <td><input type="text" name="filename" value="<?php echo scrub_out($_REQUEST['filename']); ?>" size="45" /></td> </tr> <tr class="<?php echo flip_class(); ?>"> <td> - <?php echo _("Playlist Type"); ?> + <?php echo _('Playlist Type'); ?> </td> <td> <select name="playlist_type"> @@ -47,7 +45,7 @@ <td> </td> <td> <input type="hidden" name="action" value="import_playlist" /> - <input type="submit" value="<?php echo _("Import Playlist"); ?>" /> + <input type="submit" value="<?php echo _('Import Playlist'); ?>" /> </td> </tr> </table> |