summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/class/catalog.class.php71
-rw-r--r--lib/class/preference.class.php1
-rw-r--r--lib/duplicates.php120
3 files changed, 71 insertions, 121 deletions
diff --git a/lib/class/catalog.class.php b/lib/class/catalog.class.php
index 39c2c7ea..d5e8535f 100644
--- a/lib/class/catalog.class.php
+++ b/lib/class/catalog.class.php
@@ -791,6 +791,77 @@ class Catalog {
} //get_files
/**
+ * get_duplicate_songs
+ * This function takes a search type and returns a list of all song_ids that
+ * are likely to be duplicates based on teh search method selected.
+ */
+ public static function get_duplicate_songs($search_method) {
+
+ // Setup the base SQL
+ $sql = "SELECT song.id AS song,artist.id AS artist,album.id AS album,title,COUNT(title) AS ctitle".
+ " FROM `song` LEFT JOIN `artist` ON `artist`.`id`=`song`.`artist` " .
+ " LEFT JOIN `album` ON `album`.`id`=`song`.`album` ".
+ " GROUP BY song.title";
+
+ // Add any Additional constraints
+ if ($search_method == "artist_title" OR $search_method == "artist_album_title") {
+ $sql = $sql.",artist.name";
+ }
+
+ if ($search_method == "artist_album_title") {
+ $sql = $sql.",album.name";
+ }
+
+ // Final componets
+ $sql = $sql." HAVING COUNT(title) > 1";
+ $sql = $sql." ORDER BY `ctitle`";
+
+ $db_results = Dba::query($sql);
+
+ $results = array();
+
+ while ($item = Dba::fetch_assoc($db_results)) {
+ $results[] = $item;
+ } // end while
+
+ return $results;
+
+ } // get_duplicate_songs
+
+ /**
+ * get_duplicate_info
+ * This takes a song, search type and auto flag and returns the duplicate songs in the correct
+ * order, it sorts them by longest, higest bitrate, largest filesize, checking
+ * the last one as most likely bad
+ */
+ public static function get_duplicate_info($item,$search_type) {
+ // Build the SQL
+ $sql = "SELECT `song`.`id`" .
+ " FROM song,artist,album".
+ " WHERE song.artist=artist.id AND song.album=album.id".
+ " AND song.title= '".Dba::escape($item['title'])."'";
+
+ if ($search_type == "artist_title" || $search_type == "artist_album_title") {
+ $sql .=" AND artist.id = '".Dba::escape($item['artist'])."'";
+ }
+ if ($search_type == "artist_album_title" ) {
+ $sql .=" AND album.id = '".Dba::escape($item['album'])."'";
+ }
+
+ $sql .= " ORDER BY `time`,`bitrate`,`size` LIMIT 2";
+ $db_results = Dba::query($sql);
+
+ $results = array();
+
+ while ($item = Dba::fetch_assoc($db_results)) {
+ $results[] = $item['id'];
+ } // end while
+
+ return $results;
+
+ } // get_duplicate_info
+
+ /**
* dump_album_art (Added by Cucumber 20050216)
* This runs through all of the albums and trys to dump the
* art for them into the 'folder.jpg' file in the appropriate dir
diff --git a/lib/class/preference.class.php b/lib/class/preference.class.php
index 71b714fc..da4242c8 100644
--- a/lib/class/preference.class.php
+++ b/lib/class/preference.class.php
@@ -341,7 +341,6 @@ class Preference {
Config::set_by_array($results,1);
-
} // init
diff --git a/lib/duplicates.php b/lib/duplicates.php
deleted file mode 100644
index c6af8c58..00000000
--- a/lib/duplicates.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-/*
-
- Copyright (c) 2001 - 2006 Ampache.org
- All rights reserved.
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License v2
- as published by the Free Software Foundation.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-*/
-
-/**
- * get_duplicate_songs
- * This function takes a search type and returns a list of all songs that
- * are likely to be duplicates based on the search type selected
- */
-function get_duplicate_songs($search_type) {
-
- // Setup the base SQL
- $sql = "SELECT song.id as song,artist.name,album.name,title,count(title) as ctitle".
- " FROM song,artist,album ".
- " WHERE song.artist=artist.id AND song.album=album.id AND song.title<>'' ".
- " GROUP BY title";
-
- // Additional constraints
- if ($search_type=="artist_title"||$search_type=="artist_album_title") {
- $sql = $sql.",artist";
- }
-
- if ($search_type=="artist_album_title") {
- $sql = $sql.",album";
- }
-
- // Final componets
- $sql = $sql." HAVING count(title) > 1";
- $sql = $sql." ORDER BY ctitle";
-
- $db_results = mysql_query($sql, dbh());
-
- $arr = array();
-
- while ($flag = mysql_fetch_assoc($db_results)) {
- $arr[] = $flag;
- } // end while
-
- return $arr;
-
-} // get_duplicate_songs
-
-/**
- * get_duplicate_info
- * This takes a song, search type and auto flag and returns the duplicate songs in the correct
- * order, if AUTO is selected it sorts them by longest, higest bitrate, largest filesize, checking
- * the last one as most likely bad
- */
-function get_duplicate_info($song,$search_type,$auto='') {
- // Get the artist name
- $artist = $song->get_artist_name();
-
- // Build the SQL
- $sql = "SELECT song.id as songid,song.title as song,file,bitrate,size,time," .
- "album.name AS album,album.id as albumid, artist.name AS artist,artist.id as artistid".
- " FROM song,artist,album ".
- " WHERE song.artist=artist.id AND song.album=album.id ".
- " AND song.title= '".sql_escape($song->title)."'";
-
- if ($search_type == "artist_title" || $search_type == "artist_album_title") {
- $sql .=" AND artist.id = '".$song->artist."'";
- }
- if ($search_type == "artist_album_title" ) {
- $sql .=" AND album.id = '".$song->album."'";
- }
-
- if ($auto) {
- $sql .= " ORDER BY time,bitrate,size";
- }
-
- $db_results = mysql_query($sql, dbh());
-
- $arr = array();
-
- while ($flag = mysql_fetch_assoc($db_results)) {
- $arr[] = $flag;
- } // end while
-
- return $arr;
-
-} // get_duplicate_info
-
-/*!
- @function show_duplicate_songs
- @discussion
-*/
-function show_duplicate_songs($flags,$search_type) {
-
- require_once(conf('prefix').'/templates/show_list_duplicates.inc.php');
-
-} // show_duplicate_songs
-
-/*!
- @function show_duplicate_searchbox
- @discussion
-*/
-function show_duplicate_searchbox($search_type) {
-
- require_once(conf('prefix') . '/templates/show_duplicates.inc.php');
-
-} // show_duplicate_searchbox
-
-?>