def process_push(self, request, user_profile, input_data, template_args, **kwargs): """ Set the notebook to articles """ node = kwargs['node'] nb = get_or_create_notebook(node) i = 0 # if not, create one for cell in nb.cells: # check for item corresponding try: cell_id = cell.metadata.gid except: cell.metadata.gid = get_new_uuid() cell_id = cell.metadata.gid try: cell_node = Item.objects.get(id=cell_id) except ObjectDoesNotExist: cell_node = Item(id=cell_id, parent=node, **kwargs['pipe']) if cell.cell_type == 'code': # content = u'' for output in cell.outputs: if output.output_type == 'stream' and 'stream' == 'stdout': content += output.get('text', u'') cell_node.content = content #if cell_node.content: # cell_node.visible = True #else: cell_node.visible = False #if not cell_node.title: # cell_node.title = 'Code' #if not cell_node.label: # cell_node.label = cell_node.title elif cell.cell_type == 'markdown': #cell_node.behavior = 'view' #cell_node.content = '<i>markdown rendered html</i>' cell_node.visible = True cell = markdown_to_item(cell_node, ''.join(cell.source)) cell_node.status = 'pushed' cell_node.order = i cell_node.save() i += 1 save_notebook(nb, node) # if not node.file: node.file = 'resource/'+node.id+'.ipynb' node.save() return HttpResponseRedirect(node.get_url()+'view/') return self.manage_item_pipe(request, user_profile, input_data, template_args, **kwargs)
def parse(self, **kwargs): token = 'CAACEdEose0cBAPemNCRC53fdEpBFWzVyCDBHWunsePzgZAW6U7xZAflPwmWW1GMixFpDSyhOLKdUR9GAV2BA3qqWdFBL2UoQDDRsvqFQ9n6sC1izct94BkKfakJZBrODfFB0NdZAxNrUyolxeojnWN829rvcX4gyLpkZBwcQJdnxeBBPpcZC4ojO1l00ZAbFESDx0vlcZCGSuzAHxPe13QfL' keyword = self.input_data.get('keyword') for status in self.raw_data: type = status.get('type') if type == 'event': event_id = status.get('object_id') elif type == 'status': event_id = status.get('id').split('_')[1] else: event_id = None # skip non event stuff if event_id: # get the event data graph_url = 'https://graph.facebook.com/'+event_id+'?access_token='+self.token r = requests.get(graph_url) event_data = r.json() # text label = status.get('name', id) title = event_data.get('name', id) description = event_data.get('description', title) content = '' link = status.get('link', id) # time timezone = event_data.get('timezone') start = event_data.get('start_time') end = event_data.get('end_time', start) # location location = event_data.get('location') event_venue = event_data.get('venue',{}) address = ', '.join((event_venue.get('street', ''), event_venue.get('zip', ''), event_venue.get('city', ''), event_venue.get('country', ''),)) latitude = event_venue.get('latitude', None) longitude = event_venue.get('longitude', None) # picture = status.get('link', id) else: print status # text link = status.get('link', None) label = status.get('name', id) title = status.get('name', id) description = status.get('message', title) start = end = now() location = '' address = '' latitude = None longitude = None # if description: item = Item() item.slug = id item.related_url = link item.start = start item.end = end item.location = location item.address = address item.latitude = latitude item.longitude = longitude item.slug = id item.label = keyword item.title = title item.description = description item.content = content item.parent = self.node self.items.append(item) return self.items