def archetypes(deck_type: Optional[str] = None) -> str: tournament_only = validate_deck_type( deck_type, [DeckType.ALL, DeckType.TOURNAMENT]) == DeckType.TOURNAMENT season_id = get_season_id() deckless_archetypes = archs.load_archetypes_deckless( season_id=season_id, tournament_only=tournament_only) all_matchups = archs.load_matchups(season_id=season_id, tournament_only=tournament_only) view = Archetypes(deckless_archetypes, all_matchups, tournament_only=tournament_only) return view.page()
def archetype_tournament(archetype_id: str) -> str: season_id = get_season_id() a = archs.load_archetype(archetype_id.replace('+', ' '), season_id=season_id) deckless_archetypes = archs.load_archetypes_deckless_for( a.id, season_id=season_id) archetype_matchups = archs.load_matchups(a.id, season_id=season_id) view = Archetype(a, deckless_archetypes, archetype_matchups, season_id, tournament_only=True) return view.page()
def archetype(archetype_id: str, deck_type: Optional[str] = None) -> str: tournament_only = validate_deck_type( deck_type, [DeckType.ALL, DeckType.TOURNAMENT]) == DeckType.TOURNAMENT season_id = get_season_id() a = archs.load_archetype(archetype_id.replace('+', ' '), season_id=season_id, tournament_only=tournament_only) deckless_archetypes = archs.load_archetypes_deckless_for( a.id, season_id=season_id, tournament_only=tournament_only) archetype_matchups = archs.load_matchups(archetype_id=a.id, season_id=season_id, tournament_only=tournament_only) view = Archetype(a, deckless_archetypes, archetype_matchups, tournament_only=tournament_only, season_id=season_id) return view.page()
def person(person_id: str) -> str: p = ps.load_person_by_id_or_mtgo_username(person_id, season_id=get_season_id()) person_cards = cs.load_cards(person_id=p.id, season_id=get_season_id()) person_archetypes = archs.load_archetypes_deckless( person_id=p.id, season_id=get_season_id()) all_archetypes = archs.load_archetypes_deckless(season_id=get_season_id()) trailblazer_cards = cs.trailblazer_cards(p.id) unique_cards = cs.unique_cards_played(p.id) your_cards = {'unique': unique_cards, 'trailblazer': trailblazer_cards} person_matchups = archs.load_matchups(person_id=p.id, season_id=get_season_id()) view = Person(p, person_cards, person_archetypes, all_archetypes, person_matchups, your_cards, get_season_id()) return view.page()
def rotation_changes_files(changes_type: str) -> Response: changes = oracle.pd_rotation_changes(get_season_id())[0 if changes_type == 'new' else 1] s = '\n'.join('4 {name}'.format(name=c.name) for c in changes) return make_response(s, 200, {'Content-type': 'text/plain; charset=utf-8', 'Content-Disposition': f'attachment; filename={changes_type}.txt'})
def season_name(self) -> str: return rotation.season_name(get_season_id())
def show_legal_seasons(self) -> bool: return get_season_id() == 0
def person(person_id: str) -> str: p = ps.load_person_by_id_or_mtgo_username(person_id, season_id=get_season_id()) person_cards = cs.load_cards(person_id=p.id, season_id=get_season_id()) view = Person(p, person_cards, get_season_id()) return view.page()
def rotation_changes() -> str: view = RotationChanges(*oracle.pd_rotation_changes(get_season_id()), cs.playability()) return view.page()
def home() -> str: view = Home(ns.all_news(max_items=10), ds.latest_decks(), cs.load_cards(season_id=get_season_id()), ms.stats()) return view.page()
def season(deck_type=None): league_only = deck_type == 'league' view = Season(ds.load_season(get_season_id(), league_only), league_only) return view.page()
def home(): view = Home(ns.load_news(max_items=10), ds.load_decks(limit='LIMIT 50'), cs.played_cards(season_id=get_season_id())) return view.page()
def archetype(archetype_id): season_id = get_season_id() a = archs.load_archetype(archetype_id.replace('+', ' '), season_id=season_id) view = Archetype(a, archs.load_archetypes_deckless_for(a.id, season_id=season_id), archs.load_matchups(a.id, season_id=season_id), season_id) return view.page()
def archetypes(): view = Archetypes(archs.load_archetypes_deckless(season_id=get_season_id())) return view.page()
def archetypes() -> str: season_id = get_season_id() deckless_archetypes = archs.load_archetypes_deckless(season_id=season_id) all_matchups = archs.load_all_matchups(season_id=season_id) view = Archetypes(deckless_archetypes, all_matchups) return view.page()
def person(person_id): p = ps.load_person(person_id, season_id=get_season_id()) played_cards = cs.played_cards_by_person(p.id, get_season_id()) only_played_cards = cs.only_played_by(p.id, get_season_id()) view = Person(p, played_cards, only_played_cards) return view.page()
def archetypes_tournament() -> str: season_id = get_season_id() deckless_archetypes = archs.load_archetypes_deckless(season_id=season_id) all_matchups = archs.load_all_matchups(season_id=season_id) view = Archetypes(deckless_archetypes, all_matchups, tournament_only=True) return view.page()
def cards(): view = Cards(cs.played_cards(season_id=get_season_id())) return view.page()
def tournament_leaderboards() -> str: leaderboards = comp.leaderboards(season_id=get_season_id()) view = TournamentLeaderboards(leaderboards) return view.page()
def card(name): try: c = cs.load_card(oracle.valid_name(urllib.parse.unquote_plus(name)), season_id=get_season_id()) view = Card(c) return view.page() except InvalidDataException as e: raise DoesNotExistException(e)
def decks() -> str: view = Decks(ds.load_decks(limit='LIMIT 500', season_id=get_season_id())) return view.page()
def person(person_id): p = ps.load_person(person_id, season_id=get_season_id()) person_cards = cs.load_cards(person_id=p.id, season_id=get_season_id()) only_played_cards = [] view = Person(p, person_cards, only_played_cards) return view.page()
def people() -> str: view = People(ps.load_people(season_id=get_season_id())) return view.page()
def cards() -> str: view = Cards(cs.load_cards(season_id=get_season_id())) return view.page()
def __init__(self, decks) -> None: super().__init__() self.decks = decks self.season_url = url_for('seasons.season', season_id=get_season_id()) self.show_seasons = True
def cards_tournament() -> str: view = Cards(cs.load_cards(season_id=get_season_id()), tournament_only=True) return view.page()
def season_id(self) -> int: return get_season_id()
def competitions() -> str: view = Competitions(comp.load_competitions(season_id=get_season_id())) return view.page()
def season_code_lower(self) -> str: return rotation.season_code(get_season_id()).lower()
def season_code_lower(self) -> str: return seasons.season_code(get_season_id()).lower()