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