Skip to content

Commit

Permalink
Merge branch 'set_sold_on_matchday-#76' of github.com:WiSchLabs/ofm_h…
Browse files Browse the repository at this point in the history
…elper into set_sold_on_matchday-#76
  • Loading branch information
Sh4kE committed Oct 20, 2016
2 parents 60c5aa7 + 833635f commit 3582495
Show file tree
Hide file tree
Showing 3 changed files with 4,946 additions and 10 deletions.
27 changes: 19 additions & 8 deletions core/parsers/players_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ def parse_html(self, soup):
"""
players_table = soup.find(id="playerTable").tbody
player_list = players_table.find_all('tr') # 1 row per player
return [self.parse_row(player_row) for player_row in player_list]
parsed_players = [self.parse_row(player_row) for player_row in player_list]
self._mark_sold_players_as_sold(parsed_players)
return parsed_players

def parse_row(self, player_row):
matchday = Matchday.objects.all()[0]
Expand All @@ -41,13 +43,13 @@ def parse_row(self, player_row):
country_no = list(country_choices.keys())[list(country_choices.values()).index(country_name)]
nationality, success = Country.objects.get_or_create(country=country_no)

player, success = Player.objects.get_or_create(
id=ofm_id,
name=name,
position=position,
birth_season=birth_season,
nationality=nationality
)
player, success = 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, matchday)
Expand All @@ -68,3 +70,12 @@ def _create_contract(self, player, matchday):
)

return contract

def _mark_sold_players_as_sold(self, parsed_players):
active_contracts = Contract.objects.filter(user=self.user, sold_on_matchday=None)
sold_players = list(set([contract.player for contract in active_contracts]) - set(parsed_players))

for player in sold_players:
contract = Contract.objects.get(player=player, user=self.user, sold_on_matchday=None) # latest contract
contract.sold_on_matchday = Matchday.objects.all()[0] # assume today
contract.save()
Loading

0 comments on commit 3582495

Please sign in to comment.