예제 #1
0
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))
예제 #2
0
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