Save prices to database (sqlite)
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.db
|
||||
__pycache__
|
||||
18
fioul.py
18
fioul.py
@@ -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
24
models.py
Normal 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])
|
||||
Reference in New Issue
Block a user