def __init__(self, register, name, host, port, routerHost, routerPort, manualOverride, clockSyncActive): self.name, self.host, self.port = name, host, port self.routerHost, self.routerPort = routerHost, routerPort self.manualOverride, self.clockSyncActive = manualOverride, clockSyncActive self.register = register # [{'song_name': 'Britney Spears - Toxic', 'votes': [{'peer_name': 'P1', 'sig': 'signature_on_song', 'pk': ..., 'pksign': ...}, {'peer_name': 'P2', 'sig': '...', ...}]] self.playlist = [] self.playlistLock = RLock() self.songplaying = None self.firstJoin = True self.progressLock = Lock() self.quitting = False keydist = KeyDistributer() self.key = keydist.getKeyPair() self.msg_count = 0 self.MSG_IDS_SEEN_MAXSIZE = 1000 self.msg_ids_seen = [-1] * self.MSG_IDS_SEEN_MAXSIZE self.msg_ids_seen_nextindex = 0 self.msg_ids_seen_lock = RLock() self.playlist_request_id = None self.playlists_received = 0 self.hasJoined = False self._time_since_last_msg = 0 self._time_since_last_msg_lock = Lock() self._top = [None] * LOCK_TOP # [('song', 42 votes), (...)] self._toplock = RLock() self.clock = Clock(self, sync=self.clockSyncActive)