public SyncFolder(string pFolderPath) { FolderPath = pFolderPath; LastSync = new DateTime(2000, 1, 1); SetId = ""; SetTitle = ""; SetDescription = ""; SyncMethod = StringToMethod(Properties.Settings.Default.Method); FilterType = FilterTypes.FilterNone; FilterTags = ""; FilterStarRating = 0; Permission = FlickrSync.Permissions.PermDefault; NoDelete = Properties.Settings.Default.NoDelete; NoDeleteTags = Properties.Settings.Default.NoDeleteTags; OrderType = OrderTypes.OrderDefault; NoInitialReplace = false; }
public void LoadFromXPath(XPathNavigator nav) { nav.MoveToFirstChild(); do { if (nav.Name == "FolderPath") { FolderPath = XmlDecode(nav.Value); } else if (nav.Name == "LastSync") { try { LastSync = DateTime.ParseExact(nav.Value, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); } catch (Exception) { LastSync = DateTime.Parse(nav.Value); //old method } } else if (nav.Name == "SetId") { SetId = nav.Value; } else if (nav.Name == "SetTitle") { SetTitle = XmlDecode(nav.Value); } else if (nav.Name == "SetDescription") { SetDescription = XmlDecode(nav.Value); } else if (nav.Name == "SyncMethod") { if (nav.Value == "SyncFilename") { SyncMethod = SyncFolder.Methods.SyncFilename; } else if (nav.Value == "SyncDateTaken") { SyncMethod = SyncFolder.Methods.SyncDateTaken; } else if (nav.Value == "SyncTitleOrFilename") { SyncMethod = SyncFolder.Methods.SyncTitleOrFilename; } } else if (nav.Name == "FilterType") { if (nav.Value == "FilterNone") { FilterType = SyncFolder.FilterTypes.FilterNone; } else if (nav.Value == "FilterIncludeTags") { FilterType = SyncFolder.FilterTypes.FilterIncludeTags; } else if (nav.Value == "FilterStarRating") { FilterType = SyncFolder.FilterTypes.FilterStarRating; } } else if (nav.Name == "FilterTags") { FilterTags = nav.Value; } else if (nav.Name == "FilterStarRating") { FilterStarRating = nav.ValueAsInt; } else if (nav.Name == "Permissions") { if (nav.Value == "PermDefault") { Permission = FlickrSync.Permissions.PermDefault; } else if (nav.Value == "PermPublic") { Permission = FlickrSync.Permissions.PermPublic; } else if (nav.Value == "PermFamilyFriends") { Permission = FlickrSync.Permissions.PermFamilyFriends; } else if (nav.Value == "PermFriends") { Permission = FlickrSync.Permissions.PermFriends; } else if (nav.Value == "PermFamily") { Permission = FlickrSync.Permissions.PermFamily; } else if (nav.Value == "PermPrivate") { Permission = FlickrSync.Permissions.PermPrivate; } } else if (nav.Name == "NoDelete") { NoDelete = nav.ValueAsBoolean; } else if (nav.Name == "NoDeleteTags") { NoDeleteTags = nav.ValueAsBoolean; } else if (nav.Name == "OrderType") { if (nav.Value == "OrderDefault") { OrderType = OrderTypes.OrderDefault; } else if (nav.Value == "OrderDateTaken") { OrderType = OrderTypes.OrderDateTaken; } else if (nav.Value == "OrderTitle") { OrderType = OrderTypes.OrderTitle; } else if (nav.Value == "OrderTag") { OrderType = OrderTypes.OrderTag; } } else if (nav.Name == "SetNaming") { if (nav.Value == "NamingDefault") { SetNaming = SetNamings.NamingDefault; } else if (nav.Value == "NonUniqueSetNames") { SetNaming = SetNamings.NonUniqueSetNames; } else if (nav.Value == "UniqueSetNames") { SetNaming = SetNamings.UniqueSetNames; } } else if (nav.Name == "NoInitialReplace") { NoInitialReplace = nav.ValueAsBoolean; } } while (nav.MoveToNext()); }
public void LoadFromXPath(XPathNavigator nav) { nav.MoveToFirstChild(); do { if (nav.Name == "FolderPath") FolderPath = XmlDecode(nav.Value); else if (nav.Name == "LastSync") { try { LastSync = DateTime.ParseExact(nav.Value, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture); } catch (Exception) { LastSync = DateTime.Parse(nav.Value); //old method } } else if (nav.Name == "SetId") SetId = nav.Value; else if (nav.Name == "SetTitle") SetTitle = XmlDecode(nav.Value); else if (nav.Name == "SetDescription") SetDescription = XmlDecode(nav.Value); else if (nav.Name == "SyncMethod") { if (nav.Value == "SyncFilename") SyncMethod = SyncFolder.Methods.SyncFilename; else if (nav.Value == "SyncDateTaken") SyncMethod = SyncFolder.Methods.SyncDateTaken; else if (nav.Value == "SyncTitleOrFilename") SyncMethod = SyncFolder.Methods.SyncTitleOrFilename; } else if (nav.Name == "FilterType") { if (nav.Value == "FilterNone") FilterType = SyncFolder.FilterTypes.FilterNone; else if (nav.Value == "FilterIncludeTags") FilterType = SyncFolder.FilterTypes.FilterIncludeTags; else if (nav.Value == "FilterStarRating") FilterType = SyncFolder.FilterTypes.FilterStarRating; } else if (nav.Name == "FilterTags") FilterTags = nav.Value; else if (nav.Name == "FilterStarRating") FilterStarRating = nav.ValueAsInt; else if (nav.Name == "Permissions") { if (nav.Value == "PermDefault") Permission = FlickrSync.Permissions.PermDefault; else if (nav.Value == "PermPublic") Permission = FlickrSync.Permissions.PermPublic; else if (nav.Value == "PermFamilyFriends") Permission = FlickrSync.Permissions.PermFamilyFriends; else if (nav.Value == "PermFriends") Permission = FlickrSync.Permissions.PermFriends; else if (nav.Value == "PermFamily") Permission = FlickrSync.Permissions.PermFamily; else if (nav.Value == "PermPrivate") Permission = FlickrSync.Permissions.PermPrivate; } else if (nav.Name == "NoDelete") NoDelete = nav.ValueAsBoolean; else if (nav.Name == "Children") Children = nav.ValueAsBoolean; else if (nav.Name == "NoDeleteTags") NoDeleteTags = nav.ValueAsBoolean; else if (nav.Name == "OrderType") { if (nav.Value == "OrderDefault") OrderType = OrderTypes.OrderDefault; else if (nav.Value == "OrderDateTaken") OrderType = OrderTypes.OrderDateTaken; else if (nav.Value == "OrderTitle") OrderType = OrderTypes.OrderTitle; else if (nav.Value == "OrderTag") OrderType = OrderTypes.OrderTag; } else if (nav.Name == "NoInitialReplace") NoInitialReplace = nav.ValueAsBoolean; } while (nav.MoveToNext()); }
public string ReplacePicture(string filename, string photoid, string title, string caption, ArrayList tags, FlickrSync.Permissions permission, bool NoDeleteTags, double?GeoLat, double?GeoLong) { string id = f.ReplacePicture(filename, photoid); f.PhotosSetMeta(id, title, caption); ArrayList specialtags = new ArrayList(); foreach (string tag in tags) { if (tag.ToLower().StartsWith("flickrsync:") || tag.ToLower().StartsWith(@"""flickrsync:")) { specialtags.Add(tag); } } foreach (string stag in specialtags) { tags.Remove(stag); string stag2 = stag.ToLower(); // To support picasa replace colons with equal sign (to be able to use flickrsync:perm:friends instead of flickrsync:perm=friends) stag2 = stag2.Replace(':', '='); if (stag2.Contains("flickrsync=perm=private")) { permission = FlickrSync.Permissions.PermPrivate; } else if (stag2.Contains("flickrsync=perm=default")) { permission = FlickrSync.Permissions.PermDefault; } else if (stag2.Contains("flickrsync=perm=familyfriends")) { permission = FlickrSync.Permissions.PermFamilyFriends; } else if (stag2.Contains("flickrsync=perm=friends")) { permission = FlickrSync.Permissions.PermFriends; } else if (stag2.Contains("flickrsync=perm=family")) { permission = FlickrSync.Permissions.PermFamily; } else if (stag2.Contains("flickrsync=perm=public")) { permission = FlickrSync.Permissions.PermPublic; } } f.PhotosSetPerms(id, permission == FlickrSync.Permissions.PermPublic, permission == FlickrSync.Permissions.PermFriends || permission == FlickrSync.Permissions.PermFamilyFriends, permission == FlickrSync.Permissions.PermFamily || permission == FlickrSync.Permissions.PermFamilyFriends, PermissionComment.Everybody, PermissionAddMeta.Everybody); string user = f.AuthCheckToken(Properties.Settings.Default.FlickrToken).User.UserId; PhotoInfoTag[] ftags = f.TagsGetListPhoto(id); //.Tags.TagCollection; if (ftags != null) { foreach (PhotoInfoTag ftag in ftags) { if (ftag.AuthorId == user) { bool found = false; for (int i = 0; i < tags.Count; i++) { if ((string)tags[i] == ftag.Raw) { found = true; tags.RemoveAt(i); break; } } if (!found && !NoDeleteTags) { f.PhotosRemoveTag(ftag.TagId); } } } } foreach (string tag in tags) { if (tag.Length > 0 && tag[0] == '"' && tag[tag.Length - 1] == '"') { f.PhotosAddTags(id, tag); } else { f.PhotosAddTags(id, @"""" + tag + @""""); } } if (GeoLat != null && GeoLong != null) { try { f.PhotosGeoSetLocation(id, (double)GeoLat, (double)GeoLong); } catch (Exception ex) { FlickrSync.Error("Error setting Geo location: " + filename + " Lat=" + GeoLat + " Long=" + GeoLong, ex, FlickrSync.ErrorType.Normal); } } return(id); }
public string UploadPicture(string filename, string title, string description, ArrayList tags, FlickrSync.Permissions permission) { ArrayList specialtags = new ArrayList(); foreach (string tag in tags) { if (tag.ToLower().StartsWith("flickrsync:") || tag.ToLower().StartsWith(@"""flickrsync:")) { specialtags.Add(tag); } } foreach (string stag in specialtags) { tags.Remove(stag); string stag2 = stag.ToLower(); // To support picasa replace colons with equal sign (to be able to use flickrsync:perm:friends instead of flickrsync:perm=friends) stag2 = stag2.Replace(':', '='); if (stag2.Contains("flickrsync=perm=private")) { permission = FlickrSync.Permissions.PermPrivate; } else if (stag2.Contains("flickrsync=perm=default")) { permission = FlickrSync.Permissions.PermDefault; } else if (stag2.Contains("flickrsync=perm=familyfriends")) { permission = FlickrSync.Permissions.PermFamilyFriends; } else if (stag2.Contains("flickrsync=perm=friends")) { permission = FlickrSync.Permissions.PermFriends; } else if (stag2.Contains("flickrsync=perm=family")) { permission = FlickrSync.Permissions.PermFamily; } else if (stag2.Contains("flickrsync=perm=public")) { permission = FlickrSync.Permissions.PermPublic; } } string tags_str = ""; foreach (string tag in tags) { if (tag.Length > 0 && tag[0] == '"' && tag[tag.Length - 1] == '"') { tags_str = tags_str + tag; } else { tags_str = tags_str + @"""" + tag + @""" "; } } string id = ""; if (permission == FlickrSync.Permissions.PermDefault) { id = f.UploadPicture(filename, title, description, tags_str); } else { id = f.UploadPicture(filename, title, description, tags_str, permission == FlickrSync.Permissions.PermPublic, permission == FlickrSync.Permissions.PermFamily || permission == FlickrSync.Permissions.PermFamilyFriends, permission == FlickrSync.Permissions.PermFriends || permission == FlickrSync.Permissions.PermFamilyFriends); } // remove special tags. If there is an error it will be ignored (not very relevant) // they were removed previously from tags_str but flickr ignores this on upload try { foreach (string stag in specialtags) { PhotoInfoTag[] taglist = f.TagsGetListPhoto(id); foreach (PhotoInfoTag pit in taglist) { if (pit.Raw == stag) { f.PhotosRemoveTag(pit.TagId); } } } } catch (Exception) { } return(id); }