예제 #1
0
def createNewEvent(event):
    newEvents = []
    newEvent = {
        'facebook_id': event['id'],
        'title': event['name'],
        'content': event['description']
    }

    if event.get('cover') != None:
        newEvent['picture_url'] = event['cover']['source']

    if event.get('event_times') != None: # we are dealing with a recurring event with multiple start- and endtimes and it's own facebook id
        for subEvent in event['event_times']:
            startTime = datetime.strptime(subEvent['start_time'], "%Y-%m-%dT%H:%M:%S%z")
            endTime = datetime.strptime(subEvent['end_time'], "%Y-%m-%dT%H:%M:%S%z")

            newSubEvent = newEvent.copy()
            newSubEvent['facebook_id'] = subEvent['id']
            newSubEvent['start_date'] = startTime.strftime("%Y-%m-%d %H:%M")
            newSubEvent['end_date'] = endTime.strftime("%Y-%m-%d %H:%M")
            newEvents.append(newSubEvent)
    else: # this is single event with only one start- and endtime
        startTime = datetime.strptime(event['start_time'], "%Y-%m-%dT%H:%M:%S%z")
        endTime = datetime.strptime(event['end_time'], "%Y-%m-%dT%H:%M:%S%z")
        newEvent['start_date'] = startTime.strftime("%Y-%m-%d %H:%M")
        newEvent['end_date'] = endTime.strftime("%Y-%m-%d %H:%M")
        newEvents.append(newEvent)

    converter.parseCategoryInformation(event, newEvent)
    converter.parseLocationInformation(event, newEvent)
    converter.parseOwnerInformation(event, newEvent)
    converter.createFacebookHashValues(event, newEvent)

    return newEvents
예제 #2
0
def createNewSubEvent(event, parentEvent):
    newEvent = {
        'facebook_id': event['id'],
        'title': parentEvent['name'],
        'content': parentEvent['description']
    }

    if parentEvent.get('cover') != None:
        newEvent['picture_url'] = parentEvent['cover']['source']

    startTime = datetime.strptime(event.get('start_time'),
                                  "%Y-%m-%dT%H:%M:%S%z")
    newEvent['start_date'] = startTime.strftime("%Y-%m-%d %H:%M")

    strEndTime = event.get('end_time')
    if strEndTime != None:
        endTime = datetime.strptime(strEndTime, "%Y-%m-%dT%H:%M:%S%z")
        newEvent['end_date'] = endTime.strftime("%Y-%m-%d %H:%M")
    else:
        newEvent['end_date'] = None

    converter.parseContent(parentEvent, newEvent)
    converter.parseCategoryInformation(parentEvent, newEvent)
    converter.parseLocationInformation(parentEvent, newEvent)
    converter.parseOwnerInformation(parentEvent, newEvent)
    converter.createFacebookHashValuesRecurringEvent(event, parentEvent,
                                                     newEvent)

    return newEvent
예제 #3
0
def eventIsUpdated(wpEvent,
                   fbEvent,
                   newEvent,
                   subEvent=None,
                   subEventThumbnailId=None,
                   compareFields=[
                       'name', 'description', 'start_time', 'end_time',
                       'place', 'owner', 'cover'
                   ]):
    if len(compareFields) == 7:
        print("Doing an extensive comparison")
    else:
        print("Doing a superficial comparison")
    modified = False
    modifiedFields = []

    meta = wpEvent.get('meta')
    if meta != None:
        if 'name' in compareFields and meta.get('name_hash') != utils.bhash(
                fbEvent['name']):
            newEvent['title'] = fbEvent['name']
            newEvent['name_hash'] = utils.bhash(fbEvent.get('name'))
            modified = True
            modifiedFields.append('name')
            #print('UPDATED: "'+ wpEvent['title'] + ' - ' + fbEvent['name'] + '"')
            print('UPDATED: TITLE')
        if 'description' in compareFields and fbEvent.get(
                'description') != None and meta.get(
                    'description_hash') != utils.bhash(fbEvent['description']):
            converter.parseContent(fbEvent, newEvent)
            #newEvent['content'] = fbEvent['description']
            newEvent['description_hash'] = utils.bhash(
                fbEvent.get('description'))
            modified = True
            modifiedFields.append('description')
            #print('UPDATED: "' + wpEvent['content'].encode('utf-8') + ' - ' + fbEvent['description'].encode('utf-8') + '"')
            print('UPDATED: DESCRIPTION')
        if subEvent != None:
            if meta.get('start_time_hash') != utils.bhash(
                    subEvent.get('start_time')):
                startTime = datetime.strptime(subEvent['start_time'],
                                              "%Y-%m-%dT%H:%M:%S%z")
                newEvent['start_date'] = startTime.strftime("%Y-%m-%d %H:%M")
                newEvent['start_time_hash'] = utils.bhash(
                    subEvent.get('start_time'))
                modified = True
                modifiedFields.append('start_time')
                print('UPDATED: "' + wpEvent['meta']['event_start_date'] +
                      ' - ' + str(startTime) + '"')
            strEndTime = subEvent.get('end_time')
            if meta.get('end_time_hash') != utils.bhash(strEndTime):
                if strEndTime != None:
                    endTime = datetime.strptime(strEndTime,
                                                "%Y-%m-%dT%H:%M:%S%z")
                    newEvent['end_date'] = endTime.strftime("%Y-%m-%d %H:%M")
                    newEvent['end_time_hash'] = utils.bhash(strEndTime)
                    modified = True
                    modifiedFields.append('end_time')
                    print('UPDATED: "' + wpEvent['meta']['event_end_date'] +
                          ' - ' + str(endTime) + '"')
                else:
                    newEvent['end_date'] = None
                    newEvent['end_time_hash'] = None
                    modified = True
                    modifiedFields.append('end_time')
        else:
            if meta.get('start_time_hash') != utils.bhash(
                    fbEvent.get('start_time')):
                startTime = datetime.strptime(fbEvent.get('start_time'),
                                              "%Y-%m-%dT%H:%M:%S%z")
                newEvent['start_date'] = startTime.strftime("%Y-%m-%d %H:%M")
                newEvent['start_time_hash'] = utils.bhash(
                    fbEvent.get('start_time'))
                modified = True
                modifiedFields.append('start_time')
                print('UPDATED: "' + wpEvent['meta']['event_start_date'] +
                      ' - ' + str(startTime) + '"')
            strEndTime = fbEvent.get('end_time')
            if meta.get('end_time_hash') != utils.bhash(strEndTime):
                if strEndTime != None:
                    endTime = datetime.strptime(strEndTime,
                                                "%Y-%m-%dT%H:%M:%S%z")
                    newEvent['end_date'] = endTime.strftime("%Y-%m-%d %H:%M")
                    newEvent['end_time_hash'] = utils.bhash(
                        fbEvent.get('end_time'))
                    modified = True
                    modifiedFields.append('end_time')
                    print('UPDATED: "' + wpEvent['meta']['event_end_date'] +
                          ' - ' + str(endTime) + '"')
                else:
                    newEvent['end_date'] = None
                    newEvent['end_time_hash'] = None
                    modified = True
                    modifiedFields.append('end_time')
        if 'place' in compareFields and meta.get('place_hash') != utils.bhash(
                str(fbEvent.get('place'))):
            # for now add picture when there is none. We may need a way to detect if a picture has been changed
            if fbEvent.get('place') != None:
                converter.parseLocationInformation(fbEvent, newEvent)
                newEvent['place_hash'] = utils.bhash(str(fbEvent.get('place')))
                modified = True
                modifiedFields.append('place')
                print('UPDATED PLACE')
        if 'owner' in compareFields and meta.get('owner_hash') != utils.bhash(
                str(fbEvent.get('owner'))):
            # for now add picture when there is none. We may need a way to detect if a picture has been changed
            if fbEvent.get('owner') != None:
                converter.parseOwnerInformation(fbEvent, newEvent)
                newEvent['owner_hash'] = utils.bhash(str(fbEvent.get('owner')))
                modified = True
                modifiedFields.append('owner')
                print('UPDATED OWNER')
        # TODO: would be nice if I don't have to compare the cover (and do an HTTP-request) for all recurring subevents when I already know it's changed
        # Those requests make the script more slow
        if 'cover' in compareFields and fbEvent.get(
                'cover') != None and fbEvent['cover'].get('source') != None:
            response = requests.get(fbEvent['cover']['source'])
            hash = utils.bhash(str(response.content))
            if meta.get('_cover_bytes_hash') != hash:
                if subEventThumbnailId != None:
                    newEvent['thumbnail_id'] = subEventThumbnailId
                else:
                    newEvent['picture_url'] = fbEvent['cover'].get('source')
                newEvent['_cover_bytes_hash'] = hash
                modified = True
                modifiedFields.append('cover')
                print('UPDATED COVER BYTES')
            else:
                print('cover bytes are not changed')
        # if meta.get('cover_hash') != utils.bhash(str(fbEvent.get('cover'))):
        #     if fbEvent.get('cover') != None:
        #         if subEventThumbnailId != None:
        #             newEvent['thumbnail_id'] = subEventThumbnailId
        #         else:
        #             newEvent['picture_url'] = fbEvent['cover'].get('source')
        #         newEvent['cover_hash'] = utils.bhash(str(fbEvent.get('cover')))
        #         modified = True
        #         print('UPDATED COVER')

        #return modified
        return modifiedFields
예제 #4
0
def eventIsUpdated(wpEvent, fbEvent, newEvent, subEvent):
    modified = False

    meta = wpEvent.get('meta')
    if meta != None:
        if meta.get('name_hash') != bhash(fbEvent['name']):
            newEvent['title'] = fbEvent['name']
            newEvent['name_hash'] = bhash(fbEvent.get('name'))
            modified = True
            #print('UPDATED: "'+ wpEvent['title'] + ' - ' + fbEvent['name'] + '"')
            print('UPDATED: "'+ str(meta.get('name_hash')) + '" - "' + str(bhash(fbEvent['name'])) + '"')
        if meta.get('description_hash') != bhash(fbEvent['description']):
            newEvent['content'] = fbEvent['description']
            newEvent['description_hash'] = bhash(fbEvent.get('description'))
            modified = True
            print('UPDATED: "' + wpEvent['content'] + ' - ' + fbEvent['description'] + '"')
        if subEvent != None:
            if meta.get('start_time_hash') != bhash(subEvent['start_time']):
                startTime = datetime.strptime(subEvent['start_time'], "%Y-%m-%dT%H:%M:%S%z")
                newEvent['start_date'] = startTime.strftime("%Y-%m-%d %H:%M")
                newEvent['start_time_hash'] = bhash(subEvent.get('start_time'))
                modified = True
                print('UPDATED: "' + wpEvent['meta']['event_start_date'] + ' - ' + str(startTime) + '"')
            if meta.get('end_time_hash') != bhash(subEvent['end_time']):
                endTime = datetime.strptime(subEvent['end_time'], "%Y-%m-%dT%H:%M:%S%z")
                newEvent['end_date'] = endTime.strftime("%Y-%m-%d %H:%M")
                newEvent['end_time_hash'] = bhash(subEvent.get('end_time'))
                modified = True
                print('UPDATED: "' + wpEvent['meta']['event_end_date'] + ' - ' + str(endTime) + '"')
        else:
            if meta.get('start_time_hash') != bhash(fbEvent['start_time']):
                startTime = datetime.strptime(fbEvent['start_time'], "%Y-%m-%dT%H:%M:%S%z")
                newEvent['start_date'] = startTime.strftime("%Y-%m-%d %H:%M")
                newEvent['start_time_hash'] = bhash(fbEvent.get('start_time'))
                modified = True
                print('UPDATED: "' + wpEvent['meta']['event_start_date'] + ' - ' + str(startTime) + '"')
            if meta.get('end_time_hash') != bhash(fbEvent['end_time']):
                endTime = datetime.strptime(fbEvent['end_time'], "%Y-%m-%dT%H:%M:%S%z")
                newEvent['end_date'] = endTime.strftime("%Y-%m-%d %H:%M")
                newEvent['end_time_hash'] = bhash(fbEvent.get('end_time'))
                modified = True
                print('UPDATED: "' + wpEvent['meta']['event_end_date'] + ' - ' + str(endTime) + '"')
        if meta.get('place_hash') != bhash(str(fbEvent.get('place'))):
            # for now add picture when there is none. We may need a way to detect if a picture has been changed
            if fbEvent.get('place') != None:
                converter.parseLocationInformation(fbEvent, newEvent)
                newEvent['place_hash'] = bhash(str(fbEvent.get('place')))
                modified = True
                print('UPDATED PLACE')
        if meta.get('owner_hash') != bhash(str(fbEvent.get('owner'))):
            # for now add picture when there is none. We may need a way to detect if a picture has been changed
            if fbEvent.get('owner') != None:
                converter.parseOwnerInformation(fbEvent, newEvent)
                newEvent['owner_hash'] = bhash(str(fbEvent.get('owner')))
                modified = True
                print('UPDATED OWNER')
        if meta.get('cover_hash') != bhash(str(fbEvent.get('cover'))):
            # for now add picture when there is none. We may need a way to detect if a picture has been changed
            if fbEvent.get('cover') != None:
                newEvent['picture_url'] = fbEvent['cover']['source']
                newEvent['cover_hash'] = bhash(str(fbEvent.get('cover')))
                modified = True
                print('UPDATED COVER')

        return modified