Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import mysql.connector as mariadb
- import json
- import datetime
- from flask import Flask
- from flask_restful import reqparse, abort, Api, Resource
- import random
- app = Flask(__name__)
- api = Api(app)
- def decode(var):
- if isinstance(var,bytearray):
- return var.decode('utf-8')
- if isinstance(var,datetime.date):
- return str(var)
- if isinstance(var,int):
- return var
- if isinstance(var,str):
- return var
- return None
- def dictfetchall(cursor):
- desc = cursor.description
- return [dict(zip([col[0] for col in desc], map(decode,row)))
- for row in cursor.fetchall()]
- def getFixturesDate(date):
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- cursor.execute("select * from Fixtures natural join Matches where M_date = ?",(date,))
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getFixtures():
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor()
- cursor.execute("select * from Fixtures natural join Matches")
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getFixturesLeague(code):
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- cursor.execute("select * from Fixtures natural join Matches where League_code in (select League_code from League where League_name = ?)",(code,))
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getFixturesTeam(name):
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- cursor.execute("select * from Fixtures natural join Matches where Home_team = ? or Away_team = ?",(name,name,))
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getLeagueTable(code):
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- cursor.execute("select * from Standings where Team_name like ?",(code,))
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getPlayer(name):
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- cursor.execute("select * from Player natural join P_attribute where concat(fname,' ',l_name) = ?",(name,))
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getTeamStat(name):
- mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
- cursor = mariadb_connection.cursor(prepared = True)
- cursor.execute("select Captain,Manager,Stadium from Team where Team_name = ?",(name,))
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getTeamSquad(name):
- mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
- cursor = mariadb_connection.cursor(prepared = True)
- print(name)
- cursor.execute("select Player_id,fname,l_name,Pos,Image from Player where Team_name like ?",('%'+name+'%',))
- results = dictfetchall(cursor)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getMatchStat(code,week,no):
- mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
- cursor = mariadb_connection.cursor(prepared = True)
- print (code,week,no)
- cursor.execute("select fname,l_name,Team_name,Winner from Fixtures natural join Matches natural join Goals join Player where Goals.Player_name = Player.Player_id and League_code = ? and Gameweek = ? and Gameno = ?",(code,week,no,))
- results = dictfetchall(cursor)
- print(results)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getLeagueTeams(code):
- mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
- cursor = mariadb_connection.cursor(prepared = True)
- cursor.execute("select Team_name from Team where League_code in (select League_code from League where League_name = ?)",(code,))
- results = dictfetchall(cursor)
- print(results)
- json_results = json.dumps(results)
- cursor.close()
- mariadb_connection.close()
- return json_results
- def getGoals():
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- json_results = getFixtures()
- for i in json.loads(json_results):
- try:
- homeids = []
- awayids = []
- homeTeam = i["Home_team"].replace("FC","").strip()
- awayTeam = i["Away_team"].replace("FC","").strip()
- homeSquad = getTeamSquad(homeTeam)
- awaySquad = getTeamSquad(awayTeam)
- for x in json.loads(homeSquad):
- homeids.append(x['Player_id'])
- for y in json.loads(awaySquad):
- awayids.append(y['Player_id'])
- homeGoal = i['Home_team_score']
- awayGoal = i['Away_team_score']
- for j in range(homeGoal):
- a = random.choice(homeids)
- cursor.execute("insert into Goals values(?,?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],a,1,))
- for j in range(awayGoal):
- a = random.choice(awayids)
- cursor.execute("insert into Goals values(?,?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],a,1,))
- except Exception as e:
- print(e)
- continue
- mariadb_connection.commit()
- mariadb_connection.close()
- cursor.close()
- def getYellowCards():
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- json_results = getFixtures()
- for i in json.loads(json_results):
- try:
- homeids = []
- awayids = []
- homeTeam = i["Home_team"].replace("FC","").strip()
- awayTeam = i["Away_team"].replace("FC","").strip()
- homeSquad = getTeamSquad(homeTeam)
- awaySquad = getTeamSquad(awayTeam)
- for x in json.loads(homeSquad):
- homeids.append(x['Player_id'])
- for y in json.loads(awaySquad):
- awayids.append(y['Player_id'])
- a=random.randrange(100)
- b=random.randrange(100)
- if a%7 == 0 and a > 85:
- c = random.choice(homeids)
- cursor.execute("insert into Yellow_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],c,))
- if b%7 == 0 and b > 85:
- d = random.choice(awayids)
- cursor.execute("insert into Yellow_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],d,))
- except Exception as e:
- print(e)
- continue
- mariadb_connection.commit()
- cursor.close()
- mariadb_connection.close()
- def getRedCards():
- mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
- cursor = mariadb_connection.cursor(prepared = True)
- json_results = getFixtures()
- for i in json.loads(json_results):
- try:
- homeids = []
- awayids = []
- homeTeam = i["Home_team"].replace("FC","").strip()
- awayTeam = i["Away_team"].replace("FC","").strip()
- homeSquad = getTeamSquad(homeTeam)
- awaySquad = getTeamSquad(awayTeam)
- for x in json.loads(homeSquad):
- homeids.append(x['Player_id'])
- for y in json.loads(awaySquad):
- awayids.append(y['Player_id'])
- a=random.randrange(100)
- b=random.randrange(100)
- if a%7 == 0 and a > 91:
- c = random.choice(homeids)
- cursor.execute("insert into Red_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],c,))
- if b%7 == 0 and b > 91:
- d = random.choice(awayids)
- cursor.execute("insert into Red_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],d,))
- except Exception as e:
- print(e)
- continue
- mariadb_connection.commit()
- cursor.close()
- mariadb_connection.close()
- class Fixture_day(Resource):
- def get(self, date):
- resp = "{'result' : "+getFixturesDate(date).replace("\"","'") + "}"
- return resp
- class Fixture_league(Resource):
- def get(self,id):
- print(id)
- result = "{'result' : "+getFixturesLeague(id).replace("\"","'") + "}"
- return result
- class Fixture_team(Resource):
- def get(self,team):
- result = "{'result' : "+getFixturesTeam(team).replace("\"","'") + "}"
- return result
- class Standings(Resource):
- def get(self,leagueCode):
- result = "{'result' : "+getLeagueTable(leagueCode).replace("\"","'") + "}"
- return result
- class Player(Resource):
- def get(self,name):
- return "{'result' : "+getPlayer(name).replace("\"","'") + "}"
- class TeamStat(Resource):
- def get(self,name):
- result = "{'result' : "+getTeamStat(name).replace("\"","'") + "}"
- return result
- class TeamSquad(Resource):
- def get(self,name):
- result = "{'result' : "+getTeamSquad(name).replace("\"","'") + "}"
- return result
- class MatchStats(Resource):
- def get(self,code,week,no):
- result = "{'result' : "+getMatchStat(code,week,no).replace("\"","'")+ "}"
- return result
- class LeagueTeams(Resource):
- def get(self,code):
- result = "{'result' : "+getLeagueTeams(code).replace("\"","'")+"}"
- return result
- api.add_resource(Fixture_day, '/Fixture/day/<date>')
- api.add_resource(Fixture_team,'/Fixture/team/<team>')
- api.add_resource(Fixture_league,'/Fixture/league/<id>')
- api.add_resource(Standings,"/Standings/<leagueCode>")
- api.add_resource(LeagueTeams,"/League/Teams/<code>")
- api.add_resource(Player,"/Player/<name>")
- api.add_resource(TeamStat,"/Team/stat/<name>")
- api.add_resource(TeamSquad,"/Team/squad/<name>")
- api.add_resource(MatchStats,"/Match/<code>/<week>/<no>")
- if __name__ == '__main__':
- app.run(host= '0.0.0.0',port=5000,debug = True)
Add Comment
Please, Sign In to add comment