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',
|
||||
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),
|
||||
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()
|
||||
if season is not None:
|
||||
season_games = season_games.where(StratGame.season << season)
|
||||
@ -415,6 +416,10 @@ async def get_batting_totals(
|
||||
limit = 1
|
||||
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'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),
|
||||
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,
|
||||
csv: Optional[bool] = False):
|
||||
csv: Optional[bool] = False, page_num: Optional[int] = 1):
|
||||
season_games = StratGame.select()
|
||||
if season is not None:
|
||||
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.group_by(StratPlay.game.season)
|
||||
if sort is not None:
|
||||
if sort == 'player':
|
||||
if sort.lower() == 'player':
|
||||
pit_plays = pit_plays.order_by(StratPlay.pitcher)
|
||||
elif sort == 'team':
|
||||
elif sort.lower() == '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
|
||||
elif sort == 'wpa-asc':
|
||||
elif sort.lower() == 'wpa-asc':
|
||||
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())
|
||||
elif sort == 'ip-asc':
|
||||
elif sort.lower() == 'ip-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())
|
||||
elif sort == 'game-asc':
|
||||
elif sort.lower() == '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())
|
||||
elif sort == 'oldest':
|
||||
elif sort.lower() == 'oldest':
|
||||
pit_plays = pit_plays.order_by(StratPlay.game_id, StratPlay.play_num)
|
||||
if limit is not None:
|
||||
elif sort.lower() == 'run-desc':
|
||||
pit_plays = pit_plays.order_by(SQL('sum_run').desc())
|
||||
elif sort.lower() == 'run-asc':
|
||||
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.limit(limit)
|
||||
pit_plays = pit_plays.paginate(page_num, limit)
|
||||
|
||||
return_stats = {
|
||||
'count': pit_plays.count(),
|
||||
@ -718,7 +739,8 @@ async def get_fielding_totals(
|
||||
group_by: Literal['team', 'player', 'playerteam', 'playerposition', 'teamposition', 'playerpositiongame',
|
||||
'playergame'] = 'player',
|
||||
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()
|
||||
if season is not None:
|
||||
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())
|
||||
elif sort == 'oldest':
|
||||
def_plays = def_plays.order_by(StratPlay.game_id, StratPlay.play_num)
|
||||
if limit is not None:
|
||||
|
||||
if 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}')
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user