#!/usr/bin/env python # -*- coding: utf-8 -*- # # Copyright (c) 2015-2016 by Martin Bley (martin@mb-oss.de) # # This file is part of TipPy. # # TipPy is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # TipPy is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with TipPy. If not, see . # import locale import urllib.error import urllib.parse import urllib.request from suds.client import Client class OpenLiga(object): version = "0.1" error = "" proxyurl = None debug = None client = None def __init__(self, proxyurl=None, debug=False): # set locale to environment (for dispaying localized dates) locale.setlocale(locale.LC_TIME, "") self.debug = debug # get a SUDS client object if self.proxyurl is None: try: self.client = Client( 'http://www.openligadb.de/' + 'Webservices/Sportsdata.asmx?WSDL') except (urllib.error.URLError): self.error += "Connect to webservice failed." else: try: t = suds.transport.http.HttpTransport() proxy = urllib.request.ProxyHandler({'http': proxyurl}) opener = urllib.request.build_opener(proxy) t.urlopener = opener self.client = suds.client.Client( 'http://www.openligadb.de/Webservices/' + 'Sportsdata.asmx?WSDL', transport=t) except urllib.error.URLError as e: self.error += "Connect to webservice failed " \ + "(via proxy " + proxyurl + "): " + str(e) + "\n" def getSeason(self, season, league='bl1'): """ Get the whole season. Args: season and league shortcut (optional) """ return (self.client.service.GetMatchdataByLeagueSaison( leagueShortcut=league, leagueSaison=season) ) def getMatchday(self, season, matchdaynumber, league='bl1'): """ Get matchday. Args: season, matchdaynumber and league shortcut (optional) """ return (self.client.service.GetMatchdataByGroupLeagueSaison( groupOrderID=matchdaynumber, leagueShortcut=league, leagueSaison=season) ) def getTeams(self, season, league='bl1'): return (self.client.service.GetTeamsByLeagueSaison( leagueShortcut=league, leagueSaison=season) ) def getCurrentGroup(self, league): return (self.client.service.GetCurrentGroup( leagueShortcut=league) )