Esempio n. 1
0
    def get_random_peer_having_piece(self, index):
        ready_peers = []

        for peer in self.peers:
            if peer.is_unchoked() and peer.am_interested() and peer.has_piece(index):
                ready_peers.append(peer)

        return random.choice(ready_peers) if ready_peers else None
Esempio n. 2
0
 def unchoked_peers_count(self):
     cpt = 0
     for peer in self.peers:
         if peer.is_unchoked():
             cpt += 1
     return cpt
Esempio n. 3
0
 def has_unchoked_peers(self):
     for peer in self.peers:
         if peer.is_unchoked():
             return True
     return False