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
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
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
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