#!/usr/bin/php "-", 2 => "-" ); $ins = "insert into fotolib_foto ( " . "ff_id, ff_state, ff_public, ff_filename, ff_hash, " . "ff_camera, ff_orig_name, " . "ff_timv_width, ff_timv_height, " . "ff_timv_mtime, ff_timv_angle, ff_timv_flip, " . "ff_exif_latitude, ff_exif_longitude, " . "ff_exif_date, ff_date_offset, ff_real_date, " . "ff_disp_date, ff_comment, ff_timestamp, " . "fu_id, ff_seq_nr " . ") values ( " . "\$1, \$2, \$3, \$4, \$5, " . "\$6, \$7, " . "\$8, \$9, " . "\$10, \$11, \$12, " . "\$13, \$14, " . str2pgts( "\$15" ) . ", \$16, " . str2pgts( "\$17" ) . ", " . str2pgts( "\$18" ) . ", \$19, current_timestamp, " . "\$20, \$21 " . ")"; $insval = array( 1 => 0, 2 => FFS_INCOMING, 3 => 0, 4 => "-", 5 => "", 6 => "", 7 => "", 8 => 4, 9 => 3, 10 => 0, 11 => 0, 12 => 0, 13 => "", 14 => 0, 15 => "", 16 => 0, 17 => "", 18 => "", 19 => "", 20 => $uid ); $filecount = 0; $filenames = array(); $filestates = array(); $idxs = array(); foreach( scandir( "." ) as $file ) { $lfile = strtolower( $file ); if( endswith( $lfile, ".jpg" ) ) { $idxs[$file] = $filecount; $filenames[$filecount] = $file; $filestates[$filecount] = 0; $filecount++; } else if( endswith( $file, ".timv" ) ) { $jpg = substr( $file, 0, -5 ); if( isset( $idxs[$jpg] ) ) { $filestates[$idxs[$jpg]] |= 1; } } else if( endswith( $file, ".md5" ) ) { $jpg = substr( $file, 0, -4 ); if( isset( $idxs[$jpg] ) ) { $filestates[$idxs[$jpg]] |= 2; } } } for( $i=0; $i<$filecount; $i++ ) { $file = $filenames[$i]; echo "file $file...\n"; if( $filestates[$i] == 3 ) { $info = gfx_read_info( $file ); if( $info && isset( $info["Camera"] ) && isset( $info["Image"] ) && isset( $info["CALCULATED"] ) && isset( $info["timv"] ) ) { if( !isset( $info["Image"]["Latitude"] ) || !isset( $info["Image"]["Longitude"] ) ) { $info["Image"]["Latitude"] = ""; $info["Image"]["Longitude"] = ""; } $filestates[$i] |= 4; } } /* $cam = "?"; // exiftags -> Camera Model: if( substr( $file, 0, 3 ) == "dsc" ) { // exiftags -> Camera Model: DSC-W150 $cam = "w150"; } else if( substr( $file, 0, 3 ) == "IMG" ) { // exiftags -> Camera Model: Canon PowerShot A480 $cam = "a480"; } else if( substr( $file, 0, 2 ) == "P1" ) { // exiftags -> Camera Model: DMC-TZ20 $cam = "dmc-tz20"; } if( $cam != "?" ) { $filestates[$i] |= 4; } $md5 = ""; */ if( $filestates[$i] == 7 ) { // needs config // $fd = popen( "md5 -c $file.md5", "r" ); $fd = popen( "md5sum -c $file.md5", "r" ); $line = fread( $fd, 1024 ); $rc = pclose( $fd ); echo $line; if( $rc == 0 ) { $filestates[$i] |= 8; } } if( $filestates[$i] == 15 ) { // +++++ should check contents of this file, fmt, etc. $md5file = file_get_contents( $file . ".md5" ); $md5 = substr( trim( $md5file ), -32 ); $qryval[1] = $md5; $qryval[2] = $file; $id = sql_quick_fetch( $conn, $qry, $qryval ); if( $id > 0 ) { echo "already in DB (ID=$id)\n"; } else { $filestates[$i] |= 16; } } if( $filestates[$i] == 31 ) { // $info = gfx_read_info( $file ); $time_t = $info["CALCULATED"]["IMAGEDATE"]; $date = strftime( "%Y-%m-%d %H:%M:%S", $time_t ); $id = sql_next_id( $conn, "fotolib_foto", "ff_id" ); $seq = sql_next_id( $conn, "fotolib_foto", "ff_seq_nr", "where fu_id = $uid" ); $relfile = make_img_file_name( $uid, $id ) . ".jpg"; $absfile = $dstdir . "/" . $relfile; $absdir = dirname( $absfile ); if( !is_dir( $absdir ) ) { mkdir( $absdir, 0755, true ); } // echo "id: '$id'\n"; // echo "seq: '$seq'\n"; // echo "relfile: '$relfile'\n"; // echo "absfile: '$absfile'\n"; // echo "absdir: '$absdir'\n"; // $filestates[$i] = 0; } if( $filestates[$i] == 31 ) { // +++++ what if rename fails??? // echo "gfx_scale '$file' -> '$absfile'\n"; gfx_scale( $file, $absfile, $info["timv"]["angle"]*90 ); $insval[1] = $id; $insval[4] = $relfile; $insval[5] = $md5; $insval[6] = $info["Camera"]["Camera Model"]; $insval[7] = $file; $insval[8] = $info["timv"]["width"]; $insval[9] = $info["timv"]["height"]; $insval[10] = $info["timv"]["mtime"]; $insval[11] = $info["timv"]["angle"]; $insval[12] = $info["timv"]["flip"]; $insval[13] = utf8_encode( $info["Image"]["Latitude"] ); $insval[14] = utf8_encode( $info["Image"]["Longitude"] ); $insval[15] = $date; $insval[17] = $date; $insval[18] = $date; $insval[21] = $seq; // echo ">> $ins <<\n"; pg_query_params( $conn, $ins, $insval ); $ff = $relfile; echo "stored '$ff' as id $id.\n"; } else { echo " state " . $filestates[$i] . "\n"; } } } function main() { global $G_CFG_DB_CONNECTION; global $G_CFG_DIR_INC; global $G_CFG_DIR_LIB; $uid = 1; chdir( $G_CFG_DIR_INC ); $conn = pg_pconnect( $G_CFG_DB_CONNECTION ); if( !$conn ) { echo "Can't connect to database.\n"; exit; } scan_incoming( $uid, $conn, $G_CFG_DIR_LIB ); } main(); ?>