Module blaseball_mike.chronicler.v2
Chronicler V2 Endpoints
Entity Types
- player
 - team
 - stream
 - game
 - idols
 - tributes
 - temporal
 - tiebreakers
 - sim
 - globalevents
 - offseasonsetup
 - standings
 - season
 - league
 - subleague
 - division
 - gamestatsheet
 - teamstatsheet
 - playerstatsheet
 - seasonstatsheet
 - bossfight
 - offseasonrecap
 - bonusresult
 - decreeresult
 - eventresult
 - playoffs
 - playoffround
 - playoffmatchup
 - tournament
 - stadium
 - renovationprogress
 - teamelectionstats
 - item
 - communitychestprogress
 - giftprogress
 - shopsetup
 
Expand source code
"""
Chronicler V2 Endpoints
.. include:: ../../docs/chron_types.md
"""
from .chron_helpers import prepare_id, paged_get
from datetime import datetime
from blaseball_mike.session import session, TIMESTAMP_FORMAT
BASE_URL_V2 = 'https://api.sibr.dev/chronicler/v2'
def get_entities(type_, id_=None, at=None, count=None, page_size=1000, cache_time=5):
    """
    Chronicler V2 Entities endpoint
    Args:
        type_: type of entity to filter by (player, team, etc)
        id_: id or list of ids to filter type by
        at: return entities at this timestamp (ISO string or python `datetime`)
        count: number of entries to return.
        page_size: number of elements to get per-page
        cache_time: response cache lifetime in seconds, or `None` for infinite cache
    Returns:
        generator of all entities of a certain type at one point in time
    """
    if isinstance(at, datetime):
        at = at.strftime(TIMESTAMP_FORMAT)
    params = {"type": type_}
    if id_:
        params["id"] = prepare_id(id_)
    if at:
        params["at"] = at
    if count:
        params["count"] = count
    s = session(cache_time)
    if page_size:
        if page_size < 1 or page_size > 1000:
            raise ValueError("page_size must be between 1 and 1000")
        params["count"] = page_size
    s = session(cache_time)
    return paged_get(f'{BASE_URL_V2}/entities', params=params, session=s, total_count=count, page_size=page_size, lazy=True)
def get_versions(type_, id_=None, before=None, after=None, order=None, count=None, page_size=1000, cache_time=5):
    """
    Chronicler V2 Versions endpoint
    Args:
        type_: type of entity to filter by (player, team, etc)
        id_: id or list of ids to filter type by
        before: return elements before this string or datetime timestamp (ISO string or python `datetime`).
        after: return elements after this string or datetime timestamp (ISO string or python `datetime`).
        order: sort in ascending ('asc') or descending ('desc') order.
        count: number of entries to return.
        page_size: number of elements to get per-page
        cache_time: response cache lifetime in seconds, or `None` for infinite cache
    Returns:
         generator of changes to entities over time
    """
    if isinstance(before, datetime):
        before = before.strftime(TIMESTAMP_FORMAT)
    if isinstance(after, datetime):
        after = after.strftime(TIMESTAMP_FORMAT)
    params = {"type": type_}
    if id_:
        params["id"] = prepare_id(id_)
    if before:
        params["before"] = before
    if after:
        params["after"] = after
    if order:
        if order.lower() not in ('asc', 'desc'):
            raise ValueError("Order must be 'asc' or 'desc'")
        params["order"] = order
    if page_size:
        if page_size < 1 or page_size > 1000:
            raise ValueError("page_size must be between 1 and 1000")
        params["count"] = page_size
    s = session(cache_time)
    return paged_get(f'{BASE_URL_V2}/versions', params=params, session=s, total_count=count, page_size=page_size, lazy=True)
Functions
def get_entities(type_, id_=None, at=None, count=None, page_size=1000, cache_time=5)- 
Chronicler V2 Entities endpoint
Args
type_- type of entity to filter by (player, team, etc)
 id_- id or list of ids to filter type by
 at- return entities at this timestamp (ISO string or python 
datetime) count- number of entries to return.
 page_size- number of elements to get per-page
 cache_time- response cache lifetime in seconds, or 
Nonefor infinite cache 
Returns
generator of all entities of a certain type at one point in time
Expand source code
def get_entities(type_, id_=None, at=None, count=None, page_size=1000, cache_time=5): """ Chronicler V2 Entities endpoint Args: type_: type of entity to filter by (player, team, etc) id_: id or list of ids to filter type by at: return entities at this timestamp (ISO string or python `datetime`) count: number of entries to return. page_size: number of elements to get per-page cache_time: response cache lifetime in seconds, or `None` for infinite cache Returns: generator of all entities of a certain type at one point in time """ if isinstance(at, datetime): at = at.strftime(TIMESTAMP_FORMAT) params = {"type": type_} if id_: params["id"] = prepare_id(id_) if at: params["at"] = at if count: params["count"] = count s = session(cache_time) if page_size: if page_size < 1 or page_size > 1000: raise ValueError("page_size must be between 1 and 1000") params["count"] = page_size s = session(cache_time) return paged_get(f'{BASE_URL_V2}/entities', params=params, session=s, total_count=count, page_size=page_size, lazy=True) def get_versions(type_, id_=None, before=None, after=None, order=None, count=None, page_size=1000, cache_time=5)- 
Chronicler V2 Versions endpoint
Args
type_- type of entity to filter by (player, team, etc)
 id_- id or list of ids to filter type by
 before- return elements before this string or datetime timestamp (ISO string or python 
datetime). after- return elements after this string or datetime timestamp (ISO string or python 
datetime). order- sort in ascending ('asc') or descending ('desc') order.
 count- number of entries to return.
 page_size- number of elements to get per-page
 cache_time- response cache lifetime in seconds, or 
Nonefor infinite cache 
Returns
generator of changes to entities over time
Expand source code
def get_versions(type_, id_=None, before=None, after=None, order=None, count=None, page_size=1000, cache_time=5): """ Chronicler V2 Versions endpoint Args: type_: type of entity to filter by (player, team, etc) id_: id or list of ids to filter type by before: return elements before this string or datetime timestamp (ISO string or python `datetime`). after: return elements after this string or datetime timestamp (ISO string or python `datetime`). order: sort in ascending ('asc') or descending ('desc') order. count: number of entries to return. page_size: number of elements to get per-page cache_time: response cache lifetime in seconds, or `None` for infinite cache Returns: generator of changes to entities over time """ if isinstance(before, datetime): before = before.strftime(TIMESTAMP_FORMAT) if isinstance(after, datetime): after = after.strftime(TIMESTAMP_FORMAT) params = {"type": type_} if id_: params["id"] = prepare_id(id_) if before: params["before"] = before if after: params["after"] = after if order: if order.lower() not in ('asc', 'desc'): raise ValueError("Order must be 'asc' or 'desc'") params["order"] = order if page_size: if page_size < 1 or page_size > 1000: raise ValueError("page_size must be between 1 and 1000") params["count"] = page_size s = session(cache_time) return paged_get(f'{BASE_URL_V2}/versions', params=params, session=s, total_count=count, page_size=page_size, lazy=True)