Example #1
0
    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)
Example #2
0
    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