solo-auswertung/src/solo_turnier/html_locator.py

37 lines
1.2 KiB
Python

import os
import logging
class HtmlLocator:
def __init__(self):
self.l = logging.getLogger('solo_turnier.html_locator')
def __findRecursivelyCandidates(self, path: str, fileName: str):
ret = []
ls = os.listdir(path)
if fileName in ls and os.path.isfile(os.path.join(path, fileName)):
ret.append(os.path.join(path, fileName))
for p in ls:
subPath = os.path.join(path, p)
if os.path.isdir(subPath):
ret = ret + self.__findRecursivelyCandidates(subPath, fileName)
return ret
def __fingMatchingTabs(self, ergCandidate):
path = os.path.dirname(ergCandidate)
tabPath = os.path.join(path, 'tabges.htm')
if not os.path.exists(tabPath):
tabPath = None
return (ergCandidate, tabPath)
def findCandidates(self, path: str):
candidatesErg = self.__findRecursivelyCandidates(path, 'erg.htm')
candidates = [self.__fingMatchingTabs(x) for x in candidatesErg]
return candidates
def findPreviewRoundCandidates(self, path: str):
candidates = self.__findRecursivelyCandidates(path, 'tabges.htm')
return candidates