diff options
Diffstat (limited to 'app/unused_apps/daily/retriever.py')
-rw-r--r-- | app/unused_apps/daily/retriever.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/app/unused_apps/daily/retriever.py b/app/unused_apps/daily/retriever.py new file mode 100644 index 0000000..3b7da87 --- /dev/null +++ b/app/unused_apps/daily/retriever.py @@ -0,0 +1,53 @@ +from datetime import datetime +import requests +import json + +from django.utils import timezone +from django.template.loader import render_to_string +from django.contrib.auth.models import User +from django.db.models import Q + +from .models import CheckIn, Daily, Weather + + +def create_daily(): + users = User.objects.filter(Q(username="luxagraf") | Q(username="corrinne")) + for user in users: + d, created = Daily.objects.get_or_create( + user=user, + date=timezone.now() + ) + if not created: + print("already existed") + + +def get_yesterday_weather(): + current = CheckIn.objects.latest() + PB_URL = "http://api.wunderground.com/api/39c3ce6a12b14e75/yesterday/q/%s,%s.json" % (current.lat, current.lon) + r = requests.get(PB_URL) + weather = json.loads(r.text) + data = weather['history']['dailysummary'][0] + date = "%s %s %s" % (data['date']['year'], data['date']['mon'], data['date']['mday']) + dt = datetime.strptime(date, "%Y %m %d") + w, created = Weather.objects.get_or_create( + point=current.point, + date=dt, + temp_max=data['maxtempi'], + temp_min=data['mintempi'], + temp_mean=data['meantempi'], + wind_mean=data['meanwindspdi'], + wind_max=data['maxwspdi'], + humidity=data['humidity'], + snow_amount=data['snowfalli'], + rain_amount=data['precipi'], + fog=int(data['fog']), + rain=int(data['rain']), + snow=int(data['snow']), + hail=int(data['hail']), + thunder=int(data['thunder']), + ) + dailies = Daily.objects.filter(date=dt) + for d in dailies: + d.weather = w + d.weather_human = render_to_string('human_weather.txt', {'object': w}).strip() + d.save() |