This commit is contained in:
Alexander Munch-Hansen 2019-04-06 17:49:45 +02:00
commit 89d7c07557
4 changed files with 11 additions and 9 deletions

View File

@ -12,7 +12,6 @@ source venv/bin/activate
echo Installing required Python packages
pip install -Ur requirements.txt
function run() {
python -m nightr
}

View File

@ -1,18 +1,17 @@
import inspect
import logging
import statistics
from dataclasses import asdict
from datetime import timedelta
from typing import List
import requests_cache
from flask import Flask, jsonify
from flask import Flask, jsonify, logging
from .strategies import miloStrats, iss, cars_in_traffic, tide_strat, upstairs_neighbour
from .util import Context
logger = logging.getLogger(__name__)
app = Flask(__name__)
logger = logging.create_logger(app)
requests_cache.install_cache("requests_cache", expire_after=timedelta(minutes=10))
@ -39,9 +38,10 @@ def probabilities():
try:
prediction = strategy(context)
except Exception as e:
logger.warning("Strategy %s failed: %s", name, e)
logger.warning("Strategy '%s' failed:", name)
logger.exception(e)
continue
predictions.append({
"name": name,
"description": inspect.getdoc(strategy),

View File

@ -9,7 +9,6 @@ from timezonefinder import TimezoneFinder
from ..util import Context, Prediction
logger = logging.getLogger(__name__)
tf = TimezoneFinder(in_memory=True)

View File

@ -14,8 +14,9 @@ def camImgStrat(context : Context) -> Prediction:
"""
img = cv2.imread(str(Path(__file__).parent.joinpath("night.jpg")), 0)
average = img.mean(axis=0).mean(axis=0)
print(average)
p = Prediction()
p.weight = 0.7
if average < 100:
p.probability = 1.0
p.reasons.append('Image was dark')
@ -33,6 +34,7 @@ def australiaStrat(context : Context) -> Prediction:
t = datetime.now().astimezone(australia)
hour = t.hour
p = Prediction()
if hour > 22 or hour < 6:
p.probability = 0.0
p.reasons.append('It\'s night-time in Australia')
@ -55,9 +57,11 @@ def tv2newsStrat(context : Context) -> Prediction:
avg_delta += d
avg_timestamp = avg_delta // len(delta_times) // 60
p = Prediction()
print('average time between articles on tv2:', avg_timestamp, 'minutes')
if avg_timestamp < 0:
p.weight = 0.0
else:
p.weight = 0.7
p.probability = 1.0 if avg_timestamp > 50 else 0.0
p.reasons.append('There were ' + ('few' if avg_timestamp > 50 else 'many') + ' recent articles on TV2 News')
print(p.reasons[0])
return p