Пример #1
0
def update_fb_events():
    url = "https://graph.facebook.com/v2.3/"
    payload = {"access_token": FACEBOOK_ACCESS_TOKEN}

    for user_id, events in get_users().items():
        user = User.query.filter(User.fb_id == user_id).first()

        for chunk in utils.grouper(events):
            ids = ",".join(event_data["id"] for event_data in chunk)
            payload["ids"] = ids

            # new request to get complete information
            r = requests.get(url, params=payload)
            data = json.loads(r.text)

            for event_id, event_data in data.items():
                event = Event.query.filter(Event.fb_id == event_id).first()
                if event is None:
                    event = Event(fb_id=event_id)

                start = iso8601.parse_date(event_data["start_time"])
                event.start = start.replace(tzinfo=None)

                if "end_time" in event_data:
                    end = iso8601.parse_date(event_data["end_time"])
                    event.end = end.replace(tzinfo=None)

                event.user_id = user.id
                event.description = event_data.get("description", "")
                event.location = event_data.get('location', None)
                event.name = event_data['name']
                event.url = "https://www.facebook.com/" + event_data['id']

                db.session.add(event)
    db.session.commit()