コード例 #1
0
ファイル: import_games.py プロジェクト: fossabot/hbscorez
    def import_game(self, game_row, league):
        # league_abbreviation = game_row[0].text
        number = int(game_row[1].text)

        if self.options['games'] and number not in self.options['games']:
            self.stdout.write('SKIPPING Game: {} (options)'.format(number))
            return

        opening_whistle = parsing.parse_opening_whistle(game_row[2].text)
        sports_hall = self.get_sports_hall(game_row)
        home_team = Team.objects.get(league=league,
                                     short_name=game_row[4].text)
        guest_team = Team.objects.get(league=league,
                                      short_name=game_row[6].text)
        home_goals, guest_goals = parsing.parse_goals(game_row)
        report_number = parsing.parse_report_number(game_row[10])
        forfeiting_team = parsing.parse_forfeiting_team(
            game_row[10], home_team, guest_team)

        if not Game.objects.filter(number=number).exists():
            self.stdout.write('CREATING Game: {}'.format(number))
            game = Game.objects.create(number=number,
                                       league=league,
                                       opening_whistle=opening_whistle,
                                       sports_hall=sports_hall,
                                       home_team=home_team,
                                       guest_team=guest_team,
                                       home_goals=home_goals,
                                       guest_goals=guest_goals,
                                       report_number=report_number,
                                       forfeiting_team=forfeiting_team)
            self.stdout.write('CREATED Game: {}'.format(game))

        else:
            self.stdout.write('EXISTING Game: {}'.format(number))
            game = Game.objects.get(number=number)
            if game.opening_whistle != opening_whistle:
                self.stdout.write(
                    'UPDATING Game opening whistle: {}'.format(game))
                game.opening_whistle = opening_whistle
            if game.sports_hall != sports_hall:
                self.stdout.write('UPDATING Game Sports Hall: {}'.format(game))
                game.sports_hall = sports_hall
            if game.home_goals != home_goals or game.guest_goals != guest_goals:
                self.stdout.write('UPDATING Game goals: {}'.format(game))
                game.home_goals = home_goals
                game.guest_goals = guest_goals
                Score.objects.filter(game=game).delete()
                self.stdout.write('DELETED Game Scores: {}'.format(game))
            if game.report_number != report_number:
                self.stdout.write(
                    'UPDATING Game report number: {}'.format(game))
                game.report_number = report_number
                self.stdout.write('DELETED Game Scores: {}'.format(game))
                Score.objects.filter(game=game).delete()
            if game.forfeiting_team != forfeiting_team:
                self.stdout.write(
                    'UPDATING Game forfeiting team: {}'.format(game))
                game.forfeiting_team = forfeiting_team
            game.save()
コード例 #2
0
    def import_game(self, game_row, league: League):

        if game_row[1].text == 'Nr.':
            LOGGER.debug('SKIPPING Row (heading)')
            return

        number = int(game_row[1].text)

        if self.options['games'] and number not in self.options['games']:
            LOGGER.debug('SKIPPING Game (options): %s', number)
            return

        opening_whistle = parsing.parse_opening_whistle(game_row[2].text)
        sports_hall = get_sports_hall(game_row)
        home_team = Team.objects.get(league=league,
                                     short_name=game_row[4].text)
        guest_team = Team.objects.get(league=league,
                                      short_name=game_row[6].text)
        home_goals, guest_goals = parsing.parse_goals(game_row)
        report_number = parsing.parse_report_number(game_row[10])
        forfeiting_team = parsing.parse_forfeiting_team(
            game_row[10], home_team, guest_team)

        if not Game.objects.filter(number=number,
                                   league__season=league.season).exists():
            LOGGER.debug('CREATING Game: %s', number)
            game = Game.objects.create(number=number,
                                       league=league,
                                       opening_whistle=opening_whistle,
                                       sports_hall=sports_hall,
                                       home_team=home_team,
                                       guest_team=guest_team,
                                       home_goals=home_goals,
                                       guest_goals=guest_goals,
                                       report_number=report_number,
                                       forfeiting_team=forfeiting_team)
            LOGGER.info('CREATED Game: %s', game)

        else:
            LOGGER.info('EXISTING Game: %s %s', number, league)
            game = Game.objects.get(number=number, league=league)
            if game.opening_whistle != opening_whistle:
                LOGGER.debug('UPDATING Game opening whistle: %s', game)
                game.opening_whistle = opening_whistle
            if game.sports_hall != sports_hall:
                LOGGER.debug('UPDATING Game Sports Hall: %s', game)
                game.sports_hall = sports_hall
            if game.home_goals != home_goals or game.guest_goals != guest_goals:
                LOGGER.debug('UPDATING Game goals: %s', game)
                game.home_goals = home_goals
                game.guest_goals = guest_goals
                Score.objects.filter(game=game).delete()
                LOGGER.debug('DELETED Game Scores: %s', game)
            if game.report_number != report_number:
                LOGGER.debug('UPDATING Game report number: %s', game)
                game.report_number = report_number
                LOGGER.debug('DELETED Game Scores: %s', game)
                Score.objects.filter(game=game).delete()
            if game.forfeiting_team != forfeiting_team:
                LOGGER.debug('UPDATING Game forfeiting team: %s', game)
                game.forfeiting_team = forfeiting_team
            game.save()
コード例 #3
0
 def assert_from_markup(self, markup, expected):
     dom = parsing.html_dom(markup)
     actual = parsing.parse_report_number(dom)
     self.assertEqual(expected, actual)
コード例 #4
0
 def assert_from_markup(self, markup, expected):
     tree = html.fromstring(markup)
     actual = parse_report_number(tree)
     self.assertEqual(expected, actual)