-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSaved_Tracks.py
71 lines (60 loc) · 2.8 KB
/
Saved_Tracks.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from spotipy.oauth2 import SpotifyClientCredentials
import spotipy
import json
import pprint
import sys
import os
import subprocess
import spotipy.util as util
import credentials
from datetime import datetime
from pprint import pprint
import functions
import push_me
saved_remove_list = [] #create list of songs to remove from saved at end
track_dict = functions.user_saved_tracks() #generate saved track dictionary
pprint(track_dict)
for key in track_dict.keys():
saved_remove_list.append(key) #add song ids to list to be removed
###
playlist_list = []
quarter_dict = {} #holds
for x in track_dict: #create dictionary of track id's and playlist names
if 1 <= track_dict[x].month <= 3:
quarter_dict[x] = str(track_dict[x].year)+" Q1"
elif 4 <= track_dict[x].month <= 6:
quarter_dict[x] = str(track_dict[x].year)+" Q2"
elif 7 <= track_dict[x].month <= 9:
quarter_dict[x] = str(track_dict[x].year)+" Q3"
elif 10 <= track_dict[x].month <= 12:
quarter_dict[x] = str(track_dict[x].year)+" Q4"
for x in quarter_dict: #create list of playlist names
if quarter_dict[x] not in playlist_list:
playlist_list.append(quarter_dict[x])
#playlist_list.append(quarter_dict[x]) if quarter_dict[x] not in playlist_list except: pass
final_playlist_dict = {} #holds playlist names/ids
for x in playlist_list: #checks by name ex 2017 Q4, gets playlist IDS or creates them
#input is a playlist name string (x)
final_playlist_dict[x] = functions.playlist_creation(x)
plist_and_tracks = {}
for x in quarter_dict: #creates dictionary of playlist IDS as keys and track list as values
#for each track in the quarter dict (track ID as key and playlist name as value)
if final_playlist_dict[quarter_dict[x]] in plist_and_tracks: #if playlist id exists already, skip
pass
else:
plist_and_tracks[final_playlist_dict[quarter_dict[x]]] = [] #else, create it
plist_and_tracks[final_playlist_dict[quarter_dict[x]]].append(x) #then add track to appropriate list
exclusion_list = functions.exclusion_terms() #creates exclusion terms
for playlist in plist_and_tracks: #for each playlist, add associated track list
add_list, remove_list = functions.add_to_playlist_return(playlist,plist_and_tracks[playlist],exclusion_list)
########### added the add_list and remove_list
#### remove_list are tracks that are excluded
for x in add_list:
push_me.notify("New Track Added",add_list[x]['artist']+" - "+add_list[x]['title'],'-2')
for x in remove_list:
push_me.notify("Duplicate Track!",remove_list[x]['artist']+" - "+remove_list[x]['title'],'-2')
if not saved_remove_list:
print("0 songs to be moved and removed from saved")
else:
print(str(len(saved_remove_list))+" songs to be removed from saved")
functions.remove_from_saved(saved_remove_list)