From c7212316eea91b163cd8a698e6b21fdd905b6241 Mon Sep 17 00:00:00 2001 From: Christian Wolf Date: Wed, 8 Nov 2023 20:46:05 +0100 Subject: [PATCH] Fix native class from final result table --- src/solo_turnier/competition_class.py | 8 ++++++++ src/solo_turnier/worker.py | 11 +++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/solo_turnier/competition_class.py b/src/solo_turnier/competition_class.py index 9fe88c8..20e1107 100644 --- a/src/solo_turnier/competition_class.py +++ b/src/solo_turnier/competition_class.py @@ -44,6 +44,11 @@ class CompetitionClassParser: self.namesPreview = [ 'Sichtung' ] + self.mapShortNames = { + 'N': self.NEWC, + 'B': self.BEG, + 'A': self.ADV, + } def parseClass(self, cls: str, allowPreview: bool = False) -> Class_t: if allowPreview and cls in self.namesPreview: @@ -57,6 +62,9 @@ class CompetitionClassParser: else: return self.mapNames[cls] + def parseAbbreviatedClass(self, cls: str) -> Class_t: + return self.mapShortNames[cls] + def isPureClass(self, cls: str, allowPreview: bool = False) -> bool: parsedClass = self.parseClass(cls, allowPreview) return isinstance(parsedClass, CompetitionClass) diff --git a/src/solo_turnier/worker.py b/src/solo_turnier/worker.py index 6d2be77..b5aa7ba 100644 --- a/src/solo_turnier/worker.py +++ b/src/solo_turnier/worker.py @@ -550,7 +550,9 @@ class Worker: raise Exception('Multiple results found with same key') rawResult = rawResult[0] - nativeClass = previewResults.results[participant][dance] + nativeClass = key[2] + # nativeClass = previewResults.results[participant][dance] + # nativeClass = key[2] # self.l.log(5, 'Result %s => %s', key, rawResult) ret = types.SingleParticipantResult( @@ -565,13 +567,15 @@ class Worker: return results - def _fixNativePlacesFromTable( + def _fixNativeDataFromTable( self, dances: list[str], data: dict[types.HtmlPreviewParticipant, list[types.SingleParticipantResult]], importedData: types.HtmlCompetitionTotalResults ): rePlace = re.compile('([0-9]+)(?:-([0-9]+))?') + classParser = competition_class.CompetitionClassParser() + for participant in data.keys(): self.l.log(5, 'fixing participant %s', participant) results = data[participant] @@ -598,6 +602,9 @@ class Worker: result.placeNative = matcher.group(1) result.placeNativeTo = matcher.group(2) + if raw[1] is not None: + result.nativeClass = classParser.parseAbbreviatedClass(raw[1]) + pass def _fixNativePlaces(