def ensure_test_data(): global _test_data_created if _test_data_created: return _test_data_created = True ensure_test_tables() log('creating test data') already_exists = (Player.select().where( Player.cfn_id == sample_player_id).exists()) if already_exists: log('existing test data found') return create_test_player( cfn_id=sample_player_id, name='TestPlayer', subscribed=True, ) Rank.create( id=1, created_at=datetime.utcnow(), player_cfn=sample_player_id, league_points=100, placement=1, favorite_character=1, )
def load_subscribed_player_ids( subset_ids=None, batch_size=None, ): query = (Player.select().where(Player.subscribed == 1)) if subset_ids: query = (query.where(Player.cfn_id << list(subset_ids))) if batch_size: query = (query.order_by(Player.updated_at).limit(batch_size)) return set([p.cfn_id for p in query])
def subscribe_to_new_player(player_model): existing = (Player.select().where(Player.cfn_id == player_model.cfn_id)) if existing: (Player.update( subscribed=1, name=player_model.name, region=player_model.region, platform=player_model.platform, ).where(Player.cfn_id == player_model.cfn_id).execute()) else: bulk_insert(Player, [{ 'cfn_id': player_model.cfn_id, 'name': player_model.name, 'region': player_model.region, 'platform': player_model.platform, 'subscribed': 1, }])
def get_subscribed_player_count(): return (Player.select().where(Player.subscribed == 1).count())
def get_latest_player_updated_at(): return (Player.select().order_by( Player.updated_at.desc()).get()).updated_at
def load_player_ticks(): return list( Player.select(Player.cfn_id, Player.match_latest_ticks).where(Player.subscribed == 1))
def load_subscribed_player_names(): daos = (Player.select(Player.name).where(Player.subscribed == 1)) return set([p.name for p in daos])