-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathQueue.py
More file actions
66 lines (50 loc) · 1.46 KB
/
Queue.py
File metadata and controls
66 lines (50 loc) · 1.46 KB
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
class QueueIsEmpty:
pass
class MyQueue:
def __init__(self):
self._queue = []
self._songs = set()
self.position = 0
self.length = 0
self.repeat = False
def is_empty(self):
return len(self._queue) == 0
def get_length(self):
return self.length
def increase_position(self):
self.position += 1
def get_position(self):
return self.position
def change_repeatable(self):
self.repeat = not self.repeat
return self.repeat
def add(self, songname, source):
if songname not in self._songs:
self._queue.append((songname, source))
self._songs.add(songname)
self.length += 1
def get_next_track(self):
if self.is_empty():
raise None
else:
self.position += 1
print(self.position)
print(self.length)
if self.position > len(self._queue):
if self.repeat:
self.position = 1
else:
self.purge()
return None
return self._queue[self.position - 1][1]
def list_queue(self):
lst = []
for i in self._queue:
lst.append(i[0])
str_list = "\n".join(lst)
return "The list is: \n" + str_list
def purge(self):
self._queue = []
self.position = 0
self._songs = set()
self.length = 0