f-spot r4046 - in trunk/extensions: . SmugMugExport SmugMugExport/SmugMugNet



Author: sdelcroix
Date: Thu Jun  5 15:54:56 2008
New Revision: 4046
URL: http://svn.gnome.org/viewvc/f-spot?rev=4046&view=rev

Log:
2008-05-29  Lorenzo Milesi <maxxer yetopen it>

	* SmugMugExport/SmugMugExport.addin.xml: Bump version to 0.4.4.3.
	* SmugMugExport/SmugMugExport.cs: fix div by 0. Check if returned
	photo_id is valid. fix connection check.
	* SmugMugExport/SmugMugNet/SmugMugApi.cs: use JSON instead of REST.
	Code by Thomas Van Machelen. fix bgo#534902.


Modified:
   trunk/extensions/ChangeLog
   trunk/extensions/SmugMugExport/SmugMugExport.addin.xml
   trunk/extensions/SmugMugExport/SmugMugExport.cs
   trunk/extensions/SmugMugExport/SmugMugNet/SmugMugApi.cs

Modified: trunk/extensions/SmugMugExport/SmugMugExport.addin.xml
==============================================================================
--- trunk/extensions/SmugMugExport/SmugMugExport.addin.xml	(original)
+++ trunk/extensions/SmugMugExport/SmugMugExport.addin.xml	Thu Jun  5 15:54:56 2008
@@ -1,5 +1,5 @@
 <Addin namespace="FSpot"
-	version="0.4.4.2"
+	version="0.4.4.3"
 	name="SmugMug Export"
 	description="This extension allows you to export your photos to SmugMug."
 	author="F-Spot team"

Modified: trunk/extensions/SmugMugExport/SmugMugExport.cs
==============================================================================
--- trunk/extensions/SmugMugExport/SmugMugExport.cs	(original)
+++ trunk/extensions/SmugMugExport/SmugMugExport.cs	Thu Jun  5 15:54:56 2008
@@ -58,7 +58,7 @@
 
 		public bool Connected {
 			get {
-				return smugmug_proxy.Connected;
+				return (smugmug_proxy != null && smugmug_proxy.Connected);
 			}
 		}
 
@@ -579,7 +579,7 @@
 						approx_size = sent_bytes * items.Length / (photo_index - 1);
 
 					int image_id = account.SmugMug.Upload (request.Current.LocalPath, album.AlbumID);
-					if (Core.Database != null && item is Photo)
+					if (Core.Database != null && item is Photo && image_id >= 0)
 						Core.Database.Exports.Create ((item as Photo).Id,
 									      (item as Photo).DefaultVersionId,
 									      ExportStore.SmugMugExportType,
@@ -595,8 +595,11 @@
 					progress_dialog.ProgressText = Mono.Unix.Catalog.GetString ("Error");
 					System.Console.WriteLine (e);
 
-					if (progress_dialog.PerformRetrySkip ())
+					if (progress_dialog.PerformRetrySkip ()) {
 					 	photo_index--;
+						if (photo_index == 0)
+							approx_size = 0;
+					}
 				}
 			}
 				

Modified: trunk/extensions/SmugMugExport/SmugMugNet/SmugMugApi.cs
==============================================================================
--- trunk/extensions/SmugMugExport/SmugMugNet/SmugMugApi.cs	(original)
+++ trunk/extensions/SmugMugExport/SmugMugNet/SmugMugApi.cs	Thu Jun  5 15:54:56 2008
@@ -355,16 +355,31 @@
 
 				NameValueCollection queryStringCollection = new NameValueCollection ();
 				queryStringCollection.Add ("AlbumID", album_id.ToString());
-				queryStringCollection.Add ("ResponseType", "REST");
+				// Temporarily disabled because rest doesn't seem to return the ImageID anymore
+				// queryStringCollection.Add ("ResponseType", "REST");
+				// luckily JSON still holds it
+				queryStringCollection.Add ("ResponseType", "JSON");
 				client.QueryString = queryStringCollection;
 
 				byte[] responseArray = client.UploadFile ("http://upload.smugmug.com/photos/xmladd.mg";, "POST", file.FullName);
 				string response = Encoding.ASCII.GetString (responseArray);
 
-				XmlDocument doc = new XmlDocument ();
-				doc.LoadXml (response);
+				// JSon approach
+				Regex id_regex = new Regex ("\\\"id\\\": (?<image_id>\\d+),");
+				Match m  = id_regex.Match (response);
+
+				int id = -1;
+
+				if (m.Success)
+					id = int.Parse (m.Groups["image_id"].Value);
+
+				return id;
+
+				// REST approach, disabled for now
+				//XmlDocument doc = new XmlDocument ();
+				//doc.LoadXml (response);
+				// return int.Parse (doc.SelectSingleNode ("/rsp/ImageID").InnerText);
 
-				return int.Parse (doc.SelectSingleNode ("/rsp/ImageID").InnerText);
 			}
 			catch (Exception ex)
 			{



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]