Update stratplay.py
Add page_num param to play queries
This commit is contained in:
parent
85b855492f
commit
342eb50362
@ -265,7 +265,8 @@ async def get_batting_totals(
|
|||||||
group_by: Literal['team', 'player', 'playerteam', 'playergame', 'teamgame', 'league'] = 'player',
|
group_by: Literal['team', 'player', 'playerteam', 'playergame', 'teamgame', 'league'] = 'player',
|
||||||
min_pa: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
min_pa: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
||||||
obc: list = Query(default=None), risp: Optional[bool] = None, inning: list = Query(default=None),
|
obc: list = Query(default=None), risp: Optional[bool] = None, inning: list = Query(default=None),
|
||||||
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False):
|
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False,
|
||||||
|
page_num: Optional[int] = 1):
|
||||||
season_games = StratGame.select()
|
season_games = StratGame.select()
|
||||||
if season is not None:
|
if season is not None:
|
||||||
season_games = season_games.where(StratGame.season << season)
|
season_games = season_games.where(StratGame.season << season)
|
||||||
@ -415,6 +416,10 @@ async def get_batting_totals(
|
|||||||
limit = 1
|
limit = 1
|
||||||
bat_plays = bat_plays.limit(limit)
|
bat_plays = bat_plays.limit(limit)
|
||||||
|
|
||||||
|
if limit < 1:
|
||||||
|
limit = 1
|
||||||
|
bat_plays = bat_plays.paginate(page_num, limit)
|
||||||
|
|
||||||
logging.info(f'bat_plays query: {bat_plays}')
|
logging.info(f'bat_plays query: {bat_plays}')
|
||||||
logging.info(f'run_plays query: {run_plays}')
|
logging.info(f'run_plays query: {run_plays}')
|
||||||
|
|
||||||
@ -510,7 +515,7 @@ async def get_pitching_totals(
|
|||||||
min_pa: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
min_pa: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
||||||
obc: list = Query(default=None), risp: Optional[bool] = None, inning: list = Query(default=None),
|
obc: list = Query(default=None), risp: Optional[bool] = None, inning: list = Query(default=None),
|
||||||
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False,
|
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False,
|
||||||
csv: Optional[bool] = False):
|
csv: Optional[bool] = False, page_num: Optional[int] = 1):
|
||||||
season_games = StratGame.select()
|
season_games = StratGame.select()
|
||||||
if season is not None:
|
if season is not None:
|
||||||
season_games = season_games.where(StratGame.season << season)
|
season_games = season_games.where(StratGame.season << season)
|
||||||
@ -603,30 +608,46 @@ async def get_pitching_totals(
|
|||||||
pit_plays = pit_plays.join(StratGame)
|
pit_plays = pit_plays.join(StratGame)
|
||||||
pit_plays = pit_plays.group_by(StratPlay.game.season)
|
pit_plays = pit_plays.group_by(StratPlay.game.season)
|
||||||
if sort is not None:
|
if sort is not None:
|
||||||
if sort == 'player':
|
if sort.lower() == 'player':
|
||||||
pit_plays = pit_plays.order_by(StratPlay.pitcher)
|
pit_plays = pit_plays.order_by(StratPlay.pitcher)
|
||||||
elif sort == 'team':
|
elif sort.lower() == 'team':
|
||||||
pit_plays = pit_plays.order_by(StratPlay.pitcher_team)
|
pit_plays = pit_plays.order_by(StratPlay.pitcher_team)
|
||||||
elif sort == 'wpa-desc':
|
elif sort.lower() == 'wpa-desc':
|
||||||
pit_plays = pit_plays.order_by(SQL('sum_wpa').asc()) # functions seem reversed since pitcher plays negative
|
pit_plays = pit_plays.order_by(SQL('sum_wpa').asc()) # functions seem reversed since pitcher plays negative
|
||||||
elif sort == 'wpa-asc':
|
elif sort.lower() == 'wpa-asc':
|
||||||
pit_plays = pit_plays.order_by(SQL('sum_wpa').desc())
|
pit_plays = pit_plays.order_by(SQL('sum_wpa').desc())
|
||||||
elif sort == 'ip-desc':
|
elif sort.lower() == 'ip-desc':
|
||||||
pit_plays = pit_plays.order_by(SQL('sum_outs').desc())
|
pit_plays = pit_plays.order_by(SQL('sum_outs').desc())
|
||||||
elif sort == 'ip-asc':
|
elif sort.lower() == 'ip-asc':
|
||||||
pit_plays = pit_plays.order_by(SQL('sum_outs').asc())
|
pit_plays = pit_plays.order_by(SQL('sum_outs').asc())
|
||||||
elif sort == 'game-desc':
|
elif sort.lower() == 'game-desc':
|
||||||
pit_plays = pit_plays.order_by(SQL('sum_game').desc())
|
pit_plays = pit_plays.order_by(SQL('sum_game').desc())
|
||||||
elif sort == 'game-asc':
|
elif sort.lower() == 'game-asc':
|
||||||
pit_plays = pit_plays.order_by(SQL('sum_game').asc())
|
pit_plays = pit_plays.order_by(SQL('sum_game').asc())
|
||||||
elif sort == 'newest':
|
elif sort.lower() == 'newest':
|
||||||
pit_plays = pit_plays.order_by(StratPlay.game_id.desc(), StratPlay.play_num.desc())
|
pit_plays = pit_plays.order_by(StratPlay.game_id.desc(), StratPlay.play_num.desc())
|
||||||
elif sort == 'oldest':
|
elif sort.lower() == 'oldest':
|
||||||
pit_plays = pit_plays.order_by(StratPlay.game_id, StratPlay.play_num)
|
pit_plays = pit_plays.order_by(StratPlay.game_id, StratPlay.play_num)
|
||||||
if limit is not None:
|
elif sort.lower() == 'run-desc':
|
||||||
if limit < 1:
|
pit_plays = pit_plays.order_by(SQL('sum_run').desc())
|
||||||
limit = 1
|
elif sort.lower() == 'run-asc':
|
||||||
pit_plays = pit_plays.limit(limit)
|
pit_plays = pit_plays.order_by(SQL('sum_run').asc())
|
||||||
|
elif sort.lower() == 'hit-desc':
|
||||||
|
pit_plays = pit_plays.order_by(SQL('sum_hit').desc())
|
||||||
|
elif sort.lower() == 'hit-asc':
|
||||||
|
pit_plays = pit_plays.order_by(SQL('sum_hit').asc())
|
||||||
|
elif sort.lower() == 'bb-desc':
|
||||||
|
pit_plays = pit_plays.order_by(SQL('sum_bb').desc())
|
||||||
|
elif sort.lower() == 'bb-asc':
|
||||||
|
pit_plays = pit_plays.order_by(SQL('sum_bb').asc())
|
||||||
|
elif sort.lower() == 'so-desc':
|
||||||
|
pit_plays = pit_plays.order_by(SQL('sum_so').desc())
|
||||||
|
elif sort.lower() == 'so-asc':
|
||||||
|
pit_plays = pit_plays.order_by(SQL('sum_so').asc())
|
||||||
|
|
||||||
|
if limit < 1:
|
||||||
|
limit = 1
|
||||||
|
pit_plays = pit_plays.paginate(page_num, limit)
|
||||||
|
|
||||||
return_stats = {
|
return_stats = {
|
||||||
'count': pit_plays.count(),
|
'count': pit_plays.count(),
|
||||||
@ -718,7 +739,8 @@ async def get_fielding_totals(
|
|||||||
group_by: Literal['team', 'player', 'playerteam', 'playerposition', 'teamposition', 'playerpositiongame',
|
group_by: Literal['team', 'player', 'playerteam', 'playerposition', 'teamposition', 'playerpositiongame',
|
||||||
'playergame'] = 'player',
|
'playergame'] = 'player',
|
||||||
min_ch: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
min_ch: Optional[int] = 1, team_id: list = Query(default=None), manager_id: list = Query(default=None),
|
||||||
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False):
|
sort: Optional[str] = None, limit: Optional[int] = None, short_output: Optional[bool] = False,
|
||||||
|
page_num: Optional[int] = 1):
|
||||||
season_games = StratGame.select()
|
season_games = StratGame.select()
|
||||||
if season is not None:
|
if season is not None:
|
||||||
season_games = season_games.where(StratGame.season << season)
|
season_games = season_games.where(StratGame.season << season)
|
||||||
@ -803,10 +825,12 @@ async def get_fielding_totals(
|
|||||||
def_plays = def_plays.order_by(StratPlay.game_id.desc(), StratPlay.play_num.desc())
|
def_plays = def_plays.order_by(StratPlay.game_id.desc(), StratPlay.play_num.desc())
|
||||||
elif sort == 'oldest':
|
elif sort == 'oldest':
|
||||||
def_plays = def_plays.order_by(StratPlay.game_id, StratPlay.play_num)
|
def_plays = def_plays.order_by(StratPlay.game_id, StratPlay.play_num)
|
||||||
if limit is not None:
|
|
||||||
if limit < 1:
|
if limit < 1:
|
||||||
limit = 1
|
limit = 1
|
||||||
def_plays = def_plays.limit(limit)
|
elif limit > 500:
|
||||||
|
limit = 500
|
||||||
|
def_plays = def_plays.paginate(page_num, limit)
|
||||||
|
|
||||||
logging.info(f'def_plays query: {def_plays}')
|
logging.info(f'def_plays query: {def_plays}')
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user