in phpfspot we talk about photos not images
[phpfspot.git] / find_dups.php
1 #!/usr/bin/php
2 <?php
3
4 /***************************************************************************
5  *
6  * phpfspot, presents your F-Spot photo collection in Web browsers.
7  *
8  * Copyright (c) by Andreas Unterkircher
9  *
10  *  This program is free software; you can redistribute it and/or modify
11  *  it under the terms of the GNU General Public License as published by
12  *  the Free Software Foundation; either version 2 of the License, or
13  *  any later version.
14  *
15  *  This program is distributed in the hope that it will be useful,
16  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  *  GNU General Public License for more details.
19  *
20  *  You should have received a copy of the GNU General Public License
21  *  along with this program; if not, write to the Free Software
22  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  *
24  ***************************************************************************/
25
26 /**
27  * find_dups.php
28  *
29  * find duplicated photos based on MD5 checksum
30  *
31  * @package phpfspot
32  */
33 if(!isset($_SERVER["TERM"])) {
34    print "<br /><br />This script should only be invoked from command line!<br />\n";
35    die;
36 }
37
38 require_once "phpfspot.class.php";
39
40 $fspot = new PHPFSPOT;
41 $fspot->fromcmd = true;
42
43 $all_dups = $fspot->cfg_db->db_query("
44    SELECT i1.img_idx as i1, i2.img_idx as i2
45    FROM images i1
46    INNER JOIN images i2
47       ON (
48          i1.img_md5=i2.img_md5
49       AND
50          i1.img_idx!=i2.img_idx
51       )
52    ORDER BY i1.img_idx ASC
53 ");
54
55 while($row = $fspot->cfg_db->db_fetch_object($all_dups)) {
56    if($photo1 = $fspot->getphotoname($row['i1'])) {
57       print "Dups for ". $photo1 ."\n";
58       if($photo2 = $fspot->getphotoname($row['i2'])) {
59          print "\t". $photo2 ."\n";
60       }
61    }
62 }
63
64 ?>