def deck_list(provider, l): '''list command''' if l == "all": d = ListDecks(provider, pa.find_all_valid_decks(provider)) d.pack_decks_for_printing() print(d.table.table) if l == "subscribed": d = ListDecks(provider, pa.find_all_valid_decks(provider)) d.pack_decks_for_printing() print(d.table.table)
def list(self): '''find all valid decks and list them.''' decks = pa.find_all_valid_decks(provider, Settings.deck_version, Settings.production) print_deck_list(decks)
def subscribed_decks(): '''find subscribed-to decks''' decks = pa.find_all_valid_decks(provider, deck_version=Settings.deck_version) for i in decks: if provider.getaddressesbyaccount(i.asset_id): yield i
def find(self, key): ''' Find specific deck by key, with key being: <id>, <name>, <issuer>, <issue_mode>, <number_of_decimals> ''' decks = pa.find_all_valid_decks(provider, Settings.deck_version, Settings.production) print_deck_list( (d for d in decks if key in d.id or (key in d.__dict__.values())))
def search_decks(key: str) -> list: '''search decks by <key>''' decks = pa.find_all_valid_decks(provider, deck_version=Settings.deck_version, prod=Settings.production) decks = map(add_short_id, decks) return [ d for d in decks if key in d.asset_id or (key in d.__dict__.values()) ]
def init_decks(): n = 0 def message(n): sys.stdout.flush() sys.stdout.write('{} Decks Loaded\r'.format(n)) def add_deck(deck): if deck is not None: entry = db.session.query(Deck).filter(Deck.id == deck.id).first() subscribe = deck.id in subscribed if not entry: try: D = Deck(deck.id, deck.name, deck.issuer, deck.issue_mode, deck.number_of_decimals, subscribe) db.session.add(D) db.session.commit() except Exception as e: print(e) pass else: db.session.query(Deck).filter(Deck.id == deck.id).update( {"subscribed": subscribe}) db.session.commit() def add_cards(cards): if cards is not None: for cardset in cards: for card in cardset: sys.stdout.write(card.txid + '\r') sys.stdout.flush() card_id = card.txid + str(card.blockseq) + str( card.cardseq) entry = db.session.query(Card).filter( Card.id == card_id).first() if not entry: C = Card(card_id, card.txid, card.cardseq, card.receiver[0], card.sender, card.amount[0], card.type, card.blocknum, card.blockseq, card.deck_id) db.session.add(C) db.session.commit() sys.stdout.flush() if not autoload: decks = [pa.find_deck(node, txid, version)[0] for txid in subscribed] for deck in decks: if deck is not None: add_deck(deck) add_cards(pa.find_card_transfers(node, deck)) n += 1 message(n) else: decks = pa.find_all_valid_decks(node, 1, True) while True: try: deck = next(decks) add_deck(deck) if deck.id in subscribed: add_cards(pa.find_card_transfers(node, deck)) n += 1 message(n) except StopIteration: break
def list(): '''list decks''' decks = pa.find_all_valid_decks(provider=provider, deck_version=Settings.deck_version, prod=Settings.production) print_deck_list(decks)
import pypeerassets as pa from main import node, add_deck, add_cards, validate, init_p2thkeys from utils.state import init_state from sys import stdout from conf import subscribed init_p2thkeys() accounts = node.listaccounts() total = sum(1 for deck in pa.find_all_valid_decks(node, 1, 1)) def message(n): print('{} of {} Decks Loaded'.format(n + 1, total)) stdout.flush() for n, deck in enumerate(pa.find_all_valid_decks(node, 1, 1)): if not any(deck_id in subscribed for deck_id in ('*', deck.id)): continue else: add_deck(deck) message(n) if deck.id not in accounts: validate(deck) try: add_cards(deck) init_state(deck.id) except IndexError: continue