home *** CD-ROM | disk | FTP | other *** search
/ PCNET 2006 October - Disc 3 / PCNET_CD_2006_10_3.iso / apps / ShutterflyStudioInstaller_ext.exe / Scripts / output_db.py < prev    next >
Encoding:
Python Source  |  2006-04-23  |  3.0 KB  |  131 lines

  1.  
  2. from mmcommon  import *
  3. from mmpersist import *
  4. import getopt 
  5. import sys
  6. import string
  7. import time
  8. import re
  9. import os
  10.  
  11. print "ouputdb.py called"
  12. print "querying database and building HTML" 
  13.  
  14. begin_time = time.time()
  15.  
  16. ps = MMPersistentStore._GetInstance()
  17.  
  18. keyword_list = ps.GetAllObjectIdentifiers( MMKeyword.ObjectType )
  19. photo_list = ps.GetAllObjectIdentifiers( MMPhoto.ObjectType )
  20.  
  21.  
  22. num_photos = len(photo_list);
  23. num_keywords = len(keyword_list);
  24. total_image_bytes = 0;
  25.  
  26. filename = MMFileUtils.GetStandardFolderLocation(MM_FOLDER_TEMPORARY)
  27. filename = filename + "mmdbinfo.html"
  28. fd = file(filename, "w");
  29.  
  30. fd.write("<h2>Full listing of DB contents</h2>")
  31.  
  32. fd.write( " <b>Total Photos: " )
  33. fd.write( `num_photos` )
  34. fd.write( "</b>\n" )
  35.  
  36. fd.write( "\n<table border=1>" );
  37. for id_pair in photo_list:
  38.     id = id_pair[0]
  39.     type = id_pair[1]
  40.  
  41.     photo = ps.LoadPhoto(id);
  42.  
  43.     if(photo) :
  44.         fd.write( "<tr><td>" );
  45.         fd.write( "<h3><b>Photo Name:</b></h3> " )
  46.         fd.write( "<td>" );
  47.         fd.write( photo.GetName() )
  48.         fd.write( "</tr>\n" )
  49.  
  50.         fd.write( "<tr><td>" );
  51.         fd.write( "<h3>Date Taken:</h3> " )
  52.         fd.write( "<td>" );
  53.         pdate = photo.GetPhotoDate()
  54.         fd.write( MMDateTimeUtils.ToHumanString(pdate) )
  55.         fd.write( "</tr>\n" )
  56.         
  57.         image_file = photo.GetActiveImageFile()
  58.         
  59.         if(image_file) :
  60.             fd.write( "<tr><td>" );
  61.             fd.write( "Active Image File URI: " )
  62.             fd.write( "<td>" );
  63.             fd.write( image_file.GetURI() )
  64.             fd.write( "</tr>\n" )
  65.  
  66.             fd.write( "<tr><td>" );
  67.             fd.write( "Size of Image: " )
  68.             fd.write( "<td>" );
  69.             bytes = image_file.GetSizeBytes()
  70.             fd.write( `bytes` )
  71.             total_image_bytes = total_image_bytes + bytes;
  72.             fd.write( "</tr>\n" )
  73.  
  74.             fd.write( "<tr><td>" );
  75.             fd.write( "Width x Height: " )
  76.             fd.write( "<td>" );
  77.             fd.write( `image_file.GetWidth()` )
  78.             fd.write( " x " )
  79.             fd.write( `image_file.GetHeight()` )
  80.             fd.write( "</tr>\n" )
  81.  
  82.         keyword_id_list = photo.GetKeywordIds();
  83.  
  84.         if(keyword_id_list):
  85.             fd.write( "<tr><td>Keyword:\n<td>" )
  86.             for keyword_id in keyword_id_list:
  87.  
  88.                 keyword = ps.LoadKeyword(keyword_id)
  89.  
  90.                 if(keyword):
  91.                     fd.write( keyword.GetName() )
  92.                     fd.write( ", " )
  93.             fd.write( "\n</tr>\n" )
  94.         # empty row between each image
  95.  
  96.  
  97. fd.write( "</table>" )
  98. fd.write( "<hr>")
  99.  
  100. # summary
  101.  
  102. fd.write( "<table>" )
  103. fd.write( "<tr><td>" )
  104. fd.write( `num_photos` )
  105. fd.write( " photos found" )
  106. fd.write( "\n<tr><td>" )
  107. fd.write( `num_keywords` )
  108. fd.write( " keywords_found" )
  109. fd.write( "\n<tr><td>" )
  110. if(num_photos > 0) :
  111.     fd.write( `float(num_keywords)/num_photos` )
  112. fd.write( " keywords per photo" )
  113. fd.write( "\n<tr><td>" )
  114. fd.write( `total_image_bytes` )
  115. fd.write( " Total bytes of photos" )
  116. fd.write( "\n<tr><td>" )
  117. if(num_photos > 0) :
  118.     fd.write( `float(total_image_bytes)/num_photos` )
  119. fd.write( " Average bytes per photo" )
  120. fd.write( "\n<tr><td>" )
  121. fd.write( "\n</table>\n" )
  122.  
  123.  
  124. fd.close();
  125.  
  126. end_time = time.time();
  127. print "finished query:  took ", end_time - begin_time, " seconds"
  128.  
  129. print "execing web browser"
  130. os.startfile(filename);
  131.