$short_options = "";
$short_options.= "h"; /* help */
$short_options.= "o"; /* overwrite */
+$short_options.= "c"; /* cleanup */
$long_options = array(
"help",
"overwrite",
+ "cleanup",
);
/* command line option specified? */
print "Overwrite flag set!\n";
$overwrite = true;
break;
+ case 'c':
+ case '--cleanup':
+ $fspot->cleanup_phpfspot_db();
+ exit(0);
+ break;
default:
print "invalid option";
exit(1);
} // check_config_options()
+ /**
+ * cleanup phpfspot own database
+ *
+ * When photos are getting delete from F-Spot, there will remain
+ * remain some residues in phpfspot own database. This function
+ * will try to wipe them out.
+ */
+ public function cleanup_phpfspot_db()
+ {
+ $to_delete = Array();
+
+ $result = $this->cfg_db->db_query("
+ SELECT img_idx
+ FROM images
+ ORDER BY img_idx ASC
+ ");
+
+ while($row = $this->cfg_db->db_fetch_object($result)) {
+ if(!$this->db->db_fetchSingleRow("
+ SELECT id
+ FROM photos
+ WHERE id='". $row['img_idx'] ."'")) {
+
+ array_push($to_delete, $row['img_idx'], ',');
+ }
+ }
+
+ $this->cfg_db->db_exec("
+ DELETE FROM images
+ WHERE img_idx IN (". implode($to_delete) .")
+ ");
+
+ } // cleanup_phpfspot_db()
+
} // class PHPFSPOT
?>