remove unnecessary imports
[mygpo.git] / mygpo / data / historic.py
blob6e99718d91f1859ae4989851c6518cccfda6144b
1 from mygpo.api.models import Podcast, SubscriptionAction
2 from mygpo.data.models import HistoricPodcastData
3 from mygpo.utils import daterange
4 from datetime import date, timedelta
7 def all_podcasts():
8 for p in Podcast.objects.all().iterator():
9 calc_podcast(p)
12 def calc_podcast(podcast):
14 latest_historic = HistoricPodcastData.objects.filter(podcast=podcast).order_by('-date')
15 if latest_historic.count() > 0:
16 start = latest_historic[0].date + timedelta(days=1)
17 prev = latest_historic[0].subscriber_count
19 else:
20 sas = SubscriptionAction.objects.filter(podcast=podcast).order_by('timestamp')
21 if sas.exists():
22 first = sas[0]
23 start = first.timestamp.date()
24 else:
25 start = date.today()
26 prev = 0
28 for day in daterange(start, date.today() - timedelta(days=1)):
29 nextday = day + timedelta(days=1)
30 act = [x['action'] for x in SubscriptionAction.objects.filter(podcast=podcast, timestamp__range=(day, nextday)).values('action')]
31 prev += sum(act)
33 rec = HistoricPodcastData.objects.get_or_create(podcast=podcast, date=day, defaults={'subscriber_count': prev})