Skip to content

Commit fd5d005

Browse files
committed
fetching games
1 parent 7d946de commit fd5d005

File tree

1 file changed

+79
-58
lines changed

1 file changed

+79
-58
lines changed

app.py

+79-58
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
from flask import Flask, jsonify
1+
from flask import abort, Flask, jsonify
22
import sqlite3
3+
import re
34
from Suomipelit.jsonencoder import OmaEncoder
45
from Suomipelit.models import Peli, Peliarvostelu, Kappale, Kuva
56

@@ -11,69 +12,89 @@ def pelit():
1112
return jsonify(lataa_pelit())
1213

1314
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
1717

18+
c = connection.cursor()
1819
pelit = []
19-
20-
2120
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)
7422
pelit.append(peli)
7523

7624
# print(kappaleet)
7725
return pelit
7826

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+
79100

0 commit comments

Comments
 (0)