Save prices to database (sqlite)

This commit is contained in:
2022-07-10 21:07:06 +02:00
parent dfb8edc01b
commit 6222214a89
3 changed files with 43 additions and 1 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*.db
__pycache__

View File

@@ -1,10 +1,13 @@
#! /usr/bin/env python3
# from bottle import hook, request, route, run, static_file, view
from datetime import date
from models import Price, IntegrityError
import requests
import json
query = """query {
getProductGroups(category: 1, zipcode: 1184) {
name
@@ -28,8 +31,21 @@ def get_price():
return product["default_price_tax"]
def store_current_price():
today = date.today()
# Get price returns a float (price per L)
# We store an int (price per m^3)
price = int(get_price() * 1000)
try:
Price.create(date=today, price=price)
except IntegrityError:
print("Price for today already in database, not writing")
return price
def main():
print(get_price())
store_current_price()
if __name__ == "__main__":

24
models.py Normal file
View File

@@ -0,0 +1,24 @@
from peewee import SqliteDatabase
from peewee import Model
from peewee import AutoField, DateField, IntegerField
from peewee import IntegrityError
# SQLite database using WAL journal mode and 64MB cache.
db = SqliteDatabase("fioul.db")
class BaseModel(Model):
class Meta:
database = db
class Price(BaseModel):
id = AutoField()
date = DateField(unique=True)
price = IntegerField()
def init():
db.connect()
db.create_tables([Price])