Ejemplo n.º 1
0
    def savePeople(self):
        alldata = self.grabAllData("people")
        for data in alldata:
            # get person from database
            person = self.find_or_create(data, Person)
            # get planet from database
            planet = self.find_or_create(
                json.loads(requests.get(data['homeworld']).text), Planet)

            for v in data['vehicles']:
                vehicle = self.find_or_create(json.loads(requests.get(v).text),
                                              Vehicle)
                try:
                    self.open().query(Driver).filter(
                        Driver.person == person,
                        Driver.vehicle == vehicle).one()
                    print("data already exist")
                except:
                    driver = Driver()
                    driver.vehicle = vehicle
                    driver.person = person
                    self.save(driver)
                    print("Driver Vehicle saved")

            for s in data['starships']:
                starship = self.find_or_create(
                    json.loads(requests.get(s).text), Starship)
                try:
                    self.open().query(Driver).filter(
                        Driver.person == person,
                        Driver.starship == starship).one()
                    print("data already exist")
                except:
                    pilot = Pilot()
                    pilot.starship = starship
                    pilot.person = person
                    self.save(pilot)
                    print("Pilot Starships saved")

            for f in data['films']:
                film = self.find_or_create(json.loads(requests.get(f).text),
                                           Film)
                try:
                    self.open().query(Role).filter(Role.person == person,
                                                   Role.film == film).one()
                    print("data film already exist")
                except:
                    role = Role()
                    role.film = film
                    role.person = person
                    self.save(role)
                    print("Role  saved")

            for s in data['species']:
                species = self.find_or_create(json.loads(requests.get(s).text),
                                              Species)
                try:
                    self.open().query(Member).filter(
                        Member.person == person,
                        Member.species == species).one()
                    print("data species already exist")
                except:
                    member = Member()
                    member.species = species
                    member.person = person
                    self.save(member)
                    print("Member saved")

            print(planet)
            if not person.homeworld:
                person.homeworld = planet
                self.save(person)

            #add planet based on vehicle
            vehicle = self.find_or_create(
                json.loads(requests.get(data['homeworld']).text), Planet)