track.track_artist, track.featuring, track.miliseconds, track.track_id, track.genre AS genre_id, genre.genre AS genre_string, track.audio_dataformat, track.audio_bits_per_sample, track.audio_sample_rate, track.album_id, track.number, track.track_id, track.year as trackYear FROM track, genre WHERE track.genre=genre.genre_id AND track.relative_file_hash= "' . pathhash($file[$i]) . '" '); $table_track = mysql_fetch_assoc($query); $playtime[] = (int) $table_track['miliseconds']; $track_id[] = (string) $table_track['track_id']; $genre_id[(int) $table_track['genre_id']] = (string) $table_track['genre_string']; $number[] = (string) $table_track['number']; if (!isset($table_track['artist'])) { $table_track['artist'] = $file[$i]; $table_track['title'] = 'Unknown'; } $query2 = mysql_query('SELECT album, year, image_id FROM album WHERE album_id="' . $table_track['album_id'] . '"'); $image_id = mysql_fetch_assoc($query2); $table_track['title'] = $table_track['title'] == '' ? basename($table_track['relative_file']) : $table_track['title']; $image_id['album'] = $image_id['album'] == '' ? basename(dirname($table_track['relative_file'])) : $image_id['album']; ?>
function updateSong($currentSong, $currentDirectory, $mtimeDirectory, $mtime, $time, $artist, $title, $track, $album, $date, $genre) { global $cfg, $db, $allAlbumIds, $allGenreIds; // phase if (isset($allAlbumIds[$cfg['media_dir'] . $currentDirectory]) === TRUE) { $album_id = $allAlbumIds[$cfg['media_dir'] . $currentDirectory]; } else { // create a new album_id $album_id = base_convert(uniqid(), 16, 36); $album_add_time = $mtimeDirectory; mysql_query("\n\t\t\tINSERT INTO album_id(\n\t\t\t\talbum_id,\n\t\t\t\tpath,\n\t\t\t\talbum_add_time,\n\t\t\t\tupdated\n\t\t\t) VALUES ('" . mysql_real_escape_string($album_id) . "','" . mysql_real_escape_string($cfg['media_dir'] . $currentDirectory) . "','" . $album_add_time . "',\n\t\t\t\t'1'\n\t\t\t)"); $allAlbumIds[$cfg['media_dir'] . $currentDirectory] = $album_id; // initial insert with album-tags based on (first) track # genre is currently '1(Unknown)' - it will be updated in on of the next import/update phases mysql_query("\n\t\t\tINSERT INTO album(\n\t\t\t\tartist,\n\t\t\t\tartist_alphabetic,\n\t\t\t\talbum,\n\t\t\t\tyear,\n\t\t\t\talbum_id,\n\t\t\t\talbum_add_time,\n\t\t\t\tgenre_id,\n\t\t\t\tdiscs,\n\t\t\t\tupdated\n\t\t\t) VALUES (\n\t\t\t\t'" . mysql_real_escape_string($artist) . "',\n\t\t\t\t'" . mysql_real_escape_string($artist) . "',\n\t\t\t\t'" . mysql_real_escape_string($album) . "',\n\t\t\t\t'" . mysql_real_escape_string($date) . "',\n\t\t\t\t'" . mysql_real_escape_string($album_id) . "',\n\t\t\t\t'" . (int) $album_add_time . "',\n\t\t\t\t'1',\n\t\t\t\t'1',\n\t\t\t\t'1'\n\t\t\t)"); } // TODO: assign multiple genres to track and album based on splitchars $genre = genreUnifier($genre); $genreAz09 = az09($genre); // get Genre id $genre_id = isset($allGenreIds[$genreAz09]) === TRUE ? $allGenreIds[$genreAz09] : insertGenre($genre); $allGenreIds[$genreAz09] = $genre_id; // check if we do already have a matching track $res = mysql_query('SELECT track_id FROM track WHERE album_id = "' . mysql_real_escape_string($album_id) . '" AND relative_file = BINARY "' . mysql_real_escape_string($currentDirectory . $currentSong) . '" LIMIT 1'); if (mysql_num_rows($res) == 0) { mysql_query(' INSERT INTO track ( artist, title, relative_file, relative_file_hash, number, album_id, updated, track_id, filemtime, genre, year, disc, miliseconds, track_artist ) VALUES ( "' . mysql_real_escape_string($artist) . '", "' . mysql_real_escape_string($title) . '", "' . mysql_real_escape_string($currentDirectory . $currentSong) . '", "' . pathhash($currentDirectory . $currentSong) . '", ' . (is_numeric($track) ? (int) $track : 'NULL') . ', "' . mysql_real_escape_string($album_id) . '", 1, \'' . $album_id . '_' . fileId($cfg['media_dir'] . $currentDirectory . $currentSong) . '\', ' . (int) $mtime . ', ' . (int) $genre_id . ', ' . (int) $date . ', 1, ' . $time * 1000 . ', \'' . mysql_real_escape_string($artist) . '\' )'); } else { $row = mysql_fetch_assoc($res); $track_id = $row["track_id"]; mysql_query('UPDATE track SET artist = "' . mysql_real_escape_string($artist) . '", title = "' . mysql_real_escape_string($title) . '", number = ' . (is_numeric($track) ? (int) $track : 'NULL') . ', album_id = "' . mysql_real_escape_string($album_id) . '", updated = 1 WHERE track_id = "' . mysql_real_escape_string($track_id) . '" LIMIT 1'); } }