Exemple #1
0
def get_onedays(session=None):
    """
    Get oneday records from ONEDAYS page
    """
    if session is None:
        session = get_session()
    return get_page_data(ONEDAYS, GetOnedayInfo(), session=session)
def collect_onedays(year=-1, session=None):
    """
    Year is a keyword argument.  Default is collect all.
    """
    if session is None:
        session = get_session()
    return get_page_data(ONEDAYS, GetOneDayQuiz(year), session=session)
Exemple #3
0
def get_rundles(season, league, session=get_session()):
    """
    Get a list of rundles for the season and league specified.
    """
    main_data = LLSTANDINGS + "%d&%s" % (season, league)
    return get_page_data(main_data,
                         GetRundles(season, league),
                         session=session)
Exemple #4
0
def get_leagues(season, session=None):
    """
    Get a list of leagues for the season specified.
    """
    if session is None:
        session = get_session()
    main_data = LLSTANDINGS + "%d" % season
    return get_page_data(main_data, GetLeagueNames(season), session=session)
Exemple #5
0
def get_qhist(player, session=get_session()):
    """
    Extract player's question history.

    Returns a dict indexed by categories.  Each dict entry consists
    of a 'correct' list and a 'wrong' list of questions asked.
    """
    pname = player.lower()
    main_data = QHIST % pname
    return get_page_data(main_data, GetQhist(pname), session=session)
Exemple #6
0
def get_season(session=get_session()):
    """
    Find the season number

    Input:
        session request

    Returns most recent season number
    """
    return int(get_page_data(LLHEADER, GetSeasonNumber(), session=session))
Exemple #7
0
def get_matchcount(session=get_session()):
    """
    Find matches in current season

    Input:
        session request

    """
    return get_page_data(ARUNDLE % (get_season(), 'Pacific'),
                         GetCurrentlyFinishedCount(),
                         session=session)
Exemple #8
0
def get_personal_data(person, session=get_session()):
    """
    Get information on a person

    Input:
        person -- LL id.
        session request

    Returns: dictionary of user's metadata (Location, Gender, College)
    """
    page = "%s/profiles.php?%s" % (LLHEADER, person.lower())
    return get_page_data(page, GetPersonalInfo(), session=session)
Exemple #9
0
def parse_oneday_get_date(oneday, session=get_session()):
    """
    Find the date of a oneday event.

    Returns a date value
    """
    urlv = "%s.php?%s" % (ONEDAYS, oneday)
    one_day_str = get_page_data(urlv, GetDateFromUrl(), session=session)
    extract = one_day_str.strip()
    if not extract:
        return date.today() + timedelta(days=1)
    extdate = extract.split(':')[0]
    return datetime.strptime(extdate, "%B %d, %Y").date()
def get_rundle_members(season, rundle, session=get_session()):
    """
    Get players in a rundle

    Input:
        season -- season number
        rundle -- rundle name (B_Pacific, for example)
        session request

    Returns list of user names of players in the rundle
    """
    page = "%s%d&%s" % (LLSTANDINGS, season, rundle)
    return get_page_data(page, GetRundleMembers(), session=session)
def get_user_data(player, session=get_session()):
    """
    Return information about a user:
        Tuple of two dicts:
            first Dict -- indexed by season, list of scores as 2 x 2 tuples.
            second Dict -- indexed by season, list of W-L-T records as tuples
        All values are integers

    Input:
        player -- player name
        session request
    """
    return get_page_data(USER_DATA % player.lower(),
                         GetUserData(),
                         session=session)
Exemple #12
0
 def __init__(self, season, match_day, rundle, session=get_session()):
     self.info = {}
     self.info['season'] = season
     self.info['day'] = match_day
     parts = rundle.split('_')
     self.info['rundle'] = parts[0]
     self.info['league'] = parts[1]
     self.info['division'] = 0
     self.result = {}
     if len(parts) > 2:
         self.info['division'] = int(parts[-1])
     page = '&'.join([str(season), str(match_day), rundle])
     self.url = MATCH_DATA % page
     self.raw_data = get_page_data(self.url, GetMatchDay(), session)
     if len(self.raw_data) % MatchDay.INFO_PER_USER != 0:
         raise ValueError('LL Parsing Error')
     self.num_folks = len(self.raw_data) // MatchDay.INFO_PER_USER
def get_matchresult(season, day, rundle, session=get_session()):
    """
    Extract match day results

    Input:
        season -- season number
        day -- match day number in range 1 to 25
        rundle -- name of rundle (R_Pacific_Div_2, for example)

    Returns:
        A list of match results.  Each entry consists of a dictionary
        whose values are:
            players -- list of players (2 in a match)
            score -- list of corresponding match scores (strings)
    """
    page = '&'.join([str(season), str(day), rundle])
    this_url = MATCH_DATA % page
    return get_page_data(this_url, GetMatchResult(), session=session)
def ll_oneday_players(oneday, session=get_session()):
    """
    Extract a list of players from the oneday passed in
    """
    dval = parse_oneday_get_date(oneday, session=session)
    indx = 0
    for boundary in DATE_BOUNDARIES:
        if dval < boundary:
            break
        indx += 1
    if indx == ERROR_BOUNDARY:
        return []
    if indx == CSV_BOUNDARY:
        return get_csv_oneday_players(oneday, session=session)
    ostr = ONEDAYS + FILE_PATTERNS[indx] % oneday
    odata = get_page_data(ostr, GetOldOnedayData(indx), session=session)
    retval = []
    for entry in odata:
        if entry == 'LearnedLeague':
            continue
        retval.append(entry[0])
    return list(set(retval))