Browse Source

changed to sqlite

master
rscmbbng 6 years ago
parent
commit
8e3b7b254a
  1. 1
      .gitignore
  2. 45
      slog.py

1
.gitignore

@ -1,3 +1,4 @@
__pychache__ __pychache__
solar_server_stats/* solar_server_stats/*
*.json *.json
*.db

45
slog.py

@ -1,52 +1,55 @@
import urllib.request, json, datetime,os import urllib.request, json, datetime,os
from urllib.error import URLError, HTTPError from urllib.error import URLError, HTTPError
from tinydb import TinyDB, Query import sqlite3
folder = 'solar_server_stats'
now = datetime.datetime.now() now = datetime.datetime.now()
day = now.strftime('%F') day = now.strftime('%F')
time = now.strftime('%H:%M')
url = 'https://solar.lowtechmagazine.com/api/stats.json' url = 'https://solar.lowtechmagazine.com/api/stats.json'
if not os.path.exists(folder):
os.mkdir(folder)
db = TinyDB(os.path.join(folder,day+'-stats.json')) if not os.path.exists('stats.db'):
db = sqlite3.connect('stats.db')
c = db.cursor()
c.execute("""CREATE TABLE stats(date text, time text, error text, server text)
""")
db.commit()
else:
db = sqlite3.connect('stats.db')
c = db.cursor()
request = urllib.request.Request(url)
stats = {} request = urllib.request.Request(url)
try: try:
response = urllib.request.urlopen(request) response = urllib.request.urlopen(request)
except HTTPError as e: except HTTPError as e:
# print('The server couldn\'t fulfill the request.') print('The server couldn\'t fulfill the request.')
# print('Error code: ', e.code) print('Error code: ', e.code)
error = e.code error = e.code
stats['server'] = None server = None
pass pass
except URLError as e: except URLError as e:
# print('We failed to reach a server.') print('We failed to reach a server.')
# print('Reason: ', e.reason) print('Reason: ', e.reason)
error = e.reason error = e.reason
stats['server'] = None server = None
pass pass
else: else:
# everything is fine # everything is fine
data = response.read().decode('utf-8') data = response.read().decode('utf-8')
stats['server'] = json.loads(data) server = data
error = None error = None
if error: if error:
stats['error'] = error.args[1] error = error.args[1]
else:
stats['error'] = error
stats['day'] = day
stats['time'] = now.strftime('%H:%M')
db.insert(stats)
c.execute("""INSERT INTO stats VALUES(?,?,?,?)""", (day, time, error, server))
db.commit()
db.close()
Loading…
Cancel
Save