diff --git a/boatmovers/scrapers.py b/boatmovers/scrapers.py index f1adda7f..eb6ac6ae 100644 --- a/boatmovers/scrapers.py +++ b/boatmovers/scrapers.py @@ -4,6 +4,7 @@ import requests from boatmovers.models import * import pandas as pd from django.core.exceptions import ValidationError +from django.db.utils import IntegrityError url_heineken = '' @@ -115,11 +116,14 @@ def time_team_scraper(url,raceid,gender='m',startorder=1): try: first_name = str(df['naam'][i]) last_name = '' + full_name = first_name dummy=False except TypeError: first_name = 'Unknown' last_name = 'Athlete' + full_name = 'Unknown Athlete' dummy=True + print(full_name) athletes = Athlete.objects.filter(full_name=full_name) if len(athletes) >= 1: athlete = athletes[0] @@ -131,11 +135,15 @@ def time_team_scraper(url,raceid,gender='m',startorder=1): dummy=dummy) try: athlete.save() + except IntegrityError: + athletes = Athlete.objects.filter(full_name__icontains=full_name) + if len(athletes) >= 1: + athlete = athletes[0] except ValidationError as e: text, id = e.message.split(':') athlete = Athlete.objects.get(id=id) - print(athlete) + #print(athlete) crew.athletes.add(athlete) diff --git a/rowers/integrations/__init__.py b/rowers/integrations/__init__.py index f68aed3e..dc76fdb1 100644 --- a/rowers/integrations/__init__.py +++ b/rowers/integrations/__init__.py @@ -14,6 +14,6 @@ importsources = { 'nk': NKIntegration, 'tp':TPIntegration, 'rp3':RP3Integration, - 'polar': PolarIntegration + 'polar': PolarIntegration, } diff --git a/rowers/integrations/nk.py b/rowers/integrations/nk.py index ea1488cf..25d14bc6 100644 --- a/rowers/integrations/nk.py +++ b/rowers/integrations/nk.py @@ -269,7 +269,7 @@ class NKIntegration(SyncIntegration): def open(self, *args, **kwargs) -> str: r = self.rower - if (r.nktoken == '') or (r.nktoken is None): # pragma: no cover + if not r.nktoken: # pragma: no cover raise NoTokenError("User has no token") else: if (timezone.now() > r.nktokenexpirydate): diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index 7f8b80e9..b96daad5 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/views/importviews.py b/rowers/views/importviews.py index 1df484ab..2b9a582e 100644 --- a/rowers/views/importviews.py +++ b/rowers/views/importviews.py @@ -361,7 +361,12 @@ def workout_import_view(request, source='c2'): enddate = enddate.date() r = getrequestrower(request) - integration = importsources[source](request.user) + try: + integration = importsources[source](request.user) + except KeyError: + messages.error(request,"This integration is not supported") + url = reverse('workouts_view') + return HttpResponseRedirect(url) try: _ = integration.open()