浏览代码

filename ,mask

Marino Faggiana 7 年之前
父节点
当前提交
9a2b2bc3b4

+ 2 - 2
iOSClient/AutoUpload/NCAutoUpload.m

@@ -380,8 +380,8 @@
         NSDate *assetDate = asset.creationDate;
         PHAssetMediaType assetMediaType = asset.mediaType;
         NSString *session;
-        NSString *fileName = [CCUtility createFileNameFromAsset:asset keyFileName:nil keyFileNameType:nil];
-        
+        NSString *fileName = [CCUtility createFileName:[asset valueForKey:@"filename"] fileDate:asset.creationDate fileType:asset.mediaType keyFileName:k_keyFileNameAutoUploadMask keyFileNameType:k_keyFileNameAutoUploadType];
+
         // Select type of session
         
         if (assetMediaType == PHAssetMediaTypeImage && tableAccount.autoUploadWWAnPhoto == NO) session = k_upload_session;

+ 2 - 0
iOSClient/CCGlobal.h

@@ -254,6 +254,8 @@ extern NSString *const urlBaseUploadDB;
 
 #define k_keyFileNameMask                               @"fileNameMask"
 #define k_keyFileNameType                               @"fileNameType"
+#define k_keyFileNameAutoUploadMask                     @"fileNameAutoUploadMask"
+#define k_keyFileNameAutoUploadType                     @"fileNameAutoUploadType"
 
 // Type of page Offline
 #define k_pageOfflineFavorites                          @"Favorites"

+ 4 - 4
iOSClient/Create/CCCreateCloud.swift

@@ -517,6 +517,7 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
     func previewFileName(valueRename : String?) -> String {
         
         var returnString : String = ""
+        let asset = assets[0] as! PHAsset
         
         if let valueRename = valueRename {
             
@@ -528,18 +529,17 @@ class CreateFormUploadAssets: XLFormViewController, CCMoveDelegate {
                 CCUtility.setFileNameMask(valueRenameTrimming, key: k_keyFileNameMask)
                 self.form.delegate = self
                 
-                returnString = CCUtility.createFileName(from: assets[0] as! PHAsset, keyFileName: k_keyFileNameMask, keyFileNameType: k_keyFileNameType)
-                
+                returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: k_keyFileNameMask, keyFileNameType: k_keyFileNameType)
             } else {
                 
                 CCUtility.setFileNameMask("", key: k_keyFileNameMask)
-                returnString = CCUtility.createFileName(from: assets[0] as! PHAsset, keyFileName: nil, keyFileNameType: k_keyFileNameType)
+                returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: nil, keyFileNameType: k_keyFileNameType)
             }
             
         } else {
             
             CCUtility.setFileNameMask("", key: k_keyFileNameMask)
-            returnString = CCUtility.createFileName(from: assets[0] as! PHAsset, keyFileName: nil, keyFileNameType: k_keyFileNameType)
+            returnString = CCUtility.createFileName(asset.value(forKey: "filename"), fileDate: asset.creationDate, fileType: asset.mediaType, keyFileName: nil, keyFileNameType: k_keyFileNameType)
         }
         
         return NSLocalizedString("_preview_filename_", comment: "") + ":" + "\n\n" + returnString

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -1699,7 +1699,7 @@
     
     for (PHAsset *asset in assets) {
         
-        NSString *fileName = [CCUtility createFileNameFromAsset:asset keyFileName: k_keyFileNameMask keyFileNameType:k_keyFileNameType];
+        NSString *fileName = [CCUtility createFileName:[asset valueForKey:@"filename"] fileDate:asset.creationDate fileType:asset.mediaType keyFileName:k_keyFileNameMask keyFileNameType:k_keyFileNameType];
         
         NSDate *assetDate = asset.creationDate;
         NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

+ 9 - 35
iOSClient/Settings/CCManageAutoUpload.m

@@ -160,7 +160,7 @@
     section = [XLFormSectionDescriptor formSection];
     [form addFormSection:section];
     
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"filename" rowType:XLFormRowDescriptorTypeButton title:NSLocalizedString(@"_autoupload_filenamemask_", nil)];
+    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"autoUploadFileName" rowType:XLFormRowDescriptorTypeButton title:NSLocalizedString(@"_autoupload_filenamemask_", nil)];
     [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
     row.action.viewControllerClass = [NCManageAutoUploadFileName class];
     [section addFormRow:row];
@@ -344,6 +344,8 @@
     
     XLFormRowDescriptor *rowAutoUploadCreateSubfolder = [self.form formRowWithTag:@"autoUploadCreateSubfolder"];
 
+    XLFormRowDescriptor *rowAutoUploadFileName = [self.form formRowWithTag:@"autoUploadFileName"];
+
     
     // - STATUS ---------------------
     tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
@@ -385,6 +387,8 @@
     rowAutoUploadFull.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
     
     rowAutoUploadCreateSubfolder.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
+    
+    rowAutoUploadFileName.hidden = [NSString stringWithFormat:@"$%@==0", @"autoUpload"];
 
     // ----------------------
     
@@ -393,40 +397,6 @@
     self.form.delegate = self;
 }
 
-- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
-{
-    tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
-    NSString *sectionName;
-    
-    switch (section)
-    {
-        case 0:
-            sectionName = NSLocalizedString(@"_settings_autoupload_", nil);
-            break;
-        case 1:
-            if (tableAccount.autoUpload) sectionName = NSLocalizedString(@"_autoupload_photos_", nil);
-            else sectionName = @"";
-            break;
-        case 2:
-            if (tableAccount.autoUpload) sectionName = NSLocalizedString(@"_autoupload_videos_", nil);
-            else sectionName = @"";
-            break;
-        case 3:
-            if (tableAccount.autoUpload) sectionName = NSLocalizedString(@"_autoupload_background_", nil);
-            else sectionName = @"";
-            break;
-        case 4:
-            if (tableAccount.autoUpload) sectionName = NSLocalizedString(@"_autoupload_fullphotos_", nil);
-            else sectionName = @"";
-            break;
-        case 5:
-            if (tableAccount.autoUpload) sectionName = NSLocalizedString(@"_autoupload_create_subfolder_", nil);
-            else sectionName = @"";
-            break;
-    }
-    return sectionName;
-}
-
 - (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
 {
     tableAccount *tableAccount = [[NCManageDatabase sharedInstance] getAccountActive];
@@ -449,6 +419,10 @@
             if (tableAccount.autoUpload) sectionName =  NSLocalizedString(@"_autoupload_create_subfolder_footer_", nil);
             else sectionName = @"";
             break;
+        case 6:
+            if (tableAccount.autoUpload) sectionName =  NSLocalizedString(@"_autoupload_filenamemask_footer_", nil);
+            else sectionName = @"";
+            break;
     }
     return sectionName;
 }

+ 10 - 10
iOSClient/Settings/NCManageAutoUploadFileName.swift

@@ -36,7 +36,7 @@ class NCManageAutoUploadFileName: XLFormViewController {
         form.addFormSection(section)
         
         row = XLFormRowDescriptor(tag: "addFileNameType", rowType: XLFormRowDescriptorTypeBooleanSwitch, title: NSLocalizedString("_filenametype_photo_video_", comment: ""))
-        row.value = CCUtility.getFileNameType(k_keyFileNameType)
+        row.value = CCUtility.getFileNameType(k_keyFileNameAutoUploadType)
         section.addFormRow(row)
         
         // Section: Rename File Name
@@ -46,7 +46,7 @@ class NCManageAutoUploadFileName: XLFormViewController {
         
         row = XLFormRowDescriptor(tag: "maskFileName", rowType: XLFormRowDescriptorTypeAccount, title: NSLocalizedString("_filename_", comment: ""))
         
-        let fileNameMask : String = CCUtility.getFileNameMask(k_keyFileNameMask)
+        let fileNameMask : String = CCUtility.getFileNameMask(k_keyFileNameAutoUploadMask)
         if fileNameMask.characters.count > 0 {
             row.value = fileNameMask
         }
@@ -70,7 +70,7 @@ class NCManageAutoUploadFileName: XLFormViewController {
         super.formRowDescriptorValueHasChanged(formRow, oldValue: oldValue, newValue: newValue)
         
         if formRow.tag == "addFileNameType" {
-            CCUtility.setFileNameType((formRow.value! as AnyObject).boolValue, key: k_keyFileNameType)
+            CCUtility.setFileNameType((formRow.value! as AnyObject).boolValue, key: k_keyFileNameAutoUploadType)
             self.reloadForm()
         }
         else if formRow.tag == "maskFileName" {
@@ -184,21 +184,21 @@ class NCManageAutoUploadFileName: XLFormViewController {
             if valueRenameTrimming.characters.count > 0 {
                 
                 self.form.delegate = nil
-                CCUtility.setFileNameMask(valueRenameTrimming, key: k_keyFileNameMask)
+                CCUtility.setFileNameMask(valueRenameTrimming, key: k_keyFileNameAutoUploadMask)
                 self.form.delegate = self
                 
-                //returnString = CCUtility.createFileName(from: assets[0] as! PHAsset, keyFileName: k_keyFileNameMask, keyFileNameType: k_keyFileNameType)
-                
+                returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: Date(), fileType: PHAssetMediaType.image, keyFileName: k_keyFileNameAutoUploadMask, keyFileNameType: k_keyFileNameAutoUploadType)
+
             } else {
                 
-                CCUtility.setFileNameMask("", key: k_keyFileNameMask)
-                //returnString = CCUtility.createFileName(from: assets[0] as! PHAsset, keyFileName: nil, keyFileNameType: k_keyFileNameType)
+                CCUtility.setFileNameMask("", key: k_keyFileNameAutoUploadMask)
+                returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: Date(), fileType: PHAssetMediaType.image, keyFileName: nil, keyFileNameType: k_keyFileNameAutoUploadType)
             }
             
         } else {
             
-            CCUtility.setFileNameMask("", key: k_keyFileNameMask)
-            //returnString = CCUtility.createFileName(from: assets[0] as! PHAsset, keyFileName: nil, keyFileNameType: k_keyFileNameType)
+            CCUtility.setFileNameMask("", key: k_keyFileNameAutoUploadMask)
+            returnString = CCUtility.createFileName("IMG_0001.JPG", fileDate: Date(), fileType: PHAssetMediaType.image, keyFileName: nil, keyFileNameType: k_keyFileNameAutoUploadType)
         }
         
         return NSLocalizedString("_preview_filename_", comment: "") + ":" + "\n\n" + returnString

+ 3 - 2
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -175,6 +175,8 @@
 "_autoupload_fullphotos_footer_"    = "Select the options above before uploading";
 "_autoupload_create_subfolder_"     = "Use subfolders";
 "_autoupload_create_subfolder_footer_" = "Store in subfolders based on year and month";
+"_autoupload_filenamemask_"         = "Change filename mask";
+"_autoupload_filenamemask_footer_"  = "Change the automatic filename mask";
 
 // Manage Crypto Cloud
 
@@ -248,7 +250,6 @@
 "_create_full_upload_"                      = "Creating archive… May take a long time, please wait.";
 "_error_createsubfolders_upload_"           = "Error creating subfolders";
 "_activate_autoupload_"                     = "Enable auto upload";
-"_autoupload_filenamemask_"                 = "Change filename mask";
 
 // Template
 
@@ -538,7 +539,7 @@
 "_use_folder_photos_"               = "Use the folder Photos as destination";
 "_rename_filename_"                 = "Rename";
 "_filename_"                        = "File name";
-"_preview_filename_"                = "Example preview of filename, you can use the mask MM,DD,YY for the date";
+"_preview_filename_"                = "Example preview of filename, you can use the mask MM,MMM,DD,YY,YYYY and HH,hh,mm,ss,ampm for the date/time";
 "_forbidden_characters_"            = "Invalid character in the filename";
 "_add_filenametype_"                = "Add type in filename";
 "_filenametype_photo_video_"        = "Photo/Video";

+ 1 - 1
iOSClient/Utility/CCUtility.h

@@ -147,7 +147,7 @@
 + (NSString *)stringAppendServerUrl:(NSString *)serverUrl addFileName:(NSString *)addFileName;
 
 + (NSString *)createRandomString:(int)numChars;
-+ (NSString *)createFileNameFromAsset:(PHAsset *)asset keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType;
++ (NSString *)createFileName:fileName fileDate:(NSDate *)fileDate fileType:(PHAssetMediaType)fileType keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType;
 
 + (NSString *)getHomeServerUrlActiveUrl:(NSString *)activeUrl;
 + (NSString *)getDirectoryActiveUser:(NSString *)activeUser activeUrl:(NSString *)activeUrl;

+ 28 - 24
iOSClient/Utility/CCUtility.m

@@ -526,38 +526,33 @@
     return [NSString stringWithFormat:@"%@", randomString];
 }
 
-+ (NSString *)createFileNameFromAsset:(PHAsset *)asset keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType
++ (NSString *)createFileName:fileName fileDate:(NSDate *)fileDate fileType:(PHAssetMediaType)fileType keyFileName:(NSString *)keyFileName keyFileNameType:(NSString *)keyFileNameType
 {
-    NSDate *assetDate = asset.creationDate;
-    NSString *fileName;
     BOOL addFileNameType = NO;
     
-    NSString *assetFileName = [asset valueForKey:@"filename"];
-    
     NSString *numberFileName;
-    if ([assetFileName length] > 8) numberFileName = [assetFileName substringWithRange:NSMakeRange(04, 04)];
+    if ([fileName length] > 8) numberFileName = [fileName substringWithRange:NSMakeRange(04, 04)];
     else numberFileName = [CCUtility getIncrementalNumber];
     
     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
     [formatter setDateFormat:@"yy-MM-dd HH-mm-ss"];
-    NSString *fileNameDate = [formatter stringFromDate:assetDate];
+    NSString *fileNameDate = [formatter stringFromDate:fileDate];
     
-    PHAssetMediaType assetMediaType = asset.mediaType;
     NSString *fileNameType = @"";
-    if (assetMediaType == PHAssetMediaTypeImage)
+    if (fileType == PHAssetMediaTypeImage)
         fileNameType = NSLocalizedString(@"_photo_", nil);
-    if (assetMediaType == PHAssetMediaTypeVideo)
+    if (fileType == PHAssetMediaTypeVideo)
         fileNameType = NSLocalizedString(@"_video_", nil);
-    if (assetMediaType == PHAssetMediaTypeAudio)
+    if (fileType == PHAssetMediaTypeAudio)
         fileNameType = NSLocalizedString(@"_audio_", nil);
-    if (assetMediaType == PHAssetMediaTypeUnknown)
+    if (fileType == PHAssetMediaTypeUnknown)
         fileNameType = NSLocalizedString(@"_unknown_", nil);
 
     // Use File Name Type
     if (keyFileNameType)
         addFileNameType = [CCUtility getFileNameType:keyFileNameType];
     
-    NSString *fileNameExt = [[assetFileName pathExtension] lowercaseString];
+    NSString *fileNameExt = [[fileName pathExtension] lowercaseString];
     
     if (keyFileName) {
         
@@ -566,31 +561,40 @@
         if ([fileName length] > 0) {
             
             [formatter setDateFormat:@"dd"];
-            NSString *day = [formatter stringFromDate:assetDate];
+            NSString *dayNumber = [formatter stringFromDate:fileDate];
             [formatter setDateFormat:@"MMM"];
-            NSString *month = [formatter stringFromDate:assetDate];
+            NSString *month = [formatter stringFromDate:fileDate];
             [formatter setDateFormat:@"MM"];
-            NSString *monthNumber = [formatter stringFromDate:assetDate];
+            NSString *monthNumber = [formatter stringFromDate:fileDate];
+            [formatter setDateFormat:@"yyyy"];
+            NSString *year = [formatter stringFromDate:fileDate];
             [formatter setDateFormat:@"yy"];
-            NSString *year = [formatter stringFromDate:assetDate];
+            NSString *yearNumber = [formatter stringFromDate:fileDate];
             [formatter setDateFormat:@"HH"];
-            NSString *hour = [formatter stringFromDate:assetDate];
+            NSString *hour24 = [formatter stringFromDate:fileDate];
+            [formatter setDateFormat:@"hh"];
+            NSString *hour12 = [formatter stringFromDate:fileDate];
             [formatter setDateFormat:@"mm"];
-            NSString *minute = [formatter stringFromDate:assetDate];
+            NSString *minute = [formatter stringFromDate:fileDate];
             [formatter setDateFormat:@"ss"];
-            NSString *second = [formatter stringFromDate:assetDate];
+            NSString *second = [formatter stringFromDate:fileDate];
+            [formatter setDateFormat:@"a"];
+            NSString *ampm = [formatter stringFromDate:fileDate];
             
             // Replace string with date
 
-            fileName = [fileName stringByReplacingOccurrencesOfString:@"DD" withString:day];
+            fileName = [fileName stringByReplacingOccurrencesOfString:@"DD" withString:dayNumber];
             fileName = [fileName stringByReplacingOccurrencesOfString:@"MMM" withString:month];
             fileName = [fileName stringByReplacingOccurrencesOfString:@"MM" withString:monthNumber];
-            fileName = [fileName stringByReplacingOccurrencesOfString:@"YY" withString:year];
+            fileName = [fileName stringByReplacingOccurrencesOfString:@"YYYY" withString:year];
+            fileName = [fileName stringByReplacingOccurrencesOfString:@"YY" withString:yearNumber];
 
-            fileName = [fileName stringByReplacingOccurrencesOfString:@"hh" withString:hour];
+            fileName = [fileName stringByReplacingOccurrencesOfString:@"HH" withString:hour24];
+            fileName = [fileName stringByReplacingOccurrencesOfString:@"hh" withString:hour12];
             fileName = [fileName stringByReplacingOccurrencesOfString:@"mm" withString:minute];
             fileName = [fileName stringByReplacingOccurrencesOfString:@"ss" withString:second];
-            
+            fileName = [fileName stringByReplacingOccurrencesOfString:@"ampm" withString:ampm];
+
             if (addFileNameType)
                 fileName = [NSString stringWithFormat:@"%@ %@-%@.%@", fileNameType, fileName, numberFileName, fileNameExt];
             else