예제 #1
0
def fetchCharactersAndSave(request):
	k = request.POST['keyID']
	v = request.POST['vCode']
	n = request.POST['accountName']

	acct = None
	# dupe checking
	if len( Account.objects.all().filter(keyID=k) ) == 0:
		acct = Account(keyID=k, verificationCode=v, accountName=n)
		acct.save()
	else:
		acct = Account.objects.all().filter(keyID=k)[0]

	# call the EVE API to fetch the characters from this account
	accountData = EVEAPI.eveapi.AccountData()
	accountData.context = EVEAPI.eveapi.Context(_keyID= k, _verificationCode= v)
	
	# characters comeback in an unordered list of dictionaries
	# {characterID, characterName, corporationID, corporationName}
	characters = accountData.Characters()

	for character in characters:
		c = None
		if len( Character.objects.all().filter(characterID= character["characterID"])) == 0:
			c = Character(characterName= character["characterName"],
						  characterID= character["characterID"],
						  account = acct)
			c.save()	
	
	return HttpResponseRedirect(reverse('characters:index', args=None))
예제 #2
0
파일: samples.py 프로젝트: Sult/Buahto
def add_characters():
	some_characters = (
		#(useR_id, 'name', portrait_id, faction_id, town_id)
		(1,'Banaan', 2, 1, 1),
		(2,'Peer', 3, 2, 2),
		(2,'Appel', 5, 3, 3),
		(3,'Mandarijn', 1, 4, 4),
		(3,'Passievrucht', 6, 1, 1),
		(3,'Meloen', 2, 3, 2),
		(4,'Pruim', 1, 3, 3),
		(5,'Perzik', 7, 4, 4),
		(6,'Aardbei', 2, 3, 1),
		(7,'Sinasappel', 2, 2, 2),
		(8,'Bes', 1, 3, 3),
		(8,'Framboos', 1, 4, 4),
	)
	
	
	for new_char in some_characters:
		
		character = Character(
						user = User.objects.get(id=new_char[0]),
						name = new_char[1],
						portrait = Portrait.objects.get(id=new_char[2]),
						faction = Faction.objects.get(id=new_char[3]),
						remap = datetime.datetime.now(),
						bonus_remaps = 2,
						town = Town.objects.get(id=new_char[4]),
					)
		character.save()
		
		#add subtables
		character_logic.create_character(character)
		
		print character.name
예제 #3
0
class TestIsOwnerPermission(TestCase):
    def setUp(self):
        self.character = Character(name='Test', role=Character.DAMAGE)
        self.character.save()

        self.owner = User.objects.create_user('owner')
        self.notOwner = User.objects.create_user('notowner')

        self.match = Match(user=self.owner, mmr_after=1000)
        self.match.save()
        self.match.characters.set([self.character])

        self.permission = IsMatchOwner()

    def testPermissionGrantedToOwner(self):
        """
        If user currently logged in is owner of match, permission should
        be granted, both for safe (GET) and unsafe (e. g. POST) methods
        """
        factory = APIRequestFactory()
        get_request = factory.get('/path_does_not_matter_here/')
        force_authenticate(get_request, user=self.owner)
        get_request.user = self.owner # there is no .user in request generated by APIRequestFactory
        self.assertTrue(
            self.permission.has_object_permission(get_request, None, self.match),
            'Permission should be granted for GET request with user which is match owner'
        )

        post_request = factory.post('/path_does_not_matter_here/')
        force_authenticate(post_request, user=self.owner)
        post_request.user = self.owner # there is no .user in request generated by APIRequestFactory
        self.assertTrue(
            self.permission.has_object_permission(post_request, None, self.match),
            'Permission should be granted for unsafe (e.g. POST) request with user which is match owner'
        )
    
    def testPermissionDeniedToNotOwner(self):
        """
        If user currently logged in is not owner of match, permission should
        be denied, both for safe (GET) and unsafe (e. g. POST) methods
        """
        factory = APIRequestFactory()
        get_request = factory.get('/path_does_not_matter_here/')
        force_authenticate(get_request, user=self.notOwner)
        get_request.user = self.notOwner # there is no .user in request generated by APIRequestFactory
        self.assertFalse(
            self.permission.has_object_permission(get_request, None, self.match),
            'Permission should be denied for GET request with user which is not match owner'
        )

        post_request = factory.post('/path_does_not_matter_here/')
        force_authenticate(post_request, user=self.notOwner)
        post_request.user = self.notOwner # there is no .user in request generated by APIRequestFactory
        self.assertFalse(
            self.permission.has_object_permission(post_request, None, self.match),
            'Permission should be denied for unsafe (e.g. POST) request with user which is not match owner'
        )
예제 #4
0
    def setUp(self):
        self.character = Character(name='Test', role=Character.DAMAGE)
        self.character.save()

        self.owner = User.objects.create_user('owner')
        self.notOwner = User.objects.create_user('notowner')

        self.match = Match(user=self.owner, mmr_after=1000)
        self.match.save()
        self.match.characters.set([self.character])

        self.permission = IsMatchOwner()
예제 #5
0
    def setUp(self):
        self.characters = [
            Character(name='Test1', role=Character.DAMAGE),
            Character(name='Test2', role=Character.DAMAGE)
        ]
        for c in self.characters:
            c.save()

        self.user = User.objects.create_user('testuser')

        self.match = Match(user=self.user, mmr_after=1000)
        self.match.save()
        self.match.characters.set(self.characters)
예제 #6
0
def getCharacterInfo(serverName, characterName):
    url = str("https://us.api.battle.net/wow/character/") + str(
        serverName
    ) + str("/") + str(characterName) + str(
        "?locale=en_US&fields=items&apikey=g5n7m2d499n6wumem7g6qqwkyzwfq8pn")
    response = urllib2.urlopen(url)
    data = json.load(response)
    characterLevel = str(data['level'])
    faction = str(data['faction'])
    totalHonorableKills = str(data['totalHonorableKills'])
    icon = str("https://render-api-us.worldofwarcraft.com/static-render/us/"
               ) + str(data['thumbnail'])
    race = str(data['race'])
    achivementPoints = str(data['achievementPoints'])
    gender = str(data['gender'])
    gameClass = str(data['class'])
    itemLevel = str(data['items']['averageItemLevel'])
    itemLevelEquipped = str(data['items']['averageItemLevelEquipped'])
    if Character.objects.filter(characterName=characterName,
                                server=serverName).count() > 0:
        updatedCharacter = Character.objects.get(characterName=characterName,
                                                 server=serverName)
        updatedCharacter.itemLevel = itemLevel
        updatedCharacter.race = race
        updatedCharacter.gender = gender
        updatedCharacter.gameClass = gameClass
        updatedCharacter.itemLevelEquipped = itemLevelEquipped
        updatedCharacter.lastArmoryUpdate = datetime.datetime.now()
        updatedCharacter.iconURL = icon
        updatedCharacter.level = characterLevel
        updatedCharacter.characterHonorableKills = totalHonorableKills
        updatedCharacter.faction = faction
        updatedCharacter.achivementPoints = achivementPoints
        updatedCharacter.save()
        return 'Updated Character'
    else:
        newCharacter = Character(characterName=characterName,
                                 server=serverName,
                                 level=characterLevel,
                                 itemLevel=itemLevel,
                                 itemLevelEquipped=itemLevelEquipped,
                                 lastArmoryUpdate=datetime.datetime.now(),
                                 characterHonorableKills=totalHonorableKills,
                                 achivementPoints=achivementPoints,
                                 gender=gender,
                                 race=race,
                                 iconURL=icon)
        newCharacter.save()
        return 'Created Character'
예제 #7
0
파일: schema.py 프로젝트: UtopiaServer/API
    def mutate(self, info, first_name, last_name):
        names = []
        character = Character(status=0,
                              age=0,
                              first_name=first_name if len(first_name) else
                              MName("utils/firstname.txt").New(),
                              last_name=last_name if len(last_name) else
                              MName("utils/surname.txt").New())
        character.save()

        return CreateCharacter(id=character.id,
                               status=character.status,
                               age=character.age,
                               first_name=character.first_name,
                               last_name=character.last_name)
예제 #8
0
class TestCharacterSerializer(TestCase):
    def setUp(self):
        self.character = Character(name='Test', role=Character.DAMAGE)
        self.character.save()

    def testSerializingCharacter(self):
        """
        Test if character serialization works correctly
        """
        expected_data = {
            'id': self.character.id,
            'name': self.character.name,
            'role': self.character.role
        }

        serializer = CharacterSerializer(self.character)
        self.assertEqual(
            expected_data,
            serializer.data,
            'Serializer should return data in expected format'
        )

    def testDeserializingCharacter(self):
        """
        Test if character deserialization works correctly
        """
        newData = {
            'name': 'New character',
            'role': Character.TANK
        }
        serializer = CharacterSerializer(data=newData)
        self.assertTrue(
            serializer.is_valid(),
            'Serialization of correct data is valid'
        )
        self.assertEqual(
            serializer.validated_data['name'],
            newData['name'],
            'Serialized data should have the same character name as in data'
        )
        self.assertEqual(
            serializer.validated_data['role'],
            newData['role'],
            'Serialized data should have the same role as in data'
        )
예제 #9
0
파일: views.py 프로젝트: OpenFurry/charref
def create_character(request):
    if (request.method == "GET"):
        return render(request, 'characters/character/edit.html', {})
    if (request.POST.get('name', None) is not None):
        c = Character(name=request.POST['name'])
        c.user = request.user
        c.save()
        si = StreamItem(
            action_type='C',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Character),
            object_id=c.id)
        si.save()
        return HttpResponseRedirect(c.get_absolute_url())
    else:
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You must enter a name!</div>')
        return render(request, 'characters/character/edit.html', {})
예제 #10
0
    def handle(self, *args, **options):
        data_string = open(
            '/Users/magnusvaughan/side/a_game_of_django/characters/json/character.json'
        ).read()
        data = json.loads(data_string)

        for person in data:

            if not isinstance(person['Name'], str):
                person['Name'] = ''
            if not isinstance(person['Culture'], str):
                person['Culture'] = ''
            if not isinstance(person['Born'], str):
                person['Born'] = ''
            if not isinstance(person['Died'], str):
                person['Died'] = ''
            if not isinstance(person['Father'], str):
                person['Father'] = ''
            if not isinstance(person['Mother'], str):
                person['Mother'] = ''
            if not isinstance(person['Spouse'], str):
                person['Spouse'] = ''

            from characters.models import Character
            record = Character(id=person['Id'],
                               name=person['Name'],
                               is_female=person['IsFemale'],
                               culture=person['Culture'],
                               titles=person['Titles'],
                               aliases=person['Aliases'],
                               born=person['Born'],
                               died=person['Died'],
                               father=person['Father'],
                               mother=person['Mother'],
                               spouse=person['Spouse'],
                               children=person['Children'],
                               allegiances=person['Allegiances'],
                               books=person['Books'],
                               pov_books=person['PovBooks'],
                               played_by=person['PlayedBy'],
                               tv_series=person['TvSeries'])
            record.save()
예제 #11
0
파일: views.py 프로젝트: jardiacaj/bellum
def do_create(request):
	if len(request.POST.get('name', '')) not in range(2, 50):
		messages.error(request, "Input validation failed.")
		return redirect('characters:create')
	
	if Character.objects.filter(user=request.user, active=True).count() > 2:
		messages.error(request, "You have reached the maximal number of characters.")
		return redirect('characters:create')
	
	if Character.objects.filter(name=request.POST.get('name', '')).exists():
		messages.error(request, "A character with this name already exists.")
		return redirect('characters:create')

	character = Character(
		user=request.user,
		name=request.POST['name'],
		active=True,
	)
	character.save()
	return redirect('characters:list')
예제 #12
0
def _createSampleData(self):
    self.users = [
        User.objects.create_user('jimlahey'),
        User.objects.create_user('randy'),
        User.objects.create_user('user_without_matches')
    ]
    for u in self.users:
        u.set_password('testTEST')
        u.save()
    self.characters = [
        Character(name='char1', role=Character.SUPPORT),
        Character(name='char2', role=Character.DAMAGE),
    ]
    for c in self.characters:
        c.save()
    self.matches = [
        Match(
            mmr_after=2000,
            user=self.users[0],
        ),
        Match(
            mmr_after=3000,
            user=self.users[0],
        ),
        Match(
            mmr_after=3000,
            user=self.users[1],
        ),
        Match(
            mmr_after=2000,
            user=self.users[1],
        ),
    ]
    for m in self.matches:
        m.save()
    self.matches[0].characters.set([self.characters[0]])
    self.matches[1].characters.set([self.characters[1]])
    self.matches[2].characters.set([self.characters[0]])
    self.matches[3].characters.set([self.characters[0], self.characters[1]])
    for m in self.matches:
        m.save()
예제 #13
0
def create_character(request):
    name_form = CharacterNameForm()

    if request.user.character_set.count() == 0:
        text = "Welcome to mercenaries, blabla its time to choose a name for your mercenary"
    else:
        text = "You died! If you want to start over and seek revenge, blabla, enter a new name and start again"

    if request.POST:
        name_form = CharacterNameForm(request.POST)

        if name_form.is_valid():
            name = name_form.cleaned_data['name']
            #create character
            Character.create(request.user, name)
            return HttpResponseRedirect(reverse('index'))

    return render(request, 'create_character.html', {
        "name_form": name_form,
        "text": text
    })
def new(request):
	steam = Steam.objects.get(userId = request.user.username)
	char = Character(user = steam)
	char.save()
	char.name = "Character Nro: "+char.id
	char.save()
	return redirect('characters/'+char.id+'/')
예제 #15
0
파일: views.py 프로젝트: piotr-mazurek/game
def create(request):
	"""Rendering view for character creation. """
	if request.method == 'POST':
		form = CharacterCreationForm(request.POST)
		if form.is_valid():
			buildings = Buildings.objects.all()
			resources = Resources.objects.all()
			character = Character(
				user_id=request.session.get('user_id'),
				character_class_id=form.cleaned_data['character_class'],
				name=form.cleaned_data['name'],
				image=form.cleaned_data['image'],
			)
			character.save()
			village = Village(
				name="Default village "+str(character.id),
				character_id=character.id,
			)
			village.save()
			for building in buildings:
				buildings_in_village = BuildingsInVillage(
					village_id=village,
					building_id=building,
					level=0,
				)
				buildings_in_village.save()
			for resource in resources:
				resources_in_village = ResourcesInVillage(
					village_id=village,
					resource_id=resource,
					amount=40000,
					capacity=50000,
				)
				resources_in_village.save()

			return redirect('index')
	elif request.method == 'GET':
		form = CharacterCreationForm()
		return render(request,'characters/create.html', {'form': form})
def new(request):
	if request.user.is_anonymous():
		return render_to_response('tf2rpg/index.html', {}, context_instance=RequestContext(request))

	if request.user.is_authenticated():
		steam = Steam.objects.get(userId = request.user.id)
		char = Character(user = steam, name=" ", age=0, gender="Male")
		char.save()
		char.name = "Character Nro: "+str(char.id)
		char.save()
		return HttpResponseRedirect(settings.SITE_URL+'/characters/'+str(char.id)+'/first_level')
	else:
		return render_to_response('tf2rpg/index.html', {}, context_instance=RequestContext(request))
예제 #17
0
def create_character(request):
    if (request.method == "GET"):
        return render(request, 'characters/character/edit.html', {})
    if (request.POST.get('name', None) is not None):
        c = Character(name=request.POST['name'])
        c.user = request.user
        c.save()
        si = StreamItem(
            action_type='C',
            user=request.user,
            content_type=ContentType.objects.get_for_model(Character),
            object_id=c.id)
        si.save()
        return HttpResponseRedirect(c.get_absolute_url())
    else:
        messages.add_message(
            request, messages.ERROR,
            '<div class="error">You must enter a name!</div>')
        return render(request, 'characters/character/edit.html', {})
예제 #18
0
def add_training_points_to_character(character: Character):
    if (character.busy):
        training = Training.objects.filter(character=character).first()
        character.growth_points += training.number_completed_training + 1
        character.save()
        return True
예제 #19
0
def toogle_character_busy(character: Character):
    character.busy = not character.busy
    character.save()
예제 #20
0
class TestMatchesViewset(TestCase):
    def setUp(self):
        self.character = Character(name='Test', role=Character.DAMAGE)
        self.character.save()

        self.owner = User.objects.create_user('owner')
        self.notOwner = User.objects.create_user('notowner')

        self.match = Match(user=self.owner, mmr_after=1000)
        self.match.save()
        self.match.characters.set([self.character])

        self.client = APIClient()
    
    API_MATCHES_LIST_URL = '/api/matches/'
    def testListsOnlyMatchesOfLoggedUser(self):
        """
        GET request to API_MATCHES_LIST_URL should return only matches of logged user
        """
        self.client.force_authenticate(user=self.owner)
        response = self.client.get(self.API_MATCHES_LIST_URL)
        self.assertEqual(
            status.HTTP_200_OK,
            response.status_code,
            'Request response code should be 200 (OK)'
        )
        self.assertEqual(
            1,
            len(response.data),
            'Response data should contain 1 object'
        )
        self.assertEqual(
            self.match.pk,
            response.data[0]['id'],
            'Object in response data should be match that belongs to user'
        )
        self.client.logout()

        self.client.force_authenticate(user=self.notOwner)
        response = self.client.get(self.API_MATCHES_LIST_URL)
        self.assertEqual(
            status.HTTP_200_OK,
            response.status_code,
            'Request response code should be 200 (OK)'
        )
        self.assertEqual(
            0,
            len(response.data),
            'Response data should contain 0 objects'
        )
        self.client.logout()

    API_MEW_MATCH_URL = API_MATCHES_LIST_URL
    def testCreatedMatchBelongsToCurrenltyLoggedInUser(self):
        """
        POST request to API_NEW_MATCH_URL should automatically assign User
        """
        data = {
            'characters': [self.character.pk],
            'mmr_after': 5000
        }
        self.client.force_authenticate(user=self.owner)
        response = self.client.post(self.API_MEW_MATCH_URL, data=data)
        self.assertEqual(
            status.HTTP_201_CREATED,
            response.status_code,
            'Request response code should be 201 (Created)'
        )
        new_match = Match.objects.get(id=response.data['id'])
        self.assertEqual(
            new_match.user,
            self.owner,
            'User field of recently created match should be assigned to currently logged user'
        )
        self.client.logout()
예제 #21
0
 def setUp(self):
     self.character = Character(name='Test', role=Character.DAMAGE)
     self.character.save()
예제 #22
0
파일: data.py 프로젝트: Sult/Mercenaries
            price=car[7],
        )
        new_car.save()


add_ranks()
add_regions()
add_base_values()
add_travel_methods()
add_transports()
add_armors()
add_guns()
add_cars()

user = User.objects.get(username="******")
Character.create(user, name="Marmotte")
new = ExtendUser(user=user, )
new.save()


def add_single_player_jobs():
    #add short jobs
    the_type = SinglePlayerJob.SHORT

    the_jobs = (
        ("Teach self defence to a group of children.", the_type, True, 10, 25,
         500, 25, 30, 95, 35),
        ("Help the local police force maintain their guns.", the_type, True, 8,
         50, 650, 30, 20, 92, 25),
        ("Clean the toilets in the barracks.", the_type, True, 7, 30, 900, 17,
         15, 83, 65),