def _addRandomWord(self): if 'randomPlayers' not in self._roundSettings or not self._roundSettings[ 'randomPlayers']: return if 'randomWordsLimit' not in self._roundSettings or not self._roundSettings[ 'randomWordsLimit']: return randomPlayersProcessed = 0 for randomPlayer in self._RANDOM_PLAYER: if randomPlayersProcessed >= self._roundSettings['randomPlayers']: break if not Player.get(telegram_id=randomPlayer['id']): Player.add(telegram_id=randomPlayer['id'], name=randomPlayer['first_name']) randomPlayersProcessed += 1 if Word.getListByRoundId(telegram_id=randomPlayer['id'], **self._gameState['query']): continue randomWordsCount = 0 wordsAdded = 0 while wordsAdded <= self._roundSettings['randomWordsLimit']: if randomWordsCount > 20: break randomWordsCount += 1 word = self._getRandom( "ushakov", wordMinLength=self._roundSettings['minWordsPerPlayer']) if not word: continue Word.add(word=word, player_id=Player.getId(randomPlayer), wordsLimit=self._roundSettings['randomWordsLimit'], wordMinLength=self._roundSettings['minWordLength'], **self._gameState['query']) wordsAdded += 1
def _refreshPlayerState(self, newPlayer=False): telegram_id = self.update.effective_user.id logging.info("Refreshing player telegram_id %s" % str(telegram_id)) if self._playerState and not telegram_id: telegram_id = self._playerState['telegram_id'] self._playerState = Player.get(telegram_id=telegram_id) if not self._playerState: if newPlayer: raise PlayerAddingError Player.add(self.update) self._refreshPlayerState(True)