Example #1
0
def timeline(request, username, child_slug):
    child = get_object_or_404(Child, user__username=username, slug=child_slug)
    children = Child.objects.filter(user__username__exact=username)

    facebook_events = []
    for facebook_source in child.facebook_sources.all():
        events_key = '%s_%s' % (facebook_source.uid, make_uri_title(facebook_source.keywords))
        events = cache.get(events_key)
        if not events:
            events = keywords_present(facebook.list_posts(facebook_source.access_token, first_5=True), comma_split(facebook_source.keywords), facebook.post_text)
            cache.set(events_key, events, 24 * 3600)
        facebook_events.extend(events)

    youtube_source = child.youtube_source
    youtube_events = []
    if youtube_source.usernames:
        for youtube_user in comma_split(youtube_source.usernames):
            youtube_events.extend(keywords_present(youtube.list_videos(youtube_user), comma_split(youtube_source.keywords), lambda video: video.title))


    events = []
    events.extend([FacebookEvent(post) for post in facebook_events])
    events.extend([YouTubeEvent(video) for video in youtube_events])

    events_json = json.dumps(events, cls=ObjectEncoder)
    return render(request, "timeline/timeline.html",
                  { 'events' : events_json, 'children' : children, 'username' : username, 'current_child_slug' : child_slug})
Example #2
0
 def clean_name(self):
     name = self.cleaned_data['name']
     try:
         Child.objects.get(user=self.user, slug=make_uri_title(name))
     except Child.DoesNotExist:
         return name
     raise forms.ValidationError('A child with that name already exists.')
Example #3
0
 def save(self, *args, **kwargs):
     self.slug = make_uri_title(self.name)
     return super(Child, self).save(*args, **kwargs)