-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.py
153 lines (137 loc) · 5.47 KB
/
script.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#import music_player
from song import song
from playlist import playlist
import library
#import pickle
from audioplayer import AudioPlayer as ap
import ytdownloader
def menu():
print("Welcome to Muse! What would you like to do?\n") #maybe put this outside the loop??
print("a. Create a new empty playlist\n"
"b. Add a song to an existing playlist\n"
"c. View song library\n"
"d. Play a song\n"
"e. Play a playlist\n"
"f. Quit")
loop = 1
arg = 0
while loop == 1:
menu()
arg= input()
if arg=='a':
titl=input("Playlist title: ")
np=playlist(titl)
library.playlists.append(np)
with open('library.py','a') as f:
f.write('\n'+titl+'=playlist("'+titl+'")')
f.write('\nplaylists.append('+titl+')')
print("Playlist added!")
elif arg=='b':
option='a'
while option!='b':
print("Which playlist?")
print("Library: ")
for pl in library.playlists:
print(pl.title)
playlist= input()
st= input("Song title: ")
ar= input("Artist: ")
downl = True
if downl == True: # if not in library, download from youtube
ytdownloader.download(st, ar)
#get rid of printed text when downloads
for pl in library.playlists:
if playlist==pl.title:
playlist=pl
for s in pl.your_playlist:
if s.title.lower() == st.lower() and s.artist.lower() == ar.lower():
downl = False
pl.add(st,ar)
with open('library.py','a') as f:
f.write('\n'+pl.title+'.add("'+st+'",'+'"'+ar+'")')
print("Song added!")
option = input("What would you like to do? \n"
"a. Add another song \n"
"b. Return to main menu\n")
elif arg=='c':
option='a'
while option!='b':
print("Playlists:")
for pl in library.playlists:
print(pl.title)
print("\n")
playl = input("Playlist to view: ")
for pl in library.playlists:
if pl.title == playl:
if len(pl.your_playlist)==0:
print("--Empty--")
else:
pl.print()
print("\n")
option=input("What would you like to do? \n"
"a. View another playlist \n" #include option to delete from this playlist
"b. Return to main menu\n")
elif arg=='d': #display playlist/available songs here
# print("Playlists:")
# for pl in library.playlists:
# print(pl.title)
# print("\n")
# print("a. View all songs")
song= input("Song title: ")
artist= input("Artist: ")
downl=True
for pl in library.playlists:
for s in pl.your_playlist:
if s.title.lower()==song.lower() and s.artist.lower()==artist.lower():
downl=False
# if song(song,artist) in all_songs.all_songs:
# downl=False
if downl==True: #if not in library, download from youtube
ytdownloader.download(song, artist)
curr_song = ap('song library/'+song.lower()+".mp3")
command=None
#include artist in filename (like "better_khalid.mp3" program it to save like this when download from youtube)
while command!='q':
command= input("Press a to play, p to pause, r to resume and q to quit.\n") #have a restart option?
if command== 'a':
curr_song.play() #loop=True
elif command== 'p':
curr_song.pause()
elif command== 'r':
curr_song.resume()
curr_song.stop()
elif arg == 'e': #TODO: fix loop so that quit option works
option = 'a'
quit= False
while option != 'b':
print("Which playlist?")
print("Library: ")
for pl in library.playlists:
print(pl.title)
playlist = input()
#print songs here
# q=True
for pl in library.playlists:
if playlist == pl.title:
for song in pl.your_playlist:
curr_song = ap('song library/'+song.title.lower() + ".mp3")
print("Current song: "+ song.title + " by "+song.artist)
curr_song.play()
command=None
while command != 's':
#expects a command before playing next song
command = input("Press p to pause, r to resume, s to skip, and q to quit.\n")
if command == 'p':
curr_song.pause()
elif command == 'r':
curr_song.resume()
# elif command == 'q':
# q=True
#wait until song is done
curr_song.stop()
curr_song.close()
option = input("What would you like to do? \n" #note: make sure this shows up after song finishes playing too
"a. Play another playlist \n"
"b. Return to main menu\n")
elif arg=='f':
loop=0