Ejemplo n.º 1
0
def search(request):
    if request.method == 'GET':
        q = ""
        try:
            q = request.GET["q"]
        except:
            return HttpResponseRedirect('/search')
        
        results = Entry.objects.filter(
                        Q(title__icontains=q) | 
                        Q(narrative__icontains=q)).distinct()
                        
        results = results.filter(show=True)
        
        scribd.config(settings.SCRIBD_KEY, settings.SCRIBD_SEC)
        scribd_user = scribd.login(settings.SCRIBD_USER, 
                                   settings.SCRIBD_PASS)
                        
        scribd_docs = scribd.find(query=q, scope="user")
        if scribd_docs:
            for doc in scribd_docs:
                scribd_id = str(doc._get_id())
                try:
                    f = File.objects.get(scribd_id = scribd_id)
                    more_results = Entry.objects.filter(id=f.entry.id, show=True)
                    results = list(results) + list(more_results)
                except: 
                    pass # la-ame!
        
        results = list(set(results))
        return render_to_response('results.html', { 'results': results, 'query': q})
        
    else:
        #no query.
        return render_to_response('search.html', { })
Ejemplo n.º 2
0
def main():
    # Configure the Scribd API.
    scribd.config(API_KEY, API_SECRET)

    try:
        # Log the user in.
        user = scribd.login(USERNAME, PASSWORD)
        
        # Get all documents uploaded by the user.
        docs = user.all()

        print('User %s has %d documents.' % (user.username, len(docs)))
        if docs:
            print("User's documents:")
            for doc in docs:
                print('*', doc.title)
                
        # Search the user documents for the phrase "checklist".
        results = user.find('checklist')
        
        print('Search for "checklist" turned up %d results:' % len(results))
        for doc in results:
            print('*', doc.title)

    except scribd.ResponseError as err:
        print('Scribd failed: code=%d, error=%s' % (err.errno, err.strerror))
Ejemplo n.º 3
0
def get_docs(request,query):
# Configure the Scribd API.
    scribd.config(API_KEY, API_SECRET)
    try:
        # Log the user in.
        user = scribd.login(USERNAME, PASSWORD)
        # Get all documents uploaded by the user.
        docs = user.all()
                
        # Search the user documents for the phrase query
        results = user.find('checklist')
        

    except scribd.ResponseError, err:
        print 'Scribd failed: code=%d, error=%s' % (err.errno, err.strerror)
Ejemplo n.º 4
0
def add(request):
    context = {}
    
    entry_form = EntryForm(prefix='entries')
    file_forms_excludes = ('entry', 'scribd_link', 'scribd_ak', 'size', 
                           'scribd_id', 'name')
    FileFormSetFactory = modelformset_factory(File, form=FileForm, extra=8,
                                        exclude=file_forms_excludes,)
    file_formset = FileFormSetFactory(prefix='files', queryset=File.objects.none())
    
    if request.method == 'POST':
        entry_form = EntryForm(request.POST, request.FILES, prefix='entries')
        file_formset = FileFormSetFactory(request.POST, request.FILES, 
                                          prefix='files', queryset=File.objects.none())
                                         
    
        if entry_form.is_valid() and file_formset.is_valid():
            entry = entry_form.save(commit=False)
            entry.poster_slug = slugify(entry.poster)
            entry.slug = slugify(entry.title)
            
            '''
            The name of the entity has has been sent 
            as a string. We need to use an actual  
            entity object.
            '''
            entity_name = request.POST['entries-govt_entity']
            try:
                entity = Entity.objects.get(name=entity_name)
                entry.entity = entity
            except Entity.DoesNotExist:
                entity = Entity(name=entity_name)
                entity.slug = slugify(entity.name)
                entity.save()
                entry.entity = entity
            
            # Now we can actually save.
            entry.save()
            
            # saving the files - more involved
            scribd.config(settings.SCRIBD_KEY, settings.SCRIBD_SEC)
            scribd_user = scribd.login(settings.SCRIBD_USER, 
                                       settings.SCRIBD_PASS)
            
            for f in file_formset.save(commit=False):
             
                f.name = f.theFile.name.split("/")[-1]
                f.size = convert_bytes(f.theFile.size)
                f.entry = entry
                f.scribd_link = ""
                f.scribd_id = ""
                f.scribd_ak = ""
                
                # attempt to upload it to scribd
                try:
                    scribd_doc = scribd_user.upload(f.theFile)
                    f.scribd_id = str(scribd_doc._get_id())
                    f.scribd_link = scribd_doc.get_scribd_url()
                    f.scribd_ak = scribd_doc.access_key
                except scribd.ResponseError:
                    pass # TODO handle this in a more reasonable way
              
                f.save()
            
            return HttpResponseRedirect('/doc/' + str(entry.id)) 
    
    context['fileform'] = file_formset
    context['entryform'] = entry_form
    context['entities'] = entities()
    return render_to_response('add.html', context)