Skip to content

Commit 08be56c

Browse files
authored
Merge pull request #929 from WilsontheWolf:report-url
feat: allow start.gg set report URL
2 parents 3c961a2 + d75dc07 commit 08be56c

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

src/TSHTournamentDataProvider.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ def SetTournament(self, url, initialLoading=False):
7575
if url is not None and "start.gg" in url:
7676
TSHTournamentDataProvider.instance.provider = StartGGDataProvider(
7777
url, self.threadPool, self)
78+
url = TSHTournamentDataProvider.instance.provider.GetRealEventURL(url)
7879
else:
7980
logger.error("Unsupported provider...")
8081
TSHTournamentDataProvider.instance.provider = None
@@ -137,7 +138,8 @@ def SetStartggEventSlug(self, mainWindow):
137138
lineEdit = QLineEdit()
138139
okButton = QPushButton("OK")
139140
validators = [
140-
QRegularExpression("start.gg/tournament/[^/]+/event[s]?/[^/]+")
141+
QRegularExpression("start.gg/tournament/[^/]+/event[s]?/[^/]+"),
142+
QRegularExpression("start.gg/admin/tournament/[^/]+/brackets/[^/]+")
141143
]
142144

143145
def validateText():

src/TournamentDataProvider/StartGGDataProvider.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1928,6 +1928,30 @@ def GetFutureMatchesList(self, setsId, progress_callback, cancel_event):
19281928

19291929
return sets_
19301930

1931+
def GetRealEventURL(self, url):
1932+
matches = re.match(
1933+
".*start.gg/admin/tournament/[^/]*/brackets/([^/]*)", url)
1934+
if matches:
1935+
try:
1936+
data = self.QueryRequests(
1937+
"https://www.start.gg/api/-/gql",
1938+
type=requests.post,
1939+
jsonParams={
1940+
"operationName": "TournamentSlugQuery",
1941+
"variables": {
1942+
"id": matches.group(1)
1943+
},
1944+
"query": StartGGDataProvider.TournamentSlugQuery
1945+
}
1946+
)
1947+
1948+
slug = deep_get(data, "data.event.slug", None)
1949+
url = "https://www.start.gg/" + slug
1950+
except:
1951+
logger.error(traceback.format_exc())
1952+
self.url = url
1953+
return url
1954+
19311955
sggTdpDir = TSHResolve('src/TournamentDataProvider')
19321956

19331957
def readQueryFile(tdpdir, filename):
@@ -1951,3 +1975,4 @@ def readQueryFile(tdpdir, filename):
19511975
StartGGDataProvider.TournamentPhaseGroupQuery = readQueryFile(sggTdpDir, "TournamentPhaseGroup")
19521976
StartGGDataProvider.TournamentStandingsQuery = readQueryFile(sggTdpDir, "TournamentStandings")
19531977
StartGGDataProvider.UserSetQuery = readQueryFile(sggTdpDir, "UserSet")
1978+
StartGGDataProvider.TournamentSlugQuery = readQueryFile(sggTdpDir, "TournamentSlug")
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
query TournamentSlugQuery($id: ID!) {
2+
event(id: $id) {
3+
slug
4+
}
5+
}

0 commit comments

Comments
 (0)