| 
					
				 | 
			
			
				@@ -15,6 +15,9 @@ optional.add_argument('--threshold', type=str, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 optional.add_argument('--exclude', type=str, nargs='?', action='append', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     help='Only output files greater than \'size\', e.g. 100M') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+optional.add_argument('--sizes', type=str, nargs='+', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    help='Only output files greater than \'size\', e.g. 100M') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 required.add_argument('--dir', type=str, nargs='?', required=True, action='append', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     help='Directory to scan. Can be issued multiple times.') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,12 +25,15 @@ parser._action_groups.append(optional) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 args = parser.parse_args() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sizes = ['10M', '50M', '100M', '1G', '5G', 'gt5GB'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if args.sizes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sizes = args.sizes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sizes.append('larger than '+sizes[-1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sizes = ['10M', '50M', '100M', '1G', '5G'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    sizes.append('larger than '+sizes[-1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if args.exclude: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    print('hi') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     exclude=args.exclude 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    print(exclude) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if args.threshold: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     threshold = humanfriendly.parse_size(args.threshold) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -69,12 +75,11 @@ def joinDicts(dict1, dict2): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def hashfile(path, blocksize = 65536): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     file_size = os.path.getsize(path) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # Only hash files larger than threshold 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # Only hash files larger than threshold (if set) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if threshold == 0 or (threshold > 0 and file_size > threshold): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            print('Hashing '+path) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             afile = open(path, 'rb') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            hasher = hashlib.sha256() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            hasher = hashlib.md5() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             buf = afile.read(blocksize) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             while len(buf) > 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 hasher.update(buf) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -100,18 +105,15 @@ def printResults(dict1): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 final[threshold].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            #0=10MB 1=50MB 2=100MB 3=1GB 4=5GB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if file_size >= humanfriendly.parse_size(sizes[0]) and file_size < humanfriendly.parse_size(sizes[1]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                final[sizes[1]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            elif file_size >= humanfriendly.parse_size(sizes[1]) and file_size < humanfriendly.parse_size(sizes[2]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                final[sizes[2]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            elif file_size >= humanfriendly.parse_size(sizes[2]) and file_size < humanfriendly.parse_size(sizes[3]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                final[sizes[3]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            elif file_size >= humanfriendly.parse_size(sizes[3]) and file_size < humanfriendly.parse_size(sizes[4]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                final[sizes[4]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            elif file_size >= humanfriendly.parse_size(sizes[4]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                final[sizes[5]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            count = 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            while count+1 < len(sizes): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if file_size >= humanfriendly.parse_size(sizes[count]) and file_size < humanfriendly.parse_size(sizes[count+1]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        final[sizes[count+1]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                except: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    final[sizes[-1]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                count += 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if file_size < humanfriendly.parse_size(sizes[0]): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 final[sizes[0]].append(result) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             final[threshold]=[False] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if len(results) > 0 and len(final[threshold]) > 0: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -131,7 +133,7 @@ def printResults(dict1): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for size in sizes: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 new.append(size) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if len(final[size]) > 0: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if size == 'gt5GB': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if size == 'larger than ' + sizes[-2]: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         print("\n\033[1;34m\u25b6 >= %s\033[0m" % (new[-2])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     else: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         print("\n\033[1;34m\u25b6 %s to %s\033[0m" % (new[-2],size)) 
			 |