def get_data(): check_logos_directory() for i in range(1929, 2021): print("Getting year", i) league = League(i, handle_jornada(i)) league_to_csv(league) time.sleep(5)
def create_league(): # must be signed in if 'user_id' not in session: return redirect(url_for('signin')) # registration form league = CreateLeague() if request.method == 'POST': if league.validate() == False: return render_template('create_league.html', form=league) else: try: # write league to database newLeague = League(league.league_name.data, league.league_pwd.data, int(session['user_id'])) db.session.add(newLeague) db.session.commit() lid = League.query.filter_by(league_name=league.league_name.data).first() # add users addUser = LeagueUser(lid.league_id, int(session['user_id'])) db.session.add(addUser) db.session.commit() return redirect(url_for('index')) except: e = list(league.league_name.errors) e.append('This league already exists.') league.email.errors = tuple(e) return render_template('create_league.html', form=league) elif request.method == 'GET': return render_template("create_league.html", form=league)
def import_league_data(csv_file): with open(csv_file) as csv_file: reader = csv.DictReader(csv_file) try: for row in reader: league = League(name=row['Name'], display_name=row['DisplayName']) db.session.add(league) db.session.commit() except: print("Error")
def _json_to_league(data): league = League(data[LEAGUENAME_LABEL]) jsonroster = data[TEAMROSTER_LABEL] for jsonteam in jsonroster: team = _json_to_team(jsonteam) league.add_team(team) draft_class = None if(data[L_DRAFT_CLASS_LABEL]!= None): draft_class = _json_to_draft_class(data[L_DRAFT_CLASS_LABEL]) league.draft_class = draft_class league.picks_added = data[L_PICKS_ADDED_LABEL] return league
def league_create_post(): league_name = request.form.get('league_name') credit = request.form.get('credit') if current_user.is_admin_user(): if not credit.isdigit(): flash('Invalid credit value', 'error') return redirect(url_for('admin.index')) new_league = League(name=league_name, credit=credit, state='new') db.session.add(new_league) db.session.commit() flash('League %s created successfully!' % league_name, 'success') return redirect(url_for('admin.index')) else: flash('User is not an admin', 'error') return redirect(url_for('main.profile'))
def get_leagues(self): url = "http://footyroom.com/" r = requests.get(url) soup = BeautifulSoup(r.content, "lxml") if r.status_code != 200: error("Failed to process url!") return False # Get main content hodlder main_section = soup.find("section", {"class": "all-leagues-content"}) debug("main_section: {}".format(main_section != None)) # Get children league_group = main_section.find_all("div", recursive=False) other_league_groups = main_section.find_all("section", recursive=False) # debug("main_children: {}".format(match_children != None)) leagues_to_rtn = [] for lg_group in league_group: # Get ul inside div lst = lg_group.find("ul") # Get country from first li of ul country_li = lst.find("li", {"class": "all-leagues-header"}) country = country_li.text leagues = lst.find_all("li", {"class": ""}) for league_li in leagues: league = League(country, league_li.text) url = league_li.find("a")["href"] # self.process_league(league, url) leagues_to_rtn.append((league, url)) # Find leagues return leagues_to_rtn
def get_league(): for page_id in range(1, 2): try: url = CK_API_URL.format('leagues') response = get_request(url) for league_data in response: try: return DB.open().query(League).filter(League.api_url == league_data['api']).one() except: obj = get_request(league_data['api']) if 'id' in obj: league = League() league.parse_json(obj) DB.save(league) if league: print('SAVED LEAGUE ID {}'.format(league.id)) print('+++++++++++++++++') except: pass
def createLeague(): """Create a new League""" # If method is POST if request.method == 'POST': # Create an SEO friendly slug for the new league slug = slugify(request.form['name']) # Check if a league exists with this slug league = session.query(League).filter_by(slug=slug).first() if league is not None: flash("A league with this name already exists.") return redirect(url_for('createLeague')) # Create a new League league = League(name=request.form['name'], user_id=login_session['user_id']) session.add(league) session.commit() flash("Successfully created new league: {}".format(league.name)) return redirect(url_for('showLeague', league_id=league.slug)) # Show create league template return render_template('create_league.html')
Base.metadata.bind = engine DBSession = sessionmaker(bind=engine) session = DBSession() newUser1 = User(name="Gary Bettman", email="*****@*****.**", picture="") session.add(newUser1) session.commit() newUser2 = User(name="Adam Silver", email="*****@*****.**", picture="") session.add(newUser1) session.commit() # NHL nhl = League(name="NHL", user=newUser1) session.add(nhl) session.commit() leafs = Team(name="Toronto Maple Leafs", league=nhl) session.add(leafs) session.commit() habs = Team(name="Montreal Canadiens", league=nhl) session.add(habs) session.commit() pens = Team(name="Pittsburgh Penguins", league=nhl) session.add(pens) session.commit()
# Add models in the DB Team.__table__.create(engine) League.__table__.create(engine) Game.__table__.create(engine) # LEAGUES # Fill leagues broker = 'med' leagues = config_results.BROKERS_LEAGUES[broker] # available_leagues available_leagues = [] for key, item in enumerate(leagues): country, level = item.split('_') name = leagues[item]['division'] league = League(name=name, country=country, level=level) session.add(league) session.commit() # --- # TEAM # Fill teams available_leagues = session.query(League).all() for league in available_leagues: country = league.country level = league.level league_file = f'../../data/results/leagues/league_{country}_{level}_{broker}.csv' teams = pd.read_csv(league_file) query = session.query(League).filter_by(country=country, level=level).all()[0]
def add_or_edit_league(request, league=None): existing = "" if league: league = League.objects.get(pk=league) if request.method == "POST": if league: form = LeagueForm(request.POST) else: form = NewLeagueForm(request.POST) if form.is_valid(): if form.cleaned_data['join_leagues']: for league in form.cleaned_data['join_leagues']: # apply to join these leagues application = LeagueJoinStates.joined\ .apply_to_league(league, request.user) url = reverse('logged_in') return redirect(url) else: could_join = Set([]) applied = Set([]) invited = Set([]) # first, build three lists (applied, invited, # could_join) of leagues that people we're inviting # are already in for row in form.members.cleaned_data: if row: try: member = CustomUser.objects.get(email=row['email']) except CustomUser.DoesNotExist: continue user = request.user leagues = member.leagues_by_state(STATE_ACCEPTED) # don't include leagues we've already decided # not to join (or have been rejected from) leagues = leagues.exclude( leaguejoinstates__state=STATE_REJECTED, #leaguejoinstates__state=STATE_DECLINED, leaguejoinstates__user=user) if leagues: applied.update( leagues.filter( leaguejoinstates__state=STATE_APPLIED, leaguejoinstates__user=user)) invited.update( leagues.filter( leaguejoinstates__state=STATE_INVITED, leaguejoinstates__user=user)) could_join.update( leagues.exclude(leaguejoinstates__user=user)) if not request.POST.get('yes_really', '')\ and (could_join or applied or invited): # present the user with a choice to join other # leagues instead of making a new one # # XXX this is horrendous but I don't know how to # do it better choices = [(x.id, x.name) for x in could_join] form.fields['join_leagues'].choices = choices return locals() else: # create a new league and invite people to join it if not league: league = League(name=form.cleaned_data['name'], owner=request.user) league.save() # the current user will be a member, of course application = LeagueJoinStates(league=league, user=request.user, state=STATE_ACCEPTED) application.save() for row in form.members.cleaned_data: if not row: continue email = row['email'] try: member = CustomUser.objects.get(email=email) except CustomUser.DoesNotExist: create_user = CustomUser.objects.create_user member = create_user(username=email, email=email) member.save() try: profile = RegistrationProfile.objects\ .filter(user=member).get() except RegistrationProfile.DoesNotExist: profile = RegistrationProfile.objects\ .create_profile(member, email=False) invite = LeagueJoinStates.joined\ .invite_user(league, member) url = reverse('logged_in') return redirect(url) else: if league: form = LeagueForm() else: form = NewLeagueForm() return locals()
def edit_game(request, game_id): game = Game.objects.get(id=game_id) league_list = League.objects.all() member_list = Member.objects.all() batting_query = Batting.objects.filter(game=game) pitching_query = Pitching.objects.filter(game=game) if request.method != "POST": game.date = unicode(game.date) away_name = game.away_name.encode('utf8') home_name = game.home_name.encode('utf8') game.away_scores = CommaSeparatedString_to_IntegerArray( game.away_scores) game.home_scores = CommaSeparatedString_to_IntegerArray( game.home_scores) message = "" warning = "" record_table = text_to_table(game.record.encode('utf8')) if (away_name.upper() == 'RB'): away_table = record_table home_table = [] else: away_table = [] home_table = record_table game_record, warning = parse_game_record(away_name, game.away_scores, away_table, \ home_name, game.home_scores, home_table) if (away_name.upper() == 'RB'): team = game_record.away else: team = game_record.home batting_list = [] for batting in batting_query: batting_list.append(batting) pitching_list = [] for pitching in pitching_query: pitching_list.append(pitching) # add rows for changing pitchers N = len(pitching_list) for i in range(5 - N): pitching_list.append(Pitching()) context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message, 'game_record': game_record, 'team': team, 'member_list': member_list, 'batting_list': batting_list, 'pitching_list': pitching_list } return render(request, 'team/edit_game.html', context) else: # POST league_id = request.POST["league_id"] game.league = League.objects.get(id=league_id) game.date = request.POST["date"] game.location = request.POST["location"] game.record = request.POST["record_text"] game.away_name = request.POST["away_name"] game.home_name = request.POST["home_name"] game.away_scores = gather_team_scores_from_web(request, 'away') game.home_scores = gather_team_scores_from_web(request, 'home') print game.home_scores message = "" warning = "" game_record = None team = None if 'add-new-league-btn' in request.POST: print("add new league!") league_name = request.POST["new-league-name"] if league_name != None: league = League.objects.filter(name=league_name) if (league.exists()): warning = "League name %s already exists." % league_name else: league = League(name=league_name) league.save() message = 'Add new league: %s' % league_name league_list = League.objects.all() if 'add-new-member-btn' in request.POST: print("add new member!") member_name = request.POST["new-member-name"] member_number = int(request.POST["new-member-number"]) if member_name != None: member = Member.objects.filter(name=member_name) if (member.exists()): warning = "Member %s already exists." % member_name else: member = Member(name=member_name, number=member_number) member.save() message = 'Add new member: %s(%d)' % (member_name, member_number) member_list = Member.objects.all() if ('preview-btn' in request.POST) or ('save-game-btn' in request.POST): game.league = League.objects.get(id=league_id) record_table = text_to_table(game.record.encode('utf8')) away_name = game.away_name.encode('utf8') home_name = game.home_name.encode('utf8') if (away_name.upper() == 'RB'): away_table = record_table home_table = [] else: away_table = [] home_table = record_table game_record, warning = parse_game_record(away_name, game.away_scores, away_table, \ home_name, game.home_scores, home_table) game.away_R = game_record.away.R game.away_H = game_record.away.H game.away_E = game_record.away.E game.home_R = game_record.home.R game.home_H = game_record.home.H game.home_E = game_record.home.E if (warning == ""): message = "Preview record table!" game_record, team = extract_single_team_data(game_record, 'RB') batting_list = [] for batter in team.batters: batting = Batting() for play in batting_query: if batter.name.decode('utf8') == play.member.name: batting = play break batting.member = Member.objects.get( name=batter.name.decode('utf8')) batting.game = game batting.order = batter.order batting.pa = batter.PA batting.single = batter.B1 batting.double = batter.B2 batting.triple = batter.B3 batting.hr = batter.HR batting.rbi = batter.RBI batting.run = batter.RUN batting.bb = batter.BB batting.k = batter.K batting.sf = batter.SF batting.field = batter.pos batting_list.append(batting) # DO NOT modify pitching query with team.pitchers pitching_list = [] for pitching in pitching_query: pitching_list.append(pitching) # add rows for changing pitchers N = len(pitching_list) for i in range(5 - N): pitching_list.append(Pitching()) if 'save-game-btn' in request.POST: # create and save new Game object game.away_scores = IntegerArray_to_CommaSeparatedString( game.away_scores) game.home_scores = IntegerArray_to_CommaSeparatedString( game.home_scores) game.save() nBatter = len(batting_list) for i in range(nBatter): batting = batting_list[i] member_id = int( request.POST.get("batting_%d_id" % (i + 1), "")) if (member_id != 0): batting.member = Member.objects.get(id=member_id) batting.game = game batting.save() nPitcher = len(pitching_list) for i in range(nPitcher): pitching = pitching_list[i] member_id = int( request.POST.get("pitching_%d_id" % (i + 1), "")) if (member_id != 0): pitching.member = Member.objects.get(id=member_id) pitching.game = game pitching.outs = int( request.POST.get("pitching_%d_outs" % (i + 1), "")) pitching.pa = int( request.POST.get("pitching_%d_pa" % (i + 1), "")) pitching.hit = int( request.POST.get("pitching_%d_hit" % (i + 1), "")) pitching.hr = int( request.POST.get("pitching_%d_hr" % (i + 1), "")) pitching.bb = int( request.POST.get("pitching_%d_bb" % (i + 1), "")) pitching.k = int( request.POST.get("pitching_%d_k" % (i + 1), "")) pitching.run = int( request.POST.get("pitching_%d_run" % (i + 1), "")) pitching.er = int( request.POST.get("pitching_%d_er" % (i + 1), "")) pitching.go = int( request.POST.get("pitching_%d_go" % (i + 1), "")) pitching.fo = int( request.POST.get("pitching_%d_fo" % (i + 1), "")) win = request.POST.get("pitching_%d_win" % (i + 1), "") lose = request.POST.get( "pitching_%d_lose" % (i + 1), "") if (win != ''): pitching.win = 1 else: pitching.win = 0 if (lose != ''): pitching.lose = 1 else: pitching.lose = 0 pitching.save() return redirect("/game/" + str(game.id)) context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message, 'game_record': game_record, 'team': team, 'member_list': member_list, 'batting_list': batting_list, 'pitching_list': pitching_list } return render(request, 'team/edit_game.html', context)
def add_game(request): league_list = League.objects.all() member_list = Member.objects.all() game = Game() batting_list = [] pitching_list = [] if request.method != "POST": game.date = None game.location = "" game.away_name = "" game.away_scores = [0] * 7 game.home_name = "" game.home_scores = [0] * 7 game.record = "" message = "" warning = "" context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message } return render(request, 'team/add_game.html', context) else: league_id = request.POST["league_id"] game.league = League.objects.get(id=league_id) game.date = request.POST["date"] game.location = request.POST["location"] game.record = request.POST["record_text"] game.away_name = request.POST["away_name"] game.home_name = request.POST["home_name"] game.away_scores = gather_team_scores_from_web(request, 'away') game.home_scores = gather_team_scores_from_web(request, 'home') message = "" warning = "" game_record = None team = None if 'add-new-league-btn' in request.POST: print("add new league!") league_name = request.POST["new-league-name"] if league_name != None and league_name != "": league = League.objects.filter(name=league_name) if (league.exists()): warning = "League name %s already exists." % league_name else: league = League(name=league_name) league.save() message = 'Add new league: %s' % league_name league_list = League.objects.all() if 'add-new-member-btn' in request.POST: print("add new member!") member_name = request.POST["new-member-name"] member_number = int(request.POST["new-member-number"]) if member_name != None: member = Member.objects.filter(name=member_name) if (member.exists()): warning = "Member %s already exists." % member_name else: member = Member(name=member_name, number=member_number) member.save() message = 'Add new member: %s(%d)' % (member_name, member_number) member_list = Member.objects.all() if ('preview-btn' in request.POST) or ('save-game-btn' in request.POST): game.league = League.objects.get(id=league_id) record_table = text_to_table(game.record.encode('utf8')) away_name = game.away_name.encode('utf8') home_name = game.home_name.encode('utf8') if (away_name.upper() == 'RB'): away_table = record_table home_table = [] else: away_table = [] home_table = record_table game_record, warning = parse_game_record(away_name, game.away_scores, away_table, \ home_name, game.home_scores, home_table) game.away_R = game_record.away.R game.away_H = game_record.away.H game.away_E = game_record.away.E game.home_R = game_record.home.R game.home_H = game_record.home.H game.home_E = game_record.home.E if (warning == ""): message = "Preview record table!" game_record, team = extract_single_team_data(game_record, 'RB') # create and save new Batting object nBatter = len(team.batters) batting_list = [] for i in range(nBatter): batting = Batting() batting.game = game batting.order = team.batters[i].order batting.pa = team.batters[i].PA batting.single = team.batters[i].B1 batting.double = team.batters[i].B2 batting.triple = team.batters[i].B3 batting.hr = team.batters[i].HR batting.rbi = team.batters[i].RBI batting.run = team.batters[i].RUN batting.bb = team.batters[i].BB batting.k = team.batters[i].K batting.sf = team.batters[i].SF batting.field = team.batters[i].pos try: batting.member = Member.objects.get( name=team.batters[i].name.decode('utf8')) except Member.DoesNotExist: warning = "member name %s does not exist." % team.batters[ i].name break batting_list.append(batting) # create and save new Batting object nPitcher = len(team.pitchers) pitching_list = [] for i in range(nPitcher): pitching = Pitching() pitching.game = game pitching.order = i pitching.outs = team.pitchers[i].OUT pitching.pa = team.pitchers[i].TBF pitching.hit = team.pitchers[i].H pitching.hr = team.pitchers[i].HR pitching.bb = team.pitchers[i].BB pitching.k = team.pitchers[i].K pitching.run = team.pitchers[i].RUN pitching.er = team.pitchers[i].ER pitching.go = team.pitchers[i].GO pitching.fo = team.pitchers[i].FO pitching.win = team.pitchers[i].WIN pitching.lose = team.pitchers[i].LOSE try: pitching.member = Member.objects.get( name=team.pitchers[i].name.decode('utf8')) except Member.DoesNotExist: warning = "member name %s does not exist." % team.pitchers[ i].name break pitching_list.append(pitching) # add rows for changing pitchers N = len(pitching_list) for i in range(5 - N): pitching_list.append(Pitching()) if 'save-game-btn' in request.POST: # create and save new Game object game.away_scores = IntegerArray_to_CommaSeparatedString( game.away_scores) game.home_scores = IntegerArray_to_CommaSeparatedString( game.home_scores) game.save() nBatter = len(batting_list) for i in range(nBatter): batting = batting_list[i] member_id = int( request.POST.get("batting_%d_id" % (i + 1), "")) if (member_id != 0): batting.member = Member.objects.get(id=member_id) batting.game = game batting.save() nPitcher = len(pitching_list) for i in range(nPitcher): pitching = pitching_list[i] member_id = int( request.POST.get("pitching_%d_id" % (i + 1), "")) if (member_id != 0): pitching.member = Member.objects.get(id=member_id) pitching.game = game pitching.outs = int( request.POST.get("pitching_%d_outs" % (i + 1), "")) pitching.pa = int( request.POST.get("pitching_%d_pa" % (i + 1), "")) pitching.hit = int( request.POST.get("pitching_%d_hit" % (i + 1), "")) pitching.hr = int( request.POST.get("pitching_%d_hr" % (i + 1), "")) pitching.bb = int( request.POST.get("pitching_%d_bb" % (i + 1), "")) pitching.k = int( request.POST.get("pitching_%d_k" % (i + 1), "")) pitching.run = int( request.POST.get("pitching_%d_run" % (i + 1), "")) pitching.er = int( request.POST.get("pitching_%d_er" % (i + 1), "")) pitching.go = int( request.POST.get("pitching_%d_go" % (i + 1), "")) pitching.fo = int( request.POST.get("pitching_%d_fo" % (i + 1), "")) win = request.POST.get("pitching_%d_win" % (i + 1), "") lose = request.POST.get( "pitching_%d_lose" % (i + 1), "") if (win != ''): pitching.win = 1 else: pitching.win = 0 if (lose != ''): pitching.lose = 1 else: pitching.lose = 0 pitching.save() return redirect("/game/" + str(game.id)) # end of add-game-btn # end of preview context = { 'league_list': league_list, 'game': game, 'warning': warning, 'message': message, 'game_record': game_record, 'team': team, 'member_list': member_list, 'batting_list': batting_list, 'pitching_list': pitching_list } return render(request, 'team/add_game.html', context)