1
- from flask import Flask , jsonify
1
+ from flask import abort , Flask , jsonify
2
2
import sqlite3
3
+ import re
3
4
from Suomipelit .jsonencoder import OmaEncoder
4
5
from Suomipelit .models import Peli , Peliarvostelu , Kappale , Kuva
5
6
@@ -11,69 +12,89 @@ def pelit():
11
12
return jsonify (lataa_pelit ())
12
13
13
14
def lataa_pelit ():
14
- conn = sqlite3 .connect ("suomipelit.db" )
15
- conn .row_factory = sqlite3 .Row
16
- c = conn .cursor ()
15
+ connection = sqlite3 .connect ("suomipelit.db" )
16
+ connection .row_factory = sqlite3 .Row
17
17
18
+ c = connection .cursor ()
18
19
pelit = []
19
-
20
-
21
20
for pelirivi in c .execute ("SELECT * FROM pelit order by id asc LIMIT 0,5" ):
22
- peli = Peli (pelirivi ["id" ])
23
- peli .nimi = pelirivi ["nimi" ]
24
- peli .tekija = pelirivi ["tekija" ]
25
- peli .url = pelirivi ["url" ]
26
- peli .kuvaus = pelirivi ["kuvaus" ]
27
- peli .vaatimukset = pelirivi ["vaatimukset" ]
28
-
29
- pelikuva = Kuva (pelirivi ["id" ])
30
- pelikuva .asemointi = None
31
- pelikuva .kuvateksti = None
32
- if pelirivi ["kuva_iso" ] != None and len (pelirivi ["kuva_iso" ]) > 0 :
33
- pelikuva .tiedosto = pelirivi ["kuva_iso" ]
34
- else :
35
- pelikuva .tiedosto = pelirivi ["kuva" ]
36
-
37
- peli .kuva = pelikuva
38
-
39
-
40
- if pelirivi ["uusittu" ] == 1 :
41
- arvostelu = Peliarvostelu ()
42
-
43
- arvostelu .julkaistu = pelirivi ["paivays" ]
44
- arvostelu .kirjoittaja = pelirivi ["user" ]
45
-
46
- kappaleet = []
47
-
48
- for rivi in conn .cursor ().execute ("SELECT * FROM kappale where artikkeli_id = ? and kaytto='PELI' order by artikkeli_id asc, sivu asc, jarjestys" , (pelirivi ["id" ],)):
49
- kappale = Kappale (rivi ["id" ], rivi ["otsikko" ], rivi ["teksti" ])
50
- kappale .artikkeliId = rivi ["artikkeli_id" ]
51
- kappale .sivu = rivi ["sivu" ]
52
-
53
- if len (rivi ["kuva" ]) > 0 :
54
- kuva = Kuva (rivi ["id" ])
55
- if rivi ["kuva_iso" ] != None and len (rivi ["kuva_iso" ]) > 0 :
56
- kuva .tiedosto = rivi ["kuva_iso" ]
57
- else :
58
- kuva .tiedosto = rivi ["kuva" ]
59
- kuva .asemointi = rivi ["asemointi" ]
60
- kuva .kuvateksti = rivi ["kuvateksti" ]
61
- else :
62
- kuva = None
63
-
64
- kappale .kuva = kuva
65
- kappaleet .append (kappale )
66
-
67
- arvostelu .kappaleet = kappaleet
68
-
69
- peli .arvostelu = arvostelu
70
- else :
71
- peli .arvostelu = None
72
-
73
-
21
+ peli = muodostaPeli (pelirivi , c )
74
22
pelit .append (peli )
75
23
76
24
# print(kappaleet)
77
25
return pelit
78
26
27
+ @app .route ("/api/pelit/<id>" )
28
+ def peli (id ):
29
+ #id voi olla vain numeroita
30
+ clean_id = int (id )
31
+ peli = lataa_peli (clean_id )
32
+ if peli is not None :
33
+ return jsonify (peli )
34
+ abort (404 )
35
+
36
+ def lataa_peli (id ):
37
+ connection = sqlite3 .connect ("suomipelit.db" )
38
+ connection .row_factory = sqlite3 .Row
39
+ c = connection .cursor ()
40
+
41
+ c .execute ("select * from pelit where id = ?" , (id ,))
42
+ peli = c .fetchone ()
43
+ if peli is not None :
44
+ return muodostaPeli (peli , connection )
45
+ return None
46
+
47
+ def muodostaPeli (pelirivi , connection ):
48
+ peli = Peli (pelirivi ["id" ])
49
+ peli .nimi = pelirivi ["nimi" ]
50
+ peli .tekija = pelirivi ["tekija" ]
51
+ peli .url = pelirivi ["url" ]
52
+ peli .kuvaus = pelirivi ["kuvaus" ]
53
+ peli .vaatimukset = pelirivi ["vaatimukset" ]
54
+
55
+ pelikuva = Kuva (pelirivi ["id" ])
56
+ pelikuva .asemointi = None
57
+ pelikuva .kuvateksti = None
58
+ if pelirivi ["kuva_iso" ] != None and len (pelirivi ["kuva_iso" ]) > 0 :
59
+ pelikuva .tiedosto = pelirivi ["kuva_iso" ]
60
+ else :
61
+ pelikuva .tiedosto = pelirivi ["kuva" ]
62
+
63
+ peli .kuva = pelikuva
64
+
65
+
66
+ if pelirivi ["uusittu" ] == 1 :
67
+ arvostelu = Peliarvostelu ()
68
+
69
+ arvostelu .julkaistu = pelirivi ["paivays" ]
70
+ arvostelu .kirjoittaja = pelirivi ["user" ]
71
+
72
+ kappaleet = []
73
+
74
+ for rivi in connection .cursor ().execute ("SELECT * FROM kappale where artikkeli_id = ? and kaytto='PELI' order by artikkeli_id asc, sivu asc, jarjestys" , (pelirivi ["id" ],)):
75
+ kappale = Kappale (rivi ["id" ], rivi ["otsikko" ], rivi ["teksti" ])
76
+ kappale .artikkeliId = rivi ["artikkeli_id" ]
77
+ kappale .sivu = rivi ["sivu" ]
78
+
79
+ if len (rivi ["kuva" ]) > 0 :
80
+ kuva = Kuva (rivi ["id" ])
81
+ if rivi ["kuva_iso" ] != None and len (rivi ["kuva_iso" ]) > 0 :
82
+ kuva .tiedosto = rivi ["kuva_iso" ]
83
+ else :
84
+ kuva .tiedosto = rivi ["kuva" ]
85
+ kuva .asemointi = rivi ["asemointi" ]
86
+ kuva .kuvateksti = rivi ["kuvateksti" ]
87
+ else :
88
+ kuva = None
89
+
90
+ kappale .kuva = kuva
91
+ kappaleet .append (kappale )
92
+
93
+ arvostelu .kappaleet = kappaleet
94
+
95
+ peli .arvostelu = arvostelu
96
+ else :
97
+ peli .arvostelu = None
98
+ return peli
99
+
79
100
0 commit comments