def docView(request, doc=None, cutoff=10): if request.GET.get('cutoff', 0): cutoff = int(request.GET['cutoff']) if not doc or not cutoff: return render_to_response( 'error.html', {'error': 'Missing document or wrong cutoff!'}, context_instance=RequestContext(request)) try: d = Doc(docid=doc, owner=request.user) except: raise Http404 cont = d.body relDocs = Docs.find( {'_id': { '$in': list(d.getRelatedDocIds(cutoff=cutoff)) }}, ['docid', 'title']) return render_to_response('docView.html', { 'doc': d, 'oid': d._id, 'user': request.user, 'content': cont, 'related': relDocs, 'cutoff': cutoff, 'cutoffs': ','.join(cutoffSL(d, cutoff)), 'len': d.getFrags(cutoff=cutoff).count() }, context_instance=RequestContext(request))
def metaView(request,doc=None): if not doc: return render_to_response('error.html', {'error': 'Missing document!'}, context_instance=RequestContext(request)) try: d = Doc(docid=doc) except: form = UploadForm({'docid': doc}) return render_to_response('upload.html', { 'form': form, }, context_instance=RequestContext(request)) relDocs = Docs.find({'_id': { '$in': list(d.getRelatedDocIds(cutoff=5))} }, ['docid','title']) return render_to_response('meta.html', {'doc': d, 'related': relDocs, 'metadata': d.metadata, }, context_instance=RequestContext(request))
def metaView(request,doc=None): if not doc: return render_to_response('error.html', {'error': 'Missing document!'}, context_instance=RequestContext(request)) try: d = Doc(docid=doc, owner=request.user) except: raise Http404 relDocs = Docs.find({'_id': { '$in': list(d.getRelatedDocIds(cutoff=5))} }, ['docid','title']) return render_to_response('meta.html', {'doc': d, 'oid': d._id, 'related': relDocs, 'metadata': d.metadata, }, context_instance=RequestContext(request))
def metaView(request, doc=None): if not doc: return render_to_response('error.html', {'error': 'Missing document!'}, context_instance=RequestContext(request)) try: d = Doc(docid=doc, owner=request.user) except: raise Http404 relDocs = Docs.find({'_id': { '$in': list(d.getRelatedDocIds(cutoff=5)) }}, ['docid', 'title']) return render_to_response('meta.html', { 'doc': d, 'oid': d._id, 'related': relDocs, 'metadata': d.metadata, }, context_instance=RequestContext(request))
def docView(request,doc=None,cutoff=10): if request.GET.get('cutoff', 0): cutoff = int(request.GET['cutoff']) if not doc or not cutoff: return render_to_response('error.html', {'error': 'Missing document or wrong cutoff!'}, context_instance=RequestContext(request)) try: d = Doc(docid=doc) except: form = UploadForm({'docid': doc}) return render_to_response('upload.html', { 'form': form, }, context_instance=RequestContext(request)) cont = d.body relDocs = Docs.find({'_id': { '$in': list(d.getRelatedDocIds(cutoff=cutoff))} }, ['docid','title']) return render_to_response('docView.html', {'doc': d, 'oid': d._id, 'user': request.user, 'content': cont, 'related': relDocs, 'cutoff': cutoff, 'cutoffs': ','.join(cutoffSL(d,cutoff)), 'len': d.getFrags(cutoff=cutoff).count()}, context_instance=RequestContext(request))
def docView(request,doc=None,cutoff=10): if request.GET.get('cutoff', 0): cutoff = int(request.GET['cutoff']) if not doc or not cutoff: return render_to_response('error.html', {'error': 'Missing document or wrong cutoff!'}, context_instance=RequestContext(request)) try: d = Doc(docid=doc) except: form = UploadForm({'docid': doc}) return render_to_response('upload.html', { 'form': form, }, context_instance=RequestContext(request)) tooltips={} cont = d.body relDocs = Docs.find({'_id': { '$in': list(d.getRelatedDocIds(cutoff=cutoff))} }, ['docid','title']) ls = [] matches = 0 for l in d.getFrags(cutoff=cutoff): if( l['l'] < cutoff): break # for unique locset - optimalization?! if l['txt'] in ls: continue ls.append(l['txt']) t = l['txt'] # for valid matches btxt = '' etxt = '' if t[0][0].isalnum(): btxt = '\W' if t[-1][-1].isalnum(): etxt = '\W' rtxt = btxt+'\s*(?:<[^>]*>\s*)*'.join([re.escape(x) for x in t])+etxt regex=re.compile(rtxt, re.I | re.M | re.U) i=0 offset = 0 #print "[!] Finding: %s\n\tPos: %s\n\t%s\n" % (' '.join(t), l['pos'], rtxt) if not l['pippi'] in tooltips: tooltips[l['pippi']]=annotatePippi(d,l,cutoff) for r in regex.finditer(cont): #print '[!] Match: %s\n\tStartpos: %d\n\tEndpos: %d' % (r.group(), r.start(), r.end()) span = (('<span class="highlight %s">') % l['pippi'], '</span>') start = r.start()+offset if btxt: start += 1 end = r.end()+offset if etxt: end -= 1 match, n = re.compile(r'((?:\s*<[^>]+>)+)', re.M | re.U).subn(r'%s\1%s' % (span[1], span[0]), cont[start:end]) cont = cont[:start]+span[0]+match+span[1]+cont[end:] offset += (n+1)*(len(span[0])+len(span[1])) matches += 1 #print '_'*60 #print '-'*120 cont=anchorArticles(cont) #print "[!] Rendering\n\tContent length: %d" % len(cont) return render_to_response('docView.html', {'doc': d, 'oid': d._id, 'user': request.user, 'content': cont, 'related': relDocs, 'cutoff': cutoff, 'cutoffs': ','.join(cutoffSL(d,cutoff)), 'len': len(ls), 'tooltips': '\n'.join(tooltips.values()), 'matches': matches}, context_instance=RequestContext(request))