예제 #1
0
 def __init__(self,
              form: ImmutableMultiDict,
              person_id: int = None,
              mtgo_username: str = None) -> None:
     super().__init__(form)
     if person_id is not None:
         ps = person.load_person(person_id)
         self.recent_decks: List[Dict[str, Any]] = []
         for d in sorted(ps.decks,
                         key=lambda deck: deck['created_date'],
                         reverse=True)[0:10]:
             recent_deck = {'name': d['name'], 'main': [], 'sb': []}
             for c in d.maindeck:
                 recent_deck['main'].append('{n} {c}'.format(n=c['n'],
                                                             c=c['name']))
             for c in d.sideboard:
                 recent_deck['sb'].append('{n} {c}'.format(n=c['n'],
                                                           c=c['name']))
             self.recent_decks.append({
                 'name': d['name'],
                 'list': json.dumps(recent_deck)
             })
     if mtgo_username is not None:
         self.mtgo_username = mtgo_username
     self.deck = None
예제 #2
0
def person_api(person):
    try:
        p = ps.load_person(person)
        p.decks_url = url_for('person_decks_api', person=person)
        p.head_to_head = url_for('person_h2h_api', person=person)
        return return_json(p)
    except DoesNotExistException:
        return return_json(generate_error('NOTFOUND', 'Person does not exist'))
 def link_discord(self):
     p = deck.get_or_insert_person_id(self.form['mtgo_username'], None,
                                      None)
     p = person.load_person(p)
     if p.discord_id is None:
         sql = 'UPDATE person SET discord_id = %s WHERE id = %s'
         db().execute(sql, [auth.discord_id(), p.id])
         self.person = p
     else:
         self.form.errors.mtgo_username = '******'.format(
             mtgo_username=self.form['mtgo_username'])
예제 #4
0
 def __init__(self, form, person_id=None, mtgo_username=None):
     super().__init__(form)
     if person_id is not None:
         ps = person.load_person(person_id)
         self.recent_decks = []
         for d in sorted(ps.decks, key=lambda deck: deck["created_date"], reverse=True)[0:10]:
             recent_deck = {"name": d["name"], "main": [], "sb":[]}
             for c in d.maindeck:
                 recent_deck["main"].append("{n} {c}".format(n=c["n"], c=c["name"]))
             for c in d.sideboard:
                 recent_deck["sb"].append("{n} {c}".format(n=c["n"], c=c["name"]))
             self.recent_decks.append({"name":d["name"], "list":json.dumps(recent_deck)})
     if mtgo_username is not None:
         self.mtgo_username = mtgo_username
예제 #5
0
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()
예제 #6
0
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()
예제 #7
0
def person(person_id):
    p = ps.load_person(person_id)
    view = Person(p)
    return view.page()
예제 #8
0
def person_h2h_api(person):
    p = ps.load_person(person)
    return return_json(p.head_to_head)
예제 #9
0
def person_decks_api(person):
    p = ps.load_person(person)
    return return_json(p.decks)
예제 #10
0
def person_api(person):
    p = ps.load_person(person)
    p.decks = url_for('person_decks_api', person=person)
    return return_json(p)