def main(): logging.basicConfig(stream=sys.stdout, level=logging.INFO) config = ConfigParser() configfn = os.path.join(os.path.expanduser('~'), '.pgcred') config.read(configfn) nbapg = NBAComPg(username=config['nbadb']['username'], password=config['nbadb']['password'], database=config['nbadb']['database']) flpg = FantasyLabsNBAPg(username=config['nbadb']['username'], password=config['nbadb']['password'], database=config['nbadb']['database']) cn = 'nba-agent-{}'.format(today()) a = NBAComAgent(cache_name=cn, cookies=None, db=nbapg) a.scraper.delay = 1 season = '2016-17' # get the rosters q = """SELECT is_starter FROM starters WHERE nbacom_player_id = {} ORDER BY game_date DESC LIMIT 1""" incomplete = [] roster_url = 'http://data.nba.com/data/10s/prod/v1/2016/teams/{}/roster.json' for urlcode in nbapg.select_list(today_team_url_codes()): print(urlcode) try: roster = a.scraper.get_json(roster_url.format(urlcode)) for p in roster["league"]["standard"]["players"]: pid = p.get('personId') starter = a.db.select_scalar(q.format(pid)) print('{}, {}'.format(pid, starter)) except: incomplete.append(roster_url.format(urlcode)) for i in incomplete: try: roster = a.scraper.get_json(roster_url.format(urlcode)) for p in roster["league"]["standard"]["players"]: starter = a.db.select_scalar(q.format(p)) print('{}, {}'.format(p, starter)) except: logging.error('could not get {}'.format(i))
def fl(): logging.basicConfig(stream=sys.stdout, level=logging.INFO) config = ConfigParser() configfn = os.path.join(os.path.expanduser('~'), '.pgcred') config.read(configfn) nbapg = NBAComPg(username=config['nbadb']['username'], password=config['nbadb']['password'], database=config['nbadb']['database']) #dq = """SELECT DISTINCT game_date FROM cs_games WHERE game_date < now()::date ORDER BY game_date""" dq = """SELECT DISTINCT game_date FROM games WHERE game_date = '2015-11-02'""" q = """SELECT * FROM past_dfs WHERE game_date = '{}' ORDER BY dk_points DESC""" for d in nbapg.select_list(dq): gd = datetostr(d, 'nba') logging.info('starting {}'.format(gd)) optimizer = LineupOptimizer(settings.DraftKingsBasketballSettings) pls = nbapg.select_dict(q.format(gd)) logging.info(pls[0:3]) optimizer._players = nba_to_pydfs(pls) items = [] try: for idx, lineup in enumerate(optimizer.optimize(n=10)): for p in lineup.players: items.append({ 'game_date': gd, 'lineup_rank': idx + 1, 'nbacom_player_id': p.id, 'positions': p.positions, 'dkpts': p.fppg, 'salary': p.salary }) print(lineup) logging.info('finished lineup {}'.format(idx)) except Exception as e: logging.exception(e) continue