Пример #1
0
    def test_iter(self):
        q = PlayableQueue()

        for idx in range(5):
            q.append(idx)

        self.assertEqual(sum(q), 10)
Пример #2
0
    def test_len(self):
        q = PlayableQueue()

        for idx in range(1234):
            q.append(idx)

        self.assertEqual(len(q), 1234)
Пример #3
0
    def test_blocking_get(self):
        q = PlayableQueue()
        result = gevent.event.AsyncResult()

        def get():
            result.set(q.get())

        gevent.spawn(get)
        q.append(5)
        self.assertEqual(result.get(), 5)
Пример #4
0
    def __init__(self, client, queue=None):
        self.client = client

        # Queue contains playable items
        self.queue = queue or PlayableQueue()

        # Whether we're playing music (true for lifetime)
        self.playing = True

        # Set to an event when playback is paused
        self.paused = None

        # Current playing item
        self.now_playing = None

        # Current play task
        self.play_task = None

        # Core task
        self.run_task = gevent.spawn(self.run)

        # Event triggered when playback is complete
        self.complete = gevent.event.Event()

        # Event emitter for metadata
        self.events = Emitter(spawn_each=True)
Пример #5
0
    def test_append(self):
        q = PlayableQueue()
        q.append(1)
        q.append(2)
        q.append(3)

        self.assertEqual(q._data, [1, 2, 3])
        self.assertEqual(q.get(), 1)
        self.assertEqual(q.get(), 2)
        self.assertEqual(q.get(), 3)
Пример #6
0
    def test_shuffle(self):
        q = PlayableQueue()

        for idx in range(10000):
            q.append(idx)

        self.assertEqual(q._data[0], 0)
        q.shuffle()
        self.assertNotEqual(q._data[0], 0)
Пример #7
0
    def test_clear(self):
        q = PlayableQueue()

        for idx in range(100):
            q.append(idx)

        self.assertEqual(q._data[0], 0)
        self.assertEqual(q._data[-1], 99)
        self.assertEqual(len(q), 100)
        q.clear()
        self.assertEqual(len(q), 0)
Пример #8
0
    def __init__(self, client, queue=None):
        super(Player, self).__init__()
        self.client = client

        self.last_activity = time.time()

        self.force_kick = False

        self.already_play = False

        self.force_return = 1
        self.max_returns = 1
        self.sleep_time_returns = 3

        # replay
        self.replay = False

        # Text channel
        self.text_id = None

        # Queue contains playable items
        self.queue = queue or PlayableQueue()

        # Whether we're playing music (true for lifetime)
        self.playing = True

        # Set to an event when playback is paused
        self.paused = None

        # Current playing item
        self.now_playing = None

        # Last playing item
        self.then_playing = None

        # Current play task
        self.play_task = None

        # Core task
        self.run_task = gevent.spawn(self.run)

        # Event triggered when playback is complete
        self.complete = gevent.event.Event()

        # Event emitter for metadata
        self.events = Emitter()