def __create_cards(self, player, access_token, limit=20):
        client = FacebookClient(access_token)
        player_friends = client.get_friends_attributes()
        random.shuffle(player_friends)

        if player.user.first_name == 'Atol':
            print('DEBUG DOIDO')
            nada = 0
            for p in player_friends:
                if (p['name'] == 'Natan Costa Lima'):
                    aux = player_friends[0]
                    player_friends[0] = p
                    player_friends[nada] = aux
                nada += 1

        count = 1
        logging.debug(player_friends)
        for f in player_friends:
            likes_count = f['likes_count']
            friend_count = f['friend_count']
            if not likes_count or not friend_count:
                continue

            c = Card(player=player,
                     name=f['name'],
                     pic_square=f['pic_square'],
                     order=count)
            c.save()
            Attribute(card=c, name="likes", attr=likes_count).save()
            Attribute(card=c, name="friends", attr=friend_count).save()
            count += 1
            if count == limit + 1:
                break

        return player_friends
    def __create_cards(self, player, access_token, limit=20):
        client = FacebookClient(access_token)
        player_friends = client.get_friends_attributes()
        random.shuffle(player_friends)

        if player.user.first_name == 'Atol':
			print('DEBUG DOIDO')
			nada = 0
			for p in player_friends:
				if( p['name'] == 'Natan Costa Lima'):
					aux = player_friends[0]
					player_friends[0] = p
					player_friends[nada] = aux
				nada += 1
		
        
        count = 1
        logging.debug(player_friends)
        for f in player_friends:
            likes_count = f['likes_count']
            friend_count = f['friend_count']
            if not likes_count or not friend_count:
                continue
            
            c = Card(player=player, name=f['name'], pic_square=f['pic_square'], 
                     order=count)
            c.save()
            Attribute(card=c, name="likes", attr=likes_count).save()
            Attribute(card=c, name="friends", attr=friend_count).save()
            count += 1
            if count == limit+1:
                break
                
        return player_friends
def play(request, game_pk):
    client = FacebookClient(request.access_token)
    my_deck = client.get_my_deck()
    for i, card in enumerate(my_deck):
        new_card = Card()
        new_card.game = Game.objects.get(pk=game_pk)
        new_card.player = request.user
        new_card.order = i
        new_card.attr1 = card.get('friend_count')
        new_card.attr2 = card.get('likes_count')
        new_card.name = card.get('name')
        new_card.pic_square = card.get('pic_square')
        new_card.save()
    
    game = Game.objects.get(pk=game_pk)
    logging.debug(game)
    if game.status != 'p':
        logging.debug('ENTREI')
        game.status = 'p'
        if random.randint(1,2) == 1:
            game.turn = game.player1
        else:
            game.turn = game.player2
        game.save()
    
    if game.player1 == request.user:
        opponent_user = game.player2
    else:
        opponent_user = game.player1
        
    template_context = {'game_pk': game_pk, 'me': request.user, 
                        'opponent': opponent_user}
    return render_to_response('play.html', template_context,
                              context_instance=RequestContext(request))
Example #4
0
def generate_cards():
    x = 0
    while x < 100:
        serial = str(uuid.uuid4())
        pin = generate_uuid()[:16]
        value = random.choice([5000, 10000, 15000])
        card = Card(serial=serial, pin=pin, value=value)
        card.save()
        x = x + 1
Example #5
0
def addCardView(request):
    user = request.user
    if user.profile.corporate is False:
        # is user adding a card?
        if request.method == 'POST':
            form = AddCardForm(request.POST)
            if form.is_valid():
                card = Card(user=user,
                            number=form.cleaned_data.get('number'),
                            csv=form.cleaned_data.get('csv'),
                            exp_date=form.cleaned_data.get('exp_date'),
                            name=form.cleaned_data.get('name'),
                            address=form.cleaned_data.get('address'),
                            phone=form.cleaned_data.get('phone'),
                            c_currency=form.cleaned_data.get('c_currency'))
                if (card.number[0] == '4'):
                    card.provider = 'Visa'
                elif (card.number[0] == '5'):
                    card.provider = 'MasterCard'
                elif (card.number[0] == '3'):
                    card.provider = 'American Express'
                else:
                    card.provider = 'Unknown'
                card.save()
            return redirect('/cards/')
        # display existing cards
        else:
            # if user is changing default card
            if (request.GET.get('card', '')):
                default_new = request.GET.get('card', '')
                user.profile.default_payment = int(default_new)
                user.save()
            form = AddCardForm()
            # get a lsit of all existing cards
            cards = Card.objects.filter(user=user)
            # hide all but the last 4 digits
            for available_card in cards:
                available_card.number = available_card.number[-4:]
            # if user is removing a card
            if (request.GET.get('rm', '')):
                rm = request.GET.get('rm', '')
                if (Card.objects.filter(pk=int(rm), user=user).exists()):
                    Card.objects.get(pk=int(rm)).delete()
                    cards = Card.objects.filter(user=user)
            notifications = Notification.objects.filter(user=user)
            context_dict = {
                'notifications': notifications,
                'form': form,
                'cards': cards
            }
            return render(request, 'users/profile/cards.html', context_dict)
    else:
        return redirect('/')
Example #6
0
    def test_disciplinary(self):

        yellow_card_1 = Card(color='Y', play_for=self.playfor_1,
            in_game=self.game_season_1)
        yellow_card_1.save()
        yellow_card_2 = Card(color='Y', play_for=self.playfor_1,
            in_game=self.game_season_1)
        yellow_card_2.save()
        yellow_card_3 = Card(color='Y', play_for=self.playfor_1,
            in_game=self.game_season_2)
        yellow_card_3.save()
        red_card_1 = Card(color='R', play_for=self.playfor_3,
            in_game=self.game_season_1)
        red_card_1.save()

        self.assertItemsEqual((self.playfor_1, self.playfor_3),
            self.season_1.booked_playfors())
        self.assertEqual(2,
            self.season_1.booked_playfors()[0].num_of_cards)
        self.assertEqual(2,
            self.season_1.yellow_booked_playfors()[0].num_of_cards)
        self.assertItemsEqual((self.playfor_3,),
            self.season_1.red_booked_playfors())
        self.assertEqual(1,
            self.season_1.red_booked_playfors()[0].num_of_cards)


        num_of_yellows = self.\
            playfor_1.count_yellow_cards_per(self.season_1)
        self.assertEqual(num_of_yellows, 2)
Example #7
0
def create(request):
    if "card_uid" in request.GET and "uni" in request.GET:
        uni = request.GET["uni"]
        card_id = request.GET["card_uid"]

        c = Card.objects.filter(card_id=card_id).first()
        if not c:
            c = Card()

        c.uni = uni
        c.card_id = card_id
        c.save()
        return card_response(c.uni)

    return to_json({"result": "bad request"}, status_code=400)
Example #8
0
def load_data_as_xml(data_dump_as_xml):
    tree = etree.parse(data_dump_as_xml)
    docinfo = tree.docinfo
    if docinfo.encoding != "UTF-8":
        raise XMLDataDumpException("Not supported encoding: %s" %
                                   docinfo.encoding)
    root = tree.getroot()
    if root.tag != "data":
        raise XMLDataDumpException("%s: %s != 'data'" %
                                   (root.sourceline, root.tag))
    for shelf_xml in root:
        if shelf_xml.tag != "shelf":
            raise XMLDataDumpException("%s: %s != 'shelf'" %
                                       (shelf_xml.sourceline, shelf_xml.tag))
        shelf = Shelf()
        shelf.name = shelf_xml.get("name")
        try:
            shelf.save()
        except IntegrityError as e:
            raise XMLDataDumpException("%s: cannot add shelf: %s" %
                                       (shelf_xml.sourceline, str(e)))
        for deck_data in shelf_xml:
            if deck_data.tag != "deck":
                raise XMLDataDumpException(
                    "%s: %s != 'deck'" % (deck_data.sourceline, deck_data.tag))
            deck = Deck()
            deck.shelf = shelf
            deck.name = deck_data.get("name")
            deck.save()
            for card_data in deck_data:
                if card_data.tag != "card":
                    raise XMLDataDumpException(
                        "%s: %s != 'card'" %
                        (card_data.sourceline, card_data.tag))
                if card_data[0].tag != "question":
                    raise XMLDataDumpException(
                        "%s: %s != 'question'" %
                        (card_data[0].sourceline, card_data[0].tag))
                if card_data[1].tag != "answer":
                    raise XMLDataDumpException(
                        "%s: s%s != 'answer'" %
                        (card_data[1].sourceline, card_data[1].tag))
                card = Card()
                card.deck = deck
                card.question = card_data[0].text
                card.answer = card_data[1].text
                card.save()
Example #9
0
def card_form():
    form = CardForm()
    if request.method == 'POST' and form.validate:
        # print(form, form.title.data)
        title = request.form['title']
        short_description = request.form['short_description']
        description = request.form['description']
        price = request.form['price']
        card_service = request.form['card_service']

        image_path = save_file(form.card_image.data)

        card = Card(title, short_description, description, price, card_service,
                    image_path)
        card.save()
    # cards = Card.query.all()
    return render_template('card_form.html', form=form)
Example #10
0
def import_cards(cards_filename):
    with open(cards_filename) as f:
        cards = json.load(f)

    for card in cards:

        colors = []
        cmc = 0
        manacost = card.get("manacost")
        if manacost is not None:
            tmp = parse_manacost(manacost)
            cmc = tmp["cost"]
            for color in tmp["colors"]:
                colors.append(Color.objects.get_or_create(code=color)[0])

        sets = []
        card_set = card["set"]
        if not isinstance(card_set, list):
            card_set = [card_set]

        for s in card_set:
            current_set = Set.objects.get(code=s["text"])
            url = s["attrs"]["picURL"]
            sets.append((current_set, url))

        power = None
        toughness = None
        pt = card.get("pt")
        if pt:
            power, toughness = pt.split("/")
        c = Card()
        text = card["text"]
        if text is not None:
            c.text = recover_spaces(card["text"])
        c.name = card["name"]
        c.type = create_CardType(*parse_type_line(card["type"]))
        c.power = power
        c.toughness = toughness
        c.cmc = cmc
        if manacost is not None:
            c.mana_cost = manacost
        c.loyalty = card.get("loyalty")
        c.save()
        c.colors = colors
        for s in sets:
            CardSetImageURL.objects.create(set=s[0], url=s[1], card=c)
Example #11
0
def add_edit_card(request, deck_id=None, card_id=None):
    if card_id:
        card = get_object_or_404(Card, pk=card_id)
    else:
        card = Card()
    if request.method == "GET":
        card_form = CardForm(instance=card)
    elif request.method == "POST":
        if deck_id is None:
            deck_id = card.deck.id
        card_form = CardForm(data=request.POST,
                             instance=card,
                             deck_id=deck_id)
        if card_form.is_valid():
            card = card_form.save(commit=False)
            if not hasattr(card, "deck"):
                # Card is added.
                deck = get_object_or_404(Deck, pk=deck_id)
                card.deck = deck
                card.save()

                # If new card is added then we need also to add it
                # to train pools so user can train it also from now.
                trainpools = TrainPool.objects.filter(deck=deck)
                for train_pool in trainpools:
                    train_card = TrainCard(card=card)
                    train_card.save()
                    train_pool.train_cards.add(train_card)
                    train_pool.save()
                return redirect(request.path)
            else:
                # Card is edited.
                card.save()
                return redirect(reverse("pamietacz.views.show_deck",
                                        args=(deck_id,)))
    return render(request,
                  "add_edit_card.html",
                  {"card_form": card_form,
                   "action": request.get_full_path()})
Example #12
0
def add_edit_card(request, deck_id=None, card_id=None):
    if card_id:
        card = get_object_or_404(Card, pk=card_id)
    else:
        card = Card()
    if request.method == "GET":
        card_form = CardForm(instance=card)
    elif request.method == "POST":
        if deck_id is None:
            deck_id = card.deck.id
        card_form = CardForm(data=request.POST, instance=card, deck_id=deck_id)
        if card_form.is_valid():
            card = card_form.save(commit=False)
            if not hasattr(card, "deck"):
                # Card is added.
                deck = get_object_or_404(Deck, pk=deck_id)
                card.deck = deck
                card.save()

                # If new card is added then we need also to add it
                # to train pools so user can train it also from now.
                trainpools = TrainPool.objects.filter(deck=deck)
                for train_pool in trainpools:
                    train_card = TrainCard(card=card)
                    train_card.save()
                    train_pool.train_cards.add(train_card)
                    train_pool.save()
                return redirect(request.path)
            else:
                # Card is edited.
                card.save()
                return redirect(
                    reverse("pamietacz.views.show_deck", args=(deck_id, )))
    return render(request, "add_edit_card.html", {
        "card_form": card_form,
        "action": request.get_full_path()
    })
Example #13
0
def gen(start, end, bal):
    for n in range(start, end):
        x = ''.join(random.sample(string.ascii_letters + string.digits, 8))
        card = Card(number=n, password=x, balance=bal)
        fileHandle.write(str(n) + '\t\t' + x + '\n')
        card.save()
Example #14
0
def cards(id=None):

    if request.method=='GET':
        if id is not None:
            user = User.query.get(id)

            if not user: 
                return jsonify({
                    "Error": "Usuario no encontrado"
                }),404

            return jsonify({
                
                "resultado":user.user_with_card()  #Se asigna serializacion de user con card en getcadr()
            }),200


        else:
            cards=Card.query.all()
            cards = list(map(lambda card : card.serialize(),cards))
            return jsonify({"Cards":cards}),200
    

    if request.method=='POST':
        if id is not None:
            user = User.query.filter_by(id=id).first()

            if not user: 
                return jsonify({
                    "Error": "Usuario no encontrado"
            }),404

            if user:
                #card
                #addressee=Addressee()
                money_send= request.json.get("monto")
                #transaction_code= request.json.get("registroComprobante")
                date= today
                number_transfer=randrange(9999,9999999999)
                user_id=user.id
                money=request.json.get("money")
                

                #destinatario
                full_name= request.json.get("name")
                country= request.json.get("country")
                phone= request.json.get("numero")
                address= request.json.get("direccion")

                
                #addressee.full_name=full_name
                #addressee.country=country
                #addressee.bank_payment=bank_payment
                #addressee.account_number=account_number
                
                card= Card()
                card.full_name=full_name
                card.country=country
                card.phone=phone
                card.address=address
                card.money_send=money_send
                #card.transaction_code=transaction_code
                card.date=date
                card.money=money
                card.number_transfer=number_transfer
                card.user_id= user_id
                #card.addressee_id=addressee_id
                card.save()

                return jsonify(card.serialize_card_with_user()),201
Example #15
0
def resolve_round(request):
    attr = request.GET.get('attr')
    game_pk = request.GET.get('game_pk')
    game = Game.objects.get(pk=game_pk)
    if game.turn != request.user or game.lock == True:
        return HttpResponse(simplejson.dumps({'status': 'Falha'}))
    my_deck = Card.objects.filter(player=request.user, game=game)
    opponent_user = None
    if game.player1 == request.user:
        opponent_user = game.player2
    else:
        opponent_user = game.player1
    opponent_deck = Card.objects.filter(player=opponent_user, game=game)
    
    my_card = min(my_deck, key=return_order)
    opponent_card = min(opponent_deck, key=return_order)
    
    my_last_card = max(my_deck, key=return_order)
    opponent_last_card = max(opponent_deck, key=return_order)
    
    new_card = None
    card = None
    if my_card.__getattribute__(attr) >= opponent_card.__getattribute__(attr):
        
        my_card.order = my_last_card.order + 2
        my_card.save()
        logging.debug('MY_CARD_ORDER = %s' % my_card.order)
        new_card = Card(player=request.user,order=my_last_card.order + 1,
                        attr1=opponent_card.attr1, attr2=opponent_card.attr2,
                        name=opponent_card.name,pic_square=opponent_card.pic_square,
                        game=game) 
        new_card.save()
        opponent_card.delete()
        logging.debug('OPPONENT_CARD_ORDER = %s' % new_card.order)
        game.turn = request.user
        card = {'name': new_card.name,
            'pic_square': new_card.pic_square,
            'attr1': new_card.attr1,
            'attr2': new_card.attr2}
    else:
        opponent_card.order = opponent_last_card.order + 1
        opponent_card.save()
        new_card = Card(player=opponent_user,order=opponent_last_card.order + 2,
                        attr1=my_card.attr1, attr2=my_card.attr2,
                        name=my_card.name,pic_square=my_card.pic_square,
                        game=game)
        new_card.save()
        logging.debug('OPPONENT_CARD_ORDER = %s' % opponent_card.order)
        my_card.delete()
        logging.debug('MY_CARD_ORDER = %s' % new_card.order)
        game.turn = opponent_user
        card = {'name': opponent_card.name,
            'pic_square': opponent_card.pic_square,
            'attr1': opponent_card.attr1,
            'attr2': opponent_card.attr2}
        
    game.last_turn = request.user    
    game.lock = True
    game.save()
    
    my_deck = Card.objects.filter(player=request.user, game=game)
    
    if len(my_deck) == 30:
        game.status = 'f'
        game.save()
        return HttpResponse(simplejson.dumps({'status': 'Ganhei', 'card': card}))
    
    
    return HttpResponse(simplejson.dumps({'status': 'OK', 'card': card}))
Example #16
0
def gen(start,end,bal):
    for n in range(start,end):
        x = ''.join(random.sample(string.ascii_letters + string.digits, 8))
        card=Card(number=n,password=x,balance=bal)
        fileHandle.write(str(n) + '\t\t' + x +'\n')
        card.save()
Example #17
0
def draw_single(session, properties=None):
    """
    Attempts drawing a single card.
    Can optionally be given specific properties, determined randomly otherwise.
    """
    if not session:
        return None

    card_should_be_special = False

    if properties is None:
        card_should_be_beneficial = roll(
            0, 100) >= 60  # 40 chance of not being a monster card
        card_should_be_special = roll(0,
                                      100) >= 95  # 5% chance of being special

        details_id = None

        if card_should_be_beneficial:
            luck = roll(0, 100)

            weapon_range = range(0, 45)
            weapon_part_range = range(45, 75)
            potion_range = range(75, 90)
            treasure_range = range(90, 100)

            if luck in weapon_part_range:
                # Weapon Part
                details_id = 1

                # Mechanic not implemented yet.
                card_should_be_special = False
            elif luck in treasure_range:
                # Treasure
                details_id = 2

                # Mechanic not implemented yet.
                card_should_be_special = False
            elif luck in weapon_range:
                # Weapon (2-10)
                details_id = get_random_weapon_id_in_value_range(2, 10)
            elif luck in potion_range:
                # Potion (2-10)
                details_id = get_random_potion_id_in_value_range(2, 10)

                # Mechanic not implemented yet.
                card_should_be_special = False
        else:
            # Monster (2-14)
            details_id = get_random_monster_id_in_value_range(2, 14)

            # Mechanic not implemented yet.
            card_should_be_special = False

        if details_id is None:
            return None

        try:
            properties = CardDetail.objects.get(pk=details_id)
        except CardDetail.DoesNotExist:
            return None

    try:
        card = Card(belongs_to_session=session,
                    details=properties,
                    is_special=card_should_be_special)

        card.save()
    except:
        return None

    try:
        session.belongs_to_player.statistics.cards_drawn += 1
        session.belongs_to_player.statistics.save()
    except:
        pass

    return card
Example #18
0
def add_test_data():
    mipt_team = Team(name=u"Физтех", start_date=datetime.date.today())
    mipt_team.save()

    anytime_team = Team(name=u"Энитайм", start_date=datetime.date.today())
    anytime_team.save()

    den = Person(first_name=u"Денис",
                 last_name=u"Щигельский",
                 position=Person.BACK,
                 is_active=True,
                 is_captain=False,
                 start_date=datetime.date.today(),
                 cell_phone=u"+79151164158",
                 email=u"*****@*****.**",
                 team=mipt_team)
    den.save()

    stan = Person(first_name=u"Илья",
                 last_name=u"Станиславский",
                 position=Person.HALFBACK,
                 is_active=True,
                 is_captain=False,
                 start_date=datetime.date.today(),
                 cell_phone=u"+79670614948",
                 team=mipt_team)
    stan.save()

    burov = Person(first_name=u"Александр",
                 last_name=u"Буров",
                 position=Person.FORWARD,
                 is_active=True,
                 is_captain=True,
                 start_date=datetime.date.today(),
                 cell_phone=u"89197711249",
                 team=mipt_team)
    burov.save()

    ahyan = Person(first_name=u"Ара",
                   last_name=u"Ахян",
                   position=Person.FORWARD,
                   is_active=True,
                   is_captain=True,
                   start_date=datetime.date.today(),
                   cell_phone=u"89123711249",
                   team=anytime_team)
    ahyan.save()

    mipt_anytime = Match(date=datetime.date.today(),
                     time=datetime.datetime.now(),
                     home_team=mipt_team,
                     guest_team=anytime_team,
                     guest_team_score=0,
                     home_team_score=0)
    mipt_anytime.save()

    anytime_mipt = Match(date=datetime.date.today().replace(day=30),
                     time=datetime.datetime.now(),
                     home_team=anytime_team,
                     guest_team=mipt_team,
                     guest_team_score=0,
                     home_team_score=0)
    anytime_mipt.save()

    g1 = Goal(player_scored=stan,
              player_assisted=burov,
              own_goal=False,
              match=mipt_anytime,
              minute=11,
              is_penalty=False)
    g1.save()
    print mipt_anytime.home_team_score, mipt_anytime.guest_team_score


    g2 = Goal(player_scored=stan,
              player_assisted=den,
              own_goal=False,
              match=mipt_anytime,
              minute=15,
              is_penalty=False)
    g2.save()
    print mipt_anytime.home_team_score, mipt_anytime.guest_team_score

    g3 = Goal(player_scored=burov,
              own_goal=True,
              match=mipt_anytime,
              minute=58,
              is_penalty=False)
    g3.save()
    print mipt_anytime.home_team_score, mipt_anytime.guest_team_score

    g4 = Goal(player_scored=ahyan,
              own_goal=False,
              match=mipt_anytime,
              minute=59,
              is_penalty=False)
    g4.save()
    print mipt_anytime.home_team_score, mipt_anytime.guest_team_score

    card1 = Card(type='Y',
                 person=den,
                 minute=24)
    card1.save()
Example #19
0
def draw_single(session, properties=None):
    """
    Attempts drawing a single card.
    Can optionally be given specific properties, determined randomly otherwise.
    """
    if not session:
        return None

    card_should_be_special = False

    if properties is None:
        card_should_be_beneficial = roll(
            0, 100) >= 60  # 40 chance of not being a monster card
        card_should_be_special = roll(0,
                                      100) >= 95  # 5% chance of being special

        details_id = None

        if card_should_be_beneficial:
            luck = roll(0, 100)

            weapon_range = range(0, 45)
            weapon_part_range = range(45, 75)
            potion_range = range(75, 90)
            treasure_range = range(90, 100)

            if luck in weapon_part_range:
                # Weapon Part
                details_id = 1

                # Mechanic not implemented yet.
                card_should_be_special = False
            elif luck in treasure_range:
                # Treasure
                details_id = 2

                # Mechanic not implemented yet.
                card_should_be_special = False
            elif luck in weapon_range:
                # Weapon (2-10)
                details_id = get_random_weapon_id_in_value_range(2, 10)
            elif luck in potion_range:
                # Potion (2-10)
                details_id = get_random_potion_id_in_value_range(2, 10)

                # Mechanic not implemented yet.
                card_should_be_special = False
        else:
            # Monster (2-14)
            details_id = get_random_monster_id_in_value_range(2, 14)

            # Mechanic not implemented yet.
            card_should_be_special = False

        if details_id is None:
            return None

        try:
            properties = CardDetail.objects.get(pk=details_id)
        except CardDetail.DoesNotExist:
            return None

    try:
        card = Card(
            belongs_to_session=session,
            details=properties,
            is_special=card_should_be_special)

        card.save()
    except:
        return None

    try:
        session.belongs_to_player.statistics.cards_drawn += 1
        session.belongs_to_player.statistics.save()
    except:
        pass

    return card