2022-11-13 17:04:49 +00:00
|
|
|
import os
|
|
|
|
import logging
|
|
|
|
|
|
|
|
class HtmlLocator:
|
|
|
|
def __init__(self):
|
|
|
|
self.l = logging.getLogger('solo_turnier.html_locator')
|
|
|
|
|
2022-11-26 07:39:35 +00:00
|
|
|
def __findRecursivelyCandidates(self, path: str, fileName: str):
|
2022-11-13 17:04:49 +00:00
|
|
|
ret = []
|
|
|
|
ls = os.listdir(path)
|
|
|
|
|
2022-11-26 07:39:35 +00:00
|
|
|
if fileName in ls and os.path.isfile(os.path.join(path, fileName)):
|
|
|
|
ret.append(os.path.join(path, fileName))
|
2022-11-13 17:04:49 +00:00
|
|
|
|
|
|
|
for p in ls:
|
|
|
|
subPath = os.path.join(path, p)
|
|
|
|
if os.path.isdir(subPath):
|
2022-11-26 07:39:35 +00:00
|
|
|
ret = ret + self.__findRecursivelyCandidates(subPath, fileName)
|
2022-11-13 17:04:49 +00:00
|
|
|
|
|
|
|
return ret
|
|
|
|
|
2023-09-26 10:35:35 +00:00
|
|
|
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)
|
|
|
|
|
2022-11-13 17:04:49 +00:00
|
|
|
def findCandidates(self, path: str):
|
2023-09-26 10:35:35 +00:00
|
|
|
candidatesErg = self.__findRecursivelyCandidates(path, 'erg.htm')
|
|
|
|
candidates = [self.__fingMatchingTabs(x) for x in candidatesErg]
|
|
|
|
return candidates
|
2022-11-26 07:39:35 +00:00
|
|
|
|
|
|
|
def findPreviewRoundCandidates(self, path: str):
|
|
|
|
candidates = self.__findRecursivelyCandidates(path, 'tabges.htm')
|
|
|
|
return candidates
|