Coverage for bundesliga_tippspiel/utils/teams.py: 100%

Shortcuts on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

12 statements  

1"""LICENSE 

2Copyright 2017 Hermann Krumrey <hermann@krumreyh.com> 

3 

4This file is part of bundesliga-tippspiel. 

5 

6bundesliga-tippspiel is free software: you can redistribute it and/or modify 

7it under the terms of the GNU General Public License as published by 

8the Free Software Foundation, either version 3 of the License, or 

9(at your option) any later version. 

10 

11bundesliga-tippspiel is distributed in the hope that it will be useful, 

12but WITHOUT ANY WARRANTY; without even the implied warranty of 

13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

14GNU General Public License for more details. 

15 

16You should have received a copy of the GNU General Public License 

17along with bundesliga-tippspiel. If not, see <http://www.gnu.org/licenses/>. 

18LICENSE""" 

19 

20from typing import Tuple 

21 

22 

23def get_team_data(team_name: str) -> Tuple[str, str, str, Tuple[str, str]]: 

24 """ 

25 Generates team short_names, abbreviations and icon URLs for teams 

26 :param team_name: The team's full name as specified by OpenLigaDB 

27 :return: A tuple containing the 

28 name, short_name, abbreviation, svg URL, png URL 

29 """ 

30 # Tuples: abbrv: openligadb name, full name, short name, logos 

31 team_map = { 

32 "FCN": ( 

33 "1. FC Nürnberg", "1. FC Nürnberg", "1. FC Nürnberg", 

34 wikimedia_icon_urls("commons/f/fa/1._FC_Nürnberg_logo.svg") 

35 ), 

36 "M05": ( 

37 "1. FSV Mainz 05", "1. FSV Mainz 05", "FSV Mainz 05", 

38 wikimedia_icon_urls("commons/0/0b/FSV_Mainz_05_Logo.svg") 

39 ), 

40 "B04": ( 

41 "Bayer Leverkusen", "Bayer 04 Leverkusen", "Bayer Leverkusen", 

42 wikimedia_icon_urls("de/f/f7/Bayer_Leverkusen_Logo.svg") 

43 ), 

44 "BVB": ( 

45 "Borussia Dortmund", "Borussia Dortmund", "BVB Dortmund", 

46 wikimedia_icon_urls("commons/6/67/Borussia_Dortmund_logo.svg") 

47 ), 

48 "BMG": ( 

49 "Borussia Mönchengladbach", "Borussia Mönchengladbach", 

50 "M'Gladbach", wikimedia_icon_urls("commons/8/81/Borussia_" 

51 "Mönchengladbach_logo.svg") 

52 ), 

53 "SGE": ( 

54 "Eintracht Frankfurt", "Eintracht Frankfurt", "Frankfurt", 

55 wikimedia_icon_urls("commons/0/04/Eintracht_Frankfurt_Logo.svg") 

56 ), 

57 "FCA": ( 

58 "FC Augsburg", "FC Augsburg", "FC Augsburg", 

59 wikimedia_icon_urls("de/b/b5/Logo_FC_Augsburg.svg") 

60 ), 

61 "FCB": ( 

62 "FC Bayern München", "FC Bayern München", "FC Bayern", 

63 wikimedia_icon_urls("commons/1/1b/" 

64 "FC_Bayern_München_logo_(2017).svg") 

65 ), 

66 "S04": ( 

67 "FC Schalke 04", "FC Schalke 04", "Schalke 04", 

68 wikimedia_icon_urls("commons/6/6d/FC_Schalke_04_Logo.svg") 

69 ), 

70 "F95": ( 

71 "Fortuna Düsseldorf", "Fortuna Düsseldorf", "Düsseldorf", 

72 wikimedia_icon_urls("commons/9/94/Fortuna_D%C3%BCsseldorf.svg") 

73 ), 

74 "H96": ( 

75 "Hannover 96", "Hannover 96", "Hannover 96", 

76 wikimedia_icon_urls("commons/c/cd/Hannover_96_Logo.svg") 

77 ), 

78 "BSC": ( 

79 "Hertha BSC", "Hertha BSC Berlin", "Hertha BSC", 

80 wikimedia_icon_urls("commons/8/81/Hertha_BSC_Logo_2012.svg") 

81 ), 

82 "RBL": ( 

83 "RB Leipzig", "RB Leibzig", "RB Leibzig", 

84 wikimedia_icon_urls("it/c/cc/RB_Leipzig_primo_logo.svg") 

85 ), 

86 "SCF": ( 

87 "SC Freiburg", "SC Freiburg", "SC Freiburg", 

88 wikimedia_icon_urls("de/8/88/Logo-SC_Freiburg.svg") 

89 ), 

90 "TSG": ( 

91 "TSG 1899 Hoffenheim", "TSG 1899 Hoffenheim", "TSG Hoffenheim", 

92 wikimedia_icon_urls("commons/e/e7/Logo_TSG_Hoffenheim.svg") 

93 ), 

94 "VFB": ( 

95 "VfB Stuttgart", "VFB Stuttgart", "VFB Stuttgart", 

96 wikimedia_icon_urls("commons/e/eb/VfB_Stuttgart_1893_Logo.svg") 

97 ), 

98 "WOB": ( 

99 "VfL Wolfsburg", "VFL Wolfsburg", "VFL Wolfsburg", 

100 wikimedia_icon_urls("commons/c/ce/VfL_Wolfsburg_Logo.svg") 

101 ), 

102 "BRE": ( 

103 "Werder Bremen", "SV Werder Bremen", "Werder Bremen", 

104 wikimedia_icon_urls("commons/b/be/SV-Werder-Bremen-Logo.svg") 

105 ), 

106 "FCU": ( 

107 "1. FC Union Berlin", "1. FC Union Berlin", "Union Berlin", 

108 wikimedia_icon_urls("fr/0/0a/1._FC_Union_Berlin_-_Logo.svg") 

109 ), 

110 "SCP": ( 

111 "SC Paderborn 07", "SC Paderborn 07", "Paderborn", 

112 wikimedia_icon_urls("en/b/b3/SC_Paderborn_07_logo.svg") 

113 ), 

114 "KOE": ( 

115 "1. FC Köln", "1. FC Köln", "1. FC Köln", 

116 wikimedia_icon_urls("en/5/53/FC_Cologne_logo.svg") 

117 ), 

118 "DSC": ( 

119 "Arminia Bielefeld", "Arminia Bielefeld", "Bielefeld", 

120 wikimedia_icon_urls("commons/2/26/Arminia-wappen-2021.svg") 

121 ), 

122 "SGF": ( 

123 "SpVgg Greuther Fürth", "SpVgg Greuther Fürth", "Greuther Fürth", 

124 wikimedia_icon_urls("de/b/b1/SpVgg_Greuther_Fürth_2017.svg") 

125 ), 

126 "BOC": ( 

127 "VfL Bochum", "VfL Bochum", "VfL Bochum", 

128 wikimedia_icon_urls("commons/7/72/VfL_Bochum_logo.svg") 

129 ), 

130 "HDH": ( 

131 "1. FC Heidenheim 1846", "1. FC Heidenheim", "Heidenheim", 

132 wikimedia_icon_urls("commons/9/9d/1._FC_Heidenheim_1846.svg") 

133 ), 

134 "AUE": ( 

135 "Erzgebirge Aue", "Erzgebirge Aue", "Erzgebirge Aue", 

136 wikimedia_icon_urls("en/9/9e/FC_Erzgebirge_Aue_logo.svg") 

137 ), 

138 "FCH": ( 

139 "FC Hansa Rostock", "FC Hansa Rostock", "Hansa Rostock", 

140 wikimedia_icon_urls("commons/8/8f/F.C._Hansa_Rostock_Logo.svg") 

141 ), 

142 "FCI": ( 

143 "FC Ingolstadt 04", "FC Ingolstadt 04", "FC Ingolstadt", 

144 wikimedia_icon_urls("en/0/0b/FC_Ingolstadt_04_logo.svg") 

145 ), 

146 "STP": ( 

147 "FC St. Pauli", "FC St. Pauli", "St. Pauli", 

148 wikimedia_icon_urls("en/8/8f/FC_St._Pauli_logo_%282018%29.svg") 

149 ), 

150 "HSV": ( 

151 "Hamburger SV", "Hamburger SV", "Hamburger SV", 

152 wikimedia_icon_urls("commons/f/f7/Hamburger_SV_logo.svg") 

153 ), 

154 "KIE": ( 

155 "Holstein Kiel", "Holstein Kiel", "Holstein Kiel", 

156 wikimedia_icon_urls("commons/3/30/Holstein_Kiel_Logo.svg") 

157 ), 

158 "SSV": ( 

159 "Jahn Regensburg", "SSV Jahn Regensburg", "Jahn Regensburg", 

160 wikimedia_icon_urls("commons/3/3d/Jahn_Regensburg_logo2014.svg") 

161 ), 

162 "KSC": ( 

163 "Karlsruher SC", "Karlsruher SC", "Karlsruher SC", 

164 wikimedia_icon_urls("commons/c/c8/Karlsruher_SC_Logo_2.svg") 

165 ), 

166 "SGD": ( 

167 "SG Dynamo Dresden", "SG Dynamo Dresden", "Dynamo Dresden", 

168 wikimedia_icon_urls("en/0/06/Dynamo_Dresden_logo_2011.svg") 

169 ), 

170 "D98": ( 

171 "SV Darmstadt 98", "SV Darmstadt 98", "SV Darmstadt", 

172 wikimedia_icon_urls("en/9/92/SV_Darmstadt_98_logo.svg") 

173 ), 

174 "SVS": ( 

175 "SV Sandhausen", "SV Sandhausen", "SV Sandhausen", 

176 wikimedia_icon_urls("commons/d/d3/SV_Sandhausen.svg") 

177 ), 

178 "FCK": ( 

179 "1. FC Kaiserslautern", "1. FC Kaiserslautern", "Kaiserslautern", 

180 wikimedia_icon_urls("commons/d/d3/Logo_1_FC_Kaiserslautern.svg") 

181 ), 

182 "FCM": ( 

183 "1. FC Magdeburg", "1. FC Magdeburg", "Magdeburg", 

184 wikimedia_icon_urls("commons/8/84/1._FC_Magdeburg.svg") 

185 ), 

186 "FCS": ( 

187 "1. FC Saarbrücken", "1. FC Saarbrücken", "Saarbrücken", 

188 wikimedia_icon_urls("de/f/ff/1._FC_Saarbr%C3%BCcken.svg") 

189 ), 

190 "BRA": ( 

191 "Eintracht Braunschweig", "Eintracht Braunschweig", "Braunschweig", 

192 wikimedia_icon_urls("de/4/45/Logo_Eintracht_Braunschweig.svg") 

193 ), 

194 "VBE": ( 

195 "FC Viktoria 1889 Berlin", "FC Viktoria Berlin", "Viktoria Berlin", 

196 wikimedia_icon_urls( 

197 "commons/4/40/FC_Viktoria_1889_Berlin_Logo.svg") 

198 ), 

199 "VKO": ( 

200 "FC Viktoria Köln", "FC Viktoria Köln", "Viktoria Köln", 

201 wikimedia_icon_urls( 

202 "commons/d/dc/FC_Viktoria_K%C3%B6ln_1904_Logo.svg") 

203 ), 

204 "HFC": ( 

205 "Hallescher FC", "Hallescher FC", "Halle", 

206 wikimedia_icon_urls("commons/e/e1/Hallescher_FC.svg") 

207 ), 

208 "MSV": ( 

209 "MSV Duisburg", "MSV Duisburg", "Duisburg", 

210 wikimedia_icon_urls("commons/0/02/Msv_duisburg_%282017%29.svg") 

211 ), 

212 "SC2": ( 

213 "SC Freiburg II", "SC Freiburg II", "Freiburg II", 

214 wikimedia_icon_urls("de/8/88/Logo-SC_Freiburg.svg") 

215 ), 

216 "SCV": ( 

217 "SC Verl", "SC Verl", "Verl", 

218 wikimedia_icon_urls("commons/c/ce/SC_Verl_Logo.svg") 

219 ), 

220 "SVM": ( 

221 "SV Meppen", "SV Meppen", "Meppen", 

222 wikimedia_icon_urls("commons/4/45/Logo_SV_Meppen_2019.svg") 

223 ), 

224 "MAN": ( 

225 "SV Waldhof Mannheim", "SV Waldhof Mannheim", "Mannheim", 

226 wikimedia_icon_urls("commons/1/1c/SV_Waldhof_Mannheim_Wappen.svg") 

227 ), 

228 "WIE": ( 

229 "SV Wehen Wiesbaden", "SV Wehen Wiesbaden", "Wiesbaden", 

230 wikimedia_icon_urls("de/3/3d/Logo_SV_Wehen_Wiesbaden.svg") 

231 ), 

232 "MÜN": ( 

233 "TSV 1860 München", "TSV 1860 München", "1860 München", 

234 wikimedia_icon_urls("commons/4/48/TSV_1860_M%C3%BCnchen.svg") 

235 ), 

236 "HAV": ( 

237 "TSV Havelse", "TSV Havelse", "Havelse", 

238 wikimedia_icon_urls("commons/8/89/TSV_Havelse_logo.svg") 

239 ), 

240 "TÜR": ( 

241 "Türkgücü München", "Türkgücü München", "Türkgücü", 

242 wikimedia_icon_urls("commons/f/fe/T%C3%BCrkg%C3%BCc%C3%BC_" 

243 "M%C3%BCnchen_Logo.svg") 

244 ), 

245 "OSN": ( 

246 "VfL Osnabrück", "VfL Osnabrück", "Osnabrück", 

247 wikimedia_icon_urls( 

248 "commons/5/59/Logo_VfL_Osnabrueck_since_2017.svg") 

249 ), 

250 "WÜR": ( 

251 "Würzburger Kickers", "Würzburger Kickers", "Würzburg", 

252 wikimedia_icon_urls( 

253 "commons/0/0c/W%C3%BCrzburger_Kickers_Logo.svg") 

254 ), 

255 "BV2": ( 

256 "Borussia Dortmund II", "Borussia Dortmund II", "Dortmund II", 

257 wikimedia_icon_urls("commons/6/67/Borussia_Dortmund_logo.svg") 

258 ), 

259 "ZWI": ( 

260 "FSV Zwickau", "FSV Zwickau", "Zwickau", 

261 wikimedia_icon_urls("de/0/01/FSV_Zwickau_Logo.svg") 

262 ) 

263 } 

264 openligadb_map = { 

265 info[0]: ( 

266 info[1], 

267 info[2], 

268 abbreviation, 

269 info[3] 

270 ) 

271 for abbreviation, info in team_map.items() 

272 } 

273 return openligadb_map[team_name] 

274 

275 

276def wikimedia_icon_urls(path: str, png_size: int = 500) -> Tuple[str, str]: 

277 """ 

278 Generates URL paths to wikimedia-hosted SVG and PNG files 

279 :param path: The URL path to the SVG file (without the wikimedia part) 

280 :param png_size: The size of the PNG file 

281 :return: The URL path to the SVG File, PNG file 

282 """ 

283 wikimedia = "https://upload.wikimedia.org/wikipedia" 

284 base, specific = path.split("/", 1) 

285 svg_filename = path.rsplit("/", 1)[1] 

286 

287 svg_url = "{}/{}".format(wikimedia, path) 

288 png_url = "{}/{}/thumb/{}/{}px-{}.png".format( 

289 wikimedia, base, specific, png_size, svg_filename 

290 ) 

291 

292 return svg_url, png_url