예제 #1
0
    def setUp(self):
        testdata = open(os.path.join(TESTDATA_PATH, 'player_statistics.html'),
                        encoding='utf8')
        self.matchday = MatchdayFactory.create()
        user = OFMUserFactory.create()
        season = SeasonFactory.create()

        country_choices = Country.get_choices()
        country_iso_greece = list(country_choices.keys())[list(
            country_choices.values()).index('Griechenland')]
        nationality_greece, _ = Country.objects.get_or_create(
            country=country_iso_greece)

        self.player = Player.objects.create(id='159883060',
                                            position='TW',
                                            name='Chrístos Tsigas',
                                            birth_season=season,
                                            nationality=nationality_greece)
        self.player = Player.objects.create(id='160195494',
                                            position='LV',
                                            name='Irwin O\'Canny',
                                            birth_season=season,
                                            nationality=nationality_greece)
        self.player = Player.objects.create(id='159341445',
                                            position='LMD',
                                            name='Jan Stemmler',
                                            birth_season=season,
                                            nationality=nationality_greece)

        self.parser = PlayerStatisticsParser(testdata, user, self.matchday)
        self.player_stat_list = self.parser.parse()
        self.first_player_stat = self.player_stat_list[0]
        self.assertEqual(Matchday.objects.all().count(), 1)
예제 #2
0
    def parse_row(self, player_row):
        player_values = self._filter_invalid_cells(player_row.find_all('td'))
        ofm_id = player_row.find_all('input', class_='playerid')[0]['value']
        name = player_values[6].a.get_text().replace('\n',
                                                     '').replace('\t',
                                                                 '').strip(' ')
        position = player_values[5].find_all('span')[1].get_text()
        age = int(player_values[7].get_text())
        birth_season, _ = Season.objects.get_or_create(
            number=self.matchday.season.number - age)

        displayed_country = player_values[8].get_text().replace(
            '\n', '').replace('\t', '').strip(' ')
        country_name = ''.join(
            [i for i in displayed_country if not i.isdigit()])
        country_choices = Country.get_choices()
        country_no = list(country_choices.keys())[list(
            country_choices.values()).index(country_name)]
        nationality, _ = Country.objects.get_or_create(country=country_no)

        player, _ = Player.objects.get_or_create(id=int(ofm_id),
                                                 birth_season=birth_season,
                                                 nationality=nationality,
                                                 position=position)
        player.name = name
        player.save()

        logger.debug('===== Player parsed: %s', player.name)

        self._create_contract(player)
        logger.debug('===== Contract created.')

        return player
예제 #3
0
def country_upload(request):
    if request.method == 'POST':
        dataset = Dataset()
        new_country = request.FILES['myfile']
        imported_data = dataset.load(new_country.read(), format='xlsx')
        print(imported_data)
        for data in imported_data:
            if data[1] is not None:
                value = Country(
                    data[0],
                    data[1],
                    data[2],
                    data[3],
                    data[4]
                )
                value.save()
        return redirect('countries-list')

    return render(request, 'core/countries_upload.html')
예제 #4
0
def migrate(_req):
    response = {'status': 'True', 'message': 'Success!'}

    with open('core/city.list.json') as file:
        data = json.load(file)
        print('starting migration...')
        print('total cities: ', len(data))
        for i, cityInfo in enumerate(data):
            city = City()
            city.weathermapId = cityInfo['id']
            country = Country.objects.filter(name=cityInfo['country']).first()
            if country is None:
                country = Country()
                country.name = cityInfo['country']
                country.save()
            city.country = country
            city.name = cityInfo['name']
            city.save()
            if (i + 1) % 500 == 0:
                print(i + 1, ' cities sorted.')

    return JsonResponse(response, status=200)
예제 #5
0
    def setUp(self):
        """
        Set up class dependencies 
        """
        # Create a user and authenticate him for further use of his token
        User(**Mock.user_a).save()
        current_user = User.objects.first()
        self.__class__.token = Token.objects.create(user=current_user)
        self.__class__.client = APIClient()
        header = 'Token ' + self.__class__.token.key
        self.__class__.client.credentials(HTTP_AUTHORIZATION=header)

        # Create a hacker user and authenticate him for further use of his token
        User(**Mock.user_b).save()
        hacker = User.objects.get(pk=2)
        self.__class__.h_token = Token.objects.create(user=hacker)
        self.__class__.h_client = APIClient()
        hacker_header = 'Token ' + self.__class__.h_token.key
        self.__class__.h_client.credentials(HTTP_AUTHORIZATION=hacker_header)

        # Create a country, needed for its foreign key
        Country(**Mock.country).save()
    def setUp(self):
        testdata = open(os.path.join(TESTDATA_PATH, 'player_statistics.html'), encoding='utf8')
        self.matchday = MatchdayFactory.create()
        user = OFMUserFactory.create()
        season = SeasonFactory.create()

        country_choices = Country.get_choices()
        country_iso_greece = list(country_choices.keys())[list(country_choices.values()).index('Griechenland')]
        nationality_greece, _ = Country.objects.get_or_create(country=country_iso_greece)

        self.player = Player.objects.create(
            id='159883060',
            position='TW',
            name='Chrístos Tsigas',
            birth_season=season,
            nationality=nationality_greece
        )
        self.player = Player.objects.create(
            id='160195494',
            position='LV',
            name='Irwin O\'Canny',
            birth_season=season,
            nationality=nationality_greece
        )
        self.player = Player.objects.create(
            id='159341445',
            position='LMD',
            name='Jan Stemmler',
            birth_season=season,
            nationality=nationality_greece
        )

        self.parser = PlayerStatisticsParser(testdata, user, self.matchday)
        self.player_stat_list = self.parser.parse()
        self.first_player_stat = self.player_stat_list[0]
        self.assertEqual(Matchday.objects.all().count(), 1)
예제 #7
0
        "CANARY ISLANDS",
        "加那利群岛",
        312,
    ),
    (
        "SS",
        "SOUTH SUDAN",
        "南苏丹共和国",
        260,
    ),
    (
        "CW",
        "Curaçao",
        "库拉索",
        0,
    ),
]

for code, name, cn_name, number in countrys:
    country = Country.objects.filter(code=code).first()
    if not country:
        country = Country()
        country.code = code
        country.name = name
        country.cn_name = cn_name
        country.save()
    country.cn_name = cn_name
    country.number = number
    country.save()
print "import country success"
예제 #8
0
    def handle(self, *args, **options):
        response = urlopen(settings.COUNTRIES_URL)
        data = json.loads(response.read().decode('utf-8'))
        data = {item['alpha3Code']: item for item in data}

        added, updated = [], []

        for alpha3, item in data.items():
            try:
                country = Country.objects.get(alpha3=alpha3)
                update_country(country, item)
                country.save()
                updated.append(country)
                self.stdout.write("Updated country {}.".format(alpha3))
            except Country.DoesNotExist:
                country = Country()
                update_country(country, item)
                country.save()
                added.append(country)
                self.stdout.write("Added country {}.".format(alpha3))

        for country in added + updated:

            # Update languages
            country_languages = country.languages.all()

            for language_alpha2 in data[country.alpha3]['languages']:
                language = Language.objects.get(alpha2=language_alpha2)
                if language not in country_languages:
                    country.languages.add(language)
                    country.save()
                    self.stdout.write("Language {} added to country {}.".format(language.alpha2,
                                                                                country.alpha3))

            for cl in country_languages:
                if cl.alpha2 not in data[country.alpha3]['languages']:
                    country.languages.remove(cl)
                    country.save()
                    self.stdout.write("Language {} removed from country {}.".format(cl.alpha2,
                                                                                    country.alpha3))

            # Update neighbors
            country_neighbors = country.neighbors.all()

            for neighbor_alpha3 in data[country.alpha3]['borders']:
                if neighbor_alpha3 not in data:
                    continue

                neighbor = Country.objects.get(alpha3=neighbor_alpha3)
                if neighbor not in country_neighbors:
                    country.neighbors.add(neighbor)
                    country.save()
                    self.stdout.write("Neighbouring Country {} added to country {}.".format(neighbor.alpha3,
                                                                                            country.alpha3))

            for cn in country_neighbors:
                if cn.alpha3 not in data[country.alpha3]['borders']:
                    country.neighbors.remove(cn)
                    country.save()
                    self.stdout.write("Neighbouring Country {} removed from country {}.".format(cn.alpha3,
                                                                                                country.alpha3))

        self.stdout.write('\n' + ('=' * 80))
        self.stdout.write(self.style.SUCCESS("Added: {}\nUpdated: {}".format(len(added), len(updated))))
예제 #9
0
 def CrearPaisCiudad(self):
     print('Creando paises y ciudades.')
     country = Country(CountryID=1, CountryName='Alemania',
                       CountryPrefix='+54')
     country.save()
     city = City(CityID=1, Country=country, CityName='Berlin')
     city.save()
     city = City(CityID=2, Country=country, CityName='Munich')
     city.save()
     country = Country(
         CountryID=2, CountryName='Argentina', CountryPrefix='+49')
     country.save()
     city = City(CityID=3, Country=country, CityName='Buenos Aires')
     city.save()
     city = City(CityID=4, Country=country, CityName='Cordoba')
     city.save()
     country = Country(
         CountryID=3, CountryName='Australia', CountryPrefix='+61')
     country.save()
     city = City(CityID=5, Country=country, CityName='Sidney')
     city.save()
     city = City(CityID=6, Country=country, CityName='Melbourne')
     city.save()
     city = City(CityID=7, Country=country, CityName='Canberra')
     city.save()
     country = Country(CountryID=4, CountryName='Austria',
                       CountryPrefix='+43')
     country.save()
     city = City(CityID=8, Country=country, CityName='Viena')
     city.save()
     country = Country(CountryID=5, CountryName='Belgica',
                       CountryPrefix='+32')
     country.save()
     city = City(CityID=9, Country=country, CityName='Bruselas')
     city.save()
     city = City(CityID=10, Country=country, CityName='Brujas')
     city.save()
     country = Country(CountryID=6, CountryName='Brasil',
                       CountryPrefix='+55')
     country.save()
     city = City(CityID=11, Country=country, CityName='Brasilia')
     city.save()
     city = City(CityID=12, Country=country, CityName='Rio de janeiro')
     city.save()
     city = City(CityID=13, Country=country, CityName='Sao Paulo')
     city.save()
     country = Country(CountryID=7, CountryName='Bulgaria',
                       CountryPrefix='+359')
     country.save()
     city = City(CityID=14, Country=country, CityName='Sofia')
     city.save()
     country = Country(CountryID=8, CountryName='Canada',
                       CountryPrefix='+1')
     country.save()
     city = City(CityID=15, Country=country, CityName='Ottawa')
     city.save()
     city = City(CityID=16, Country=country, CityName='Toronto')
     city.save()
     city = City(CityID=17, Country=country, CityName='Montreal')
     city.save()
     country = Country(CountryID=9, CountryName='Chile',
                       CountryPrefix='+56')
     country.save()
     city = City(CityID=18, Country=country, CityName='Santiago')
     city.save()
     city = City(CityID=19, Country=country, CityName='Valparaiso')
     city.save()
     city = City(CityID=20, Country=country, CityName='Valdivia')
     city.save()
     city = City(CityID=21, Country=country, CityName='Concepcion')
     city.save()
     country = Country(CountryID=10, CountryName='China',
                       CountryPrefix='+86')
     country.save()
     city = City(CityID=22, Country=country, CityName='Pekin')
     city.save()
     city = City(CityID=23, Country=country, CityName='Shanghai')
     city.save()
     country = Country(
         CountryID=11, CountryName='Colombia', CountryPrefix='+57')
     country.save()
     city = City(CityID=24, Country=country, CityName='Bogota')
     city.save()
     city = City(CityID=25, Country=country, CityName='Medellin')
     city.save()
     country = Country(CountryID=12, CountryName='Croacia',
                       CountryPrefix='+385')
     country.save()
     city = City(CityID=26, Country=country, CityName='Zagreb')
     city.save()
     country = Country(
         CountryID=13, CountryName='Dinamarca', CountryPrefix='+45')
     country.save()
     city = City(CityID=27, Country=country, CityName='Copenhague')
     city.save()
     country = Country(CountryID=14, CountryName='Egipto',
                       CountryPrefix='+20')
     country.save()
     city = City(CityID=28, Country=country, CityName='El cairo')
     city.save()
     country = Country(CountryID=15, CountryName='España',
                       CountryPrefix='+34')
     country.save()
     city = City(CityID=29, Country=country, CityName='Madrid')
     city.save()
     city = City(CityID=30, Country=country, CityName='Barcelona')
     city.save()
     country = Country(CountryID=16, CountryName='Francia',
                       CountryPrefix='+33')
     country.save()
     city = City(CityID=31, Country=country, CityName='Paris')
     city.save()
     country = Country(CountryID=17, CountryName='Grecia',
                       CountryPrefix='+30')
     country.save()
     city = City(CityID=32, Country=country, CityName='Atenas')
     city.save()
     country = Country(CountryID=18, CountryName='Holanda',
                       CountryPrefix='+31')
     country.save()
     city = City(CityID=33, Country=country, CityName='Amsterdam')
     city.save()
     country = Country(CountryID=19, CountryName='India',
                       CountryPrefix='+91')
     country.save()
     city = City(CityID=34, Country=country, CityName='Nueva Delhi')
     city.save()
     city = City(CityID=35, Country=country, CityName='Bombay')
     city.save()
     country = Country(CountryID=20, CountryName='Italia',
                       CountryPrefix='+39')
     country.save()
     city = City(CityID=36, Country=country, CityName='Roma')
     city.save()
     city = City(CityID=37, Country=country, CityName='Milan')
     city.save()
     country = Country(CountryID=21, CountryName='Japon',
                       CountryPrefix='+81')
     country.save()
     city = City(CityID=38, Country=country, CityName='Tokio')
     city.save()
     country = Country(CountryID=22, CountryName='Mexico',
                       CountryPrefix='+52')
     country.save()
     city = City(CityID=39, Country=country, CityName='Ciudad de Mexico')
     city.save()
     city = City(CityID=40, Country=country, CityName='Monterrey')
     city.save()
     country = Country(CountryID=23, CountryName='Noruega',
                       CountryPrefix='+47')
     country.save()
     city = City(CityID=41, Country=country, CityName='Oslo')
     city.save()
     country = Country(CountryID=24, CountryName='Peru',
                       CountryPrefix='+51')
     country.save()
     city = City(CityID=42, Country=country, CityName='Lima')
     city.save()
     country = Country(CountryID=25, CountryName='Portugal',
                       CountryPrefix='+351')
     country.save()
     city = City(CityID=43, Country=country, CityName='Lisboa')
     city.save()
     city = City(CityID=44, Country=country, CityName='Oporto')
     city.save()
     country = Country(CountryID=26, CountryName='Qatar',
                       CountryPrefix='+974')
     country.save()
     city = City(CityID=45, Country=country, CityName='Doha')
     city.save()
     country = Country(CountryID=27, CountryName='Rusia',
                       CountryPrefix='+7')
     country.save()
     city = City(CityID=46, Country=country, CityName='Moscu')
     city.save()
     city = City(CityID=47, Country=country, CityName='San Petersburgo')
     city.save()
     country = Country(
         CountryID=28, CountryName='Reino Unido', CountryPrefix='+44')
     country.save()
     city = City(CityID=48, Country=country, CityName='Londres')
     city.save()
     country = Country(
         CountryID=29, CountryName='Sudafrica', CountryPrefix='+27')
     country.save()
     city = City(CityID=49, Country=country, CityName='Manchester')
     city.save()
     country = Country(CountryID=30, CountryName='Suecia',
                       CountryPrefix='+46')
     country.save()
     city = City(CityID=50, Country=country, CityName='Estocolmo')
     city.save()
     country = Country(CountryID=31, CountryName='Suiza',
                       CountryPrefix='+41')
     country.save()
     city = City(CityID=51, Country=country, CityName='Berna')
     city.save()
     city = City(CityID=52, Country=country, CityName='Zurich')
     city.save()
     country = Country(
         CountryID=32, CountryName='Tailandia', CountryPrefix='+66')
     country.save()
     city = City(CityID=53, Country=country, CityName='Bangkok')
     city.save()
     country = Country(CountryID=33, CountryName='Turquia',
                       CountryPrefix='+90')
     country.save()
     city = City(CityID=54, Country=country, CityName='Ankara')
     city.save()
     city = City(CityID=55, Country=country, CityName='Estambul')
     city.save()
     country = Country(CountryID=34, CountryName='Usa', CountryPrefix='+1')
     country.save()
     city = City(CityID=56, Country=country, CityName='Washington')
     city.save()
     city = City(CityID=57, Country=country, CityName='Los Angeles')
     city.save()
     city = City(CityID=58, Country=country, CityName='New York')
     city.save()
     city = City(CityID=59, Country=country, CityName='Miami')
     city.save()
     country = Country(CountryID=35, CountryName='Uruguay',
                       CountryPrefix='+598')
     country.save()
     city = City(CityID=60, Country=country, CityName='Montevideo')
     city.save()
     country = Country(CountryID=36, CountryName='Vietnam',
                       CountryPrefix='+84')
     country.save()
     city = City(CityID=61, Country=country, CityName='Hanoi')
     city.save()
     return
예제 #10
0
def init_country():
    project_directory = os.path.abspath(".")
    data_directory = os.path.join(project_directory, "core", "data")

    country_data_file = os.path.join(data_directory, "countries.json")
    Country.load_from_json(country_data_file)