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', { })
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))
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)
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)