Guest User

Untitled

a guest
Mar 23rd, 2017
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.94 KB | None | 0 0
  1. import mysql.connector as mariadb
  2. import json
  3. import datetime
  4. from flask import Flask
  5. from flask_restful import reqparse, abort, Api, Resource
  6. import random
  7. app = Flask(__name__)
  8. api = Api(app)
  9.  
  10. def decode(var):
  11. if isinstance(var,bytearray):
  12. return var.decode('utf-8')
  13. if isinstance(var,datetime.date):
  14. return str(var)
  15. if isinstance(var,int):
  16. return var
  17. if isinstance(var,str):
  18. return var
  19. return None
  20.  
  21. def dictfetchall(cursor):
  22. desc = cursor.description
  23. return [dict(zip([col[0] for col in desc], map(decode,row)))
  24. for row in cursor.fetchall()]
  25.  
  26. def getFixturesDate(date):
  27. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  28. cursor = mariadb_connection.cursor(prepared = True)
  29. cursor.execute("select * from Fixtures natural join Matches where M_date = ?",(date,))
  30. results = dictfetchall(cursor)
  31. json_results = json.dumps(results)
  32. cursor.close()
  33. mariadb_connection.close()
  34.  
  35. return json_results
  36.  
  37. def getFixtures():
  38. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  39. cursor = mariadb_connection.cursor()
  40. cursor.execute("select * from Fixtures natural join Matches")
  41. results = dictfetchall(cursor)
  42. json_results = json.dumps(results)
  43. cursor.close()
  44. mariadb_connection.close()
  45. return json_results
  46.  
  47. def getFixturesLeague(code):
  48. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  49. cursor = mariadb_connection.cursor(prepared = True)
  50. cursor.execute("select * from Fixtures natural join Matches where League_code in (select League_code from League where League_name = ?)",(code,))
  51. results = dictfetchall(cursor)
  52. json_results = json.dumps(results)
  53. cursor.close()
  54. mariadb_connection.close()
  55.  
  56. return json_results
  57.  
  58. def getFixturesTeam(name):
  59. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  60. cursor = mariadb_connection.cursor(prepared = True)
  61. cursor.execute("select * from Fixtures natural join Matches where Home_team = ? or Away_team = ?",(name,name,))
  62. results = dictfetchall(cursor)
  63. json_results = json.dumps(results)
  64. cursor.close()
  65. mariadb_connection.close()
  66.  
  67. return json_results
  68.  
  69. def getLeagueTable(code):
  70. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  71. cursor = mariadb_connection.cursor(prepared = True)
  72. cursor.execute("select * from Standings where Team_name like ?",(code,))
  73. results = dictfetchall(cursor)
  74. json_results = json.dumps(results)
  75. cursor.close()
  76. mariadb_connection.close()
  77.  
  78. return json_results
  79.  
  80.  
  81. def getPlayer(name):
  82. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  83. cursor = mariadb_connection.cursor(prepared = True)
  84. cursor.execute("select * from Player natural join P_attribute where concat(fname,' ',l_name) = ?",(name,))
  85. results = dictfetchall(cursor)
  86. json_results = json.dumps(results)
  87. cursor.close()
  88. mariadb_connection.close()
  89.  
  90. return json_results
  91.  
  92. def getTeamStat(name):
  93. mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
  94. cursor = mariadb_connection.cursor(prepared = True)
  95. cursor.execute("select Captain,Manager,Stadium from Team where Team_name = ?",(name,))
  96. results = dictfetchall(cursor)
  97. json_results = json.dumps(results)
  98. cursor.close()
  99. mariadb_connection.close()
  100.  
  101. return json_results
  102.  
  103. def getTeamSquad(name):
  104. mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
  105. cursor = mariadb_connection.cursor(prepared = True)
  106. print(name)
  107. cursor.execute("select Player_id,fname,l_name,Pos,Image from Player where Team_name like ?",('%'+name+'%',))
  108. results = dictfetchall(cursor)
  109. json_results = json.dumps(results)
  110. cursor.close()
  111. mariadb_connection.close()
  112.  
  113. return json_results
  114.  
  115. def getMatchStat(code,week,no):
  116. mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
  117. cursor = mariadb_connection.cursor(prepared = True)
  118. print (code,week,no)
  119. 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,))
  120. results = dictfetchall(cursor)
  121. print(results)
  122. json_results = json.dumps(results)
  123. cursor.close()
  124. mariadb_connection.close()
  125.  
  126. return json_results
  127.  
  128.  
  129. def getLeagueTeams(code):
  130. mariadb_connection = mariadb.connect(user="root",password="spd",database="Football")
  131. cursor = mariadb_connection.cursor(prepared = True)
  132. cursor.execute("select Team_name from Team where League_code in (select League_code from League where League_name = ?)",(code,))
  133. results = dictfetchall(cursor)
  134. print(results)
  135. json_results = json.dumps(results)
  136. cursor.close()
  137. mariadb_connection.close()
  138.  
  139. return json_results
  140.  
  141.  
  142.  
  143. def getGoals():
  144. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  145. cursor = mariadb_connection.cursor(prepared = True)
  146. json_results = getFixtures()
  147. for i in json.loads(json_results):
  148. try:
  149. homeids = []
  150. awayids = []
  151. homeTeam = i["Home_team"].replace("FC","").strip()
  152. awayTeam = i["Away_team"].replace("FC","").strip()
  153. homeSquad = getTeamSquad(homeTeam)
  154. awaySquad = getTeamSquad(awayTeam)
  155. for x in json.loads(homeSquad):
  156. homeids.append(x['Player_id'])
  157. for y in json.loads(awaySquad):
  158. awayids.append(y['Player_id'])
  159. homeGoal = i['Home_team_score']
  160. awayGoal = i['Away_team_score']
  161. for j in range(homeGoal):
  162. a = random.choice(homeids)
  163. cursor.execute("insert into Goals values(?,?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],a,1,))
  164. for j in range(awayGoal):
  165. a = random.choice(awayids)
  166. cursor.execute("insert into Goals values(?,?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],a,1,))
  167. except Exception as e:
  168. print(e)
  169. continue
  170.  
  171. mariadb_connection.commit()
  172. mariadb_connection.close()
  173. cursor.close()
  174.  
  175. def getYellowCards():
  176. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  177. cursor = mariadb_connection.cursor(prepared = True)
  178. json_results = getFixtures()
  179. for i in json.loads(json_results):
  180. try:
  181. homeids = []
  182. awayids = []
  183. homeTeam = i["Home_team"].replace("FC","").strip()
  184. awayTeam = i["Away_team"].replace("FC","").strip()
  185. homeSquad = getTeamSquad(homeTeam)
  186. awaySquad = getTeamSquad(awayTeam)
  187. for x in json.loads(homeSquad):
  188. homeids.append(x['Player_id'])
  189. for y in json.loads(awaySquad):
  190. awayids.append(y['Player_id'])
  191. a=random.randrange(100)
  192. b=random.randrange(100)
  193. if a%7 == 0 and a > 85:
  194. c = random.choice(homeids)
  195. cursor.execute("insert into Yellow_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],c,))
  196. if b%7 == 0 and b > 85:
  197. d = random.choice(awayids)
  198. cursor.execute("insert into Yellow_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],d,))
  199. except Exception as e:
  200. print(e)
  201. continue
  202. mariadb_connection.commit()
  203. cursor.close()
  204. mariadb_connection.close()
  205.  
  206. def getRedCards():
  207. mariadb_connection = mariadb.connect(user='root',password='spd',database='Football')
  208. cursor = mariadb_connection.cursor(prepared = True)
  209. json_results = getFixtures()
  210. for i in json.loads(json_results):
  211. try:
  212. homeids = []
  213. awayids = []
  214. homeTeam = i["Home_team"].replace("FC","").strip()
  215. awayTeam = i["Away_team"].replace("FC","").strip()
  216. homeSquad = getTeamSquad(homeTeam)
  217. awaySquad = getTeamSquad(awayTeam)
  218. for x in json.loads(homeSquad):
  219. homeids.append(x['Player_id'])
  220. for y in json.loads(awaySquad):
  221. awayids.append(y['Player_id'])
  222. a=random.randrange(100)
  223. b=random.randrange(100)
  224. if a%7 == 0 and a > 91:
  225. c = random.choice(homeids)
  226. cursor.execute("insert into Red_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],c,))
  227. if b%7 == 0 and b > 91:
  228. d = random.choice(awayids)
  229. cursor.execute("insert into Red_card values(?,?,?,?)",(i['League_code'],i['Gameweek'],i['Gameno'],d,))
  230. except Exception as e:
  231. print(e)
  232. continue
  233. mariadb_connection.commit()
  234. cursor.close()
  235. mariadb_connection.close()
  236.  
  237. class Fixture_day(Resource):
  238. def get(self, date):
  239. resp = "{'result' : "+getFixturesDate(date).replace("\"","'") + "}"
  240. return resp
  241.  
  242. class Fixture_league(Resource):
  243. def get(self,id):
  244. print(id)
  245. result = "{'result' : "+getFixturesLeague(id).replace("\"","'") + "}"
  246. return result
  247.  
  248. class Fixture_team(Resource):
  249. def get(self,team):
  250. result = "{'result' : "+getFixturesTeam(team).replace("\"","'") + "}"
  251. return result
  252.  
  253. class Standings(Resource):
  254. def get(self,leagueCode):
  255. result = "{'result' : "+getLeagueTable(leagueCode).replace("\"","'") + "}"
  256. return result
  257.  
  258. class Player(Resource):
  259. def get(self,name):
  260. return "{'result' : "+getPlayer(name).replace("\"","'") + "}"
  261.  
  262. class TeamStat(Resource):
  263. def get(self,name):
  264. result = "{'result' : "+getTeamStat(name).replace("\"","'") + "}"
  265. return result
  266.  
  267. class TeamSquad(Resource):
  268. def get(self,name):
  269. result = "{'result' : "+getTeamSquad(name).replace("\"","'") + "}"
  270. return result
  271.  
  272. class MatchStats(Resource):
  273. def get(self,code,week,no):
  274. result = "{'result' : "+getMatchStat(code,week,no).replace("\"","'")+ "}"
  275. return result
  276.  
  277. class LeagueTeams(Resource):
  278. def get(self,code):
  279. result = "{'result' : "+getLeagueTeams(code).replace("\"","'")+"}"
  280. return result
  281.  
  282. api.add_resource(Fixture_day, '/Fixture/day/<date>')
  283. api.add_resource(Fixture_team,'/Fixture/team/<team>')
  284. api.add_resource(Fixture_league,'/Fixture/league/<id>')
  285. api.add_resource(Standings,"/Standings/<leagueCode>")
  286. api.add_resource(LeagueTeams,"/League/Teams/<code>")
  287. api.add_resource(Player,"/Player/<name>")
  288. api.add_resource(TeamStat,"/Team/stat/<name>")
  289. api.add_resource(TeamSquad,"/Team/squad/<name>")
  290. api.add_resource(MatchStats,"/Match/<code>/<week>/<no>")
  291.  
  292. if __name__ == '__main__':
  293. app.run(host= '0.0.0.0',port=5000,debug = True)
Add Comment
Please, Sign In to add comment