Added unduplicator
This commit is contained in:
		
							parent
							
								
									1c38a7a37e
								
							
						
					
					
						commit
						3aca24f69f
					
				|  | @ -8,6 +8,17 @@ from random import shuffle | ||||||
| from time import strftime | from time import strftime | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def unduplicate_list (tracks): | ||||||
|  | 	known = [] | ||||||
|  | 	cur = 0 | ||||||
|  | 	while cur < len (tracks): | ||||||
|  | 		if tracks [cur] in known: | ||||||
|  | 			del tracks [cur] | ||||||
|  | 			continue | ||||||
|  | 		known.append (tracks [cur]) | ||||||
|  | 		cur += 1 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| def get_or_post (token, url, data = None): | def get_or_post (token, url, data = None): | ||||||
| 	d = None | 	d = None | ||||||
| 	if type (data) == bytes: | 	if type (data) == bytes: | ||||||
|  | @ -60,9 +71,16 @@ def create_playlist (token, name, description, tracks): | ||||||
| 
 | 
 | ||||||
| def playlist_shuffle (token, playlist): | def playlist_shuffle (token, playlist): | ||||||
| 	tracks = read_playlist (token, playlist) | 	tracks = read_playlist (token, playlist) | ||||||
|  | 	unduplicate_list (tracks) | ||||||
| 	shuffle (tracks) | 	shuffle (tracks) | ||||||
| 	create_playlist (token, list_playlists (token) [playlist] + ' - Shuffled ' + strftime ('%Y-%m-%d %H:%M:%S'), 'Shuffled playlist', tracks) | 	create_playlist (token, list_playlists (token) [playlist] + ' - Shuffled ' + strftime ('%Y-%m-%d %H:%M:%S'), 'Shuffled playlist', tracks) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | def playlist_unduplicate (token, playlist): | ||||||
|  | 	tracks = read_playlist (token, playlist) | ||||||
|  | 	unduplicate_list (tracks) | ||||||
|  | 	create_playlist (token, list_playlists (token) [playlist] + ' - Undiplicates', 'Non duplicated playlist', tracks) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
| 	raise (NotImplementedError ('no CLI interface yet')) | 	raise (NotImplementedError ('no CLI interface yet')) | ||||||
		Loading…
	
		Reference in New Issue