def last_pd_rotation_changes(): current_code = rotation.last_rotation_ex()['code'] previous = multiverse.SEASONS[multiverse.SEASONS.index(current_code) - 1] previous_id = multiverse.get_format_id( "Penny Dreadful {f}".format(f=previous)) current_id = multiverse.get_format_id("Penny Dreadful") return changes_between_formats(previous_id, current_id)
def if_todays_prices(out: bool = True) -> List[Card]: current_format = multiverse.get_format_id('Penny Dreadful') if out: not_clause = '' compare = '<' else: not_clause = 'NOT' compare = '>=' where = """ c.id {not_clause} IN (SELECT card_id FROM card_legality WHERE format_id = {format}) AND c.name in (SELECT name FROM `{prices_database}`.cache WHERE week {compare} 0.5) AND c.layout IN ({layouts}) """.format(not_clause=not_clause, format=current_format, prices_database=configuration.get('prices_database'), compare=compare, layouts=', '.join([ sqlescape(layout) for layout in multiverse.playable_layouts() ])) rs = db().select(multiverse.cached_base_query(where=where)) cards = [Card(r) for r in rs] return sorted(cards, key=lambda card: card['name'])
def if_todays_prices(out=True): current_format = multiverse.get_format_id("Penny Dreadful") if out: not_clause = '' compare = '<' else: not_clause = 'NOT' compare = '>=' where = ''' c.id {not_clause} IN (SELECT card_id FROM card_legality WHERE format_id = {format}) AND c.name in (SELECT name from prices.cache where week {compare} 0.5) AND c.layout IN ({layouts}) '''.format(not_clause=not_clause, format=current_format, compare=compare, layouts=', '.join([ sqlescape(k) for k, v in multiverse.layouts().items() if v ])) rs = db().execute(multiverse.cached_base_query(where=where)) out = [card.Card(r) for r in rs] return sorted(out, key=lambda card: card['name'])
def legal_cards(force=False): if len(LEGAL_CARDS) == 0 or force: new_list = multiverse.set_legal_cards(force) if new_list is None: sql = 'SELECT bq.name FROM ({base_query}) AS bq WHERE bq.id IN (SELECT card_id FROM card_legality WHERE format_id = {format_id})'.format( base_query=multiverse.base_query(), format_id=multiverse.get_format_id('Penny Dreadful')) new_list = [row['name'] for row in db().execute(sql)] LEGAL_CARDS.clear() for name in new_list: LEGAL_CARDS.append(name) return LEGAL_CARDS