예제 #1
0
def upload(request):
	'''function controls upload based on whether or not the request type is POST(see explanation for query above)
	
	Getting info from file: upon POST, the file to be uploaded is written to the server in chunks(in case it's a 
	large files). The collection name is also storred, and used to make a new Collection object.
	
	Saving info: The function customize(from customize.py located in bibtex/bibstore) is called to do text 
	replacements via regex. Finally, the parse_bib method from bibparse.py is called on the file to make iterable 
	objects corresponding to indidual entries. For each object, a new Entry object is made and defined. It is also 
	associated with the newly made Collection object'''
	
	if request.method == 'POST':
		form = UploadForm(request.POST, request.FILES)
		if form.is_valid():
			
			f = request.FILES['filename']
			collection_name = form.cleaned_data['collection_name']
			destination = open('Temp/temp.txt', 'wb+')
			for chunk in f.chunks():
				destination.write(chunk)
			destination.close()
			
			#the customize funciton in bibstore.customize 
			#allows users to quickly customize the file reading options
			#so that fields can be read in the parser
			# in this case, the function change case of all Entry attributes to lower case
			customize()
			f_parsed = parse_bib('Temp/temp.txt')			
			c = Collection()
			c.name = collection_name
			c.save()
			for entry in f_parsed:
				d = Entry()
				d.collection = c
				
				entry_column_names = ['ref_tag','author_list','author','journal', 'volume','pages', 'year', 'title']
				for column in entry_column_names:
					if column in entry.data:
						d.__setattr__(column, entry.data[column])
				d.save()
					
			return HttpResponseRedirect('/')
	
	else:
		form = UploadForm()
	return render_to_response('upload.html', {'form':form})
            f.write('<p><em>%s</em></p>\n' % tidy(paper.data['Journal']))
        if 'Abstract' in paper.data:
            f.write('<blockquote><p>%s</p></blockquote>\n' % tidy(paper.data['Abstract']))
        f.write('<i class="icon-tags"></i> <a href="/laurent.bib" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Bibtex\', \'%s\']);">.bib</a> [%s] | ' % (paper.key, paper.key))
        fichier="download/pdfs/%s.pdf"% (paper.key)
	if os.path.isfile(fichier):
		f.write('<i class="icon-book"></i> <a href="/download/pdfs/%s.pdf" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Download\', \'%s\']);">.pdf</a>' % (paper.key, paper.key))
        else:
		print "Ne trouve pas %s !!" % fichier
	f.write('        </div>\n')
        f.write('    </div>\n')
        f.write('</div>\n')
    f.write('</div>\n')
    f.write('</div>\n')

papers = bibparse.parse_bib('laurent.bib')
inproceedings = [paper for paper in papers if paper.btype == 'inproceedings']
articles = [paper for paper in papers if paper.btype == 'article']
chapters = [paper for paper in papers if paper.btype == 'inbook']

f = open('research/publications.html', 'w')

f.write('---\n')
f.write('layout: page\n')
f.write('title: "Publications"\n')
f.write('description: ""\n')
from datetime import date
f.write('tagline: "last updated on %s"\n' % date.today().strftime("%B %d, %Y"))
f.write('group: research\n')
f.write('---\n')
        f.write('        %s\n' % tidy(', '.join(paper.data['Author'].split(' and '))))
        if 'Booktitle' in paper.data:
            f.write('<p><em>%s</em></p>\n' % tidy(paper.data['Booktitle']))
        if 'Journal' in paper.data:
            f.write('<p><em>%s</em></p>\n' % tidy(paper.data['Journal']))
        if 'Abstract' in paper.data:
            f.write('<blockquote><p>%s</p></blockquote>\n' % tidy(paper.data['Abstract']))
        f.write('<i class="icon-tags"></i> <a href="https://raw.github.com/hbredin/cv/master/publi/bredin.bib" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Bibtex\', \'%s\']);">.bib</a> [%s] | ' % (paper.key, paper.key))
        f.write('<i class="icon-book"></i> <a href="/download/pdfs/%s.pdf" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Download\', \'%s\']);">.pdf</a>' % (paper.key, paper.key))
        f.write('        </div>\n')
        f.write('    </div>\n')
        f.write('</div>\n')
    f.write('</div>\n')
    f.write('</div>\n')

papers = bibparse.parse_bib('../cv/publi/bredin.bib')
inproceedings = [paper for paper in papers if paper.btype == 'inproceedings']
articles = [paper for paper in papers if paper.btype == 'article']
chapters = [paper for paper in papers if paper.btype == 'inbook']

f = open('research/publications.html', 'w')

f.write('---\n')
f.write('layout: page\n')
f.write('title: "Publications"\n')
f.write('description: ""\n')
from datetime import date
f.write('tagline: "last updated on %s"\n' % date.today().strftime("%B %d, %Y"))
f.write('group: research\n')
f.write('---\n')
예제 #4
0
파일: publi.py 프로젝트: hbredin/cv
                       help="Generate english version")

argparser.add_argument('--francais', action='store_true',
                       help="Produire la version francaise")

argparser.add_argument('--software', action='store_true',
                       help="Add software/logiciel section")

args = argparser.parse_args()

if args.english == args.francais:
    sys.stderr.write("You must choose between 'english' and 'francais'\n")
    sys.exit()

# parse bib file
papers = bibparse.parse_bib('bredin.bib')
# get publication types
btypes = set([paper.btype for paper in papers])

subpapers = {}
for btype in btypes:
    subpapers[btype] = [paper.key for paper in papers if paper.btype == btype]

order = ['article', 'inbook', 'inproceedings', 'phdthesis']

if args.english:
    titles = {'inproceedings': 'Conference and workshop proceedings',
              'article': 'Journal articles',
              'inbook': 'Book chapters',
              'phdthesis': 'PhD thesis',
              'wtf': 'Other publications'}
예제 #5
0
        f.write('        %s\n' % tidy(', '.join(paper.data['Author'].split(' and '))))
        if 'Booktitle' in paper.data:
            f.write('<p><em>%s</em></p>\n' % tidy(paper.data['Booktitle']))
        if 'Journal' in paper.data:
            f.write('<p><em>%s</em></p>\n' % tidy(paper.data['Journal']))
        if 'Abstract' in paper.data:
            f.write('<blockquote><p>%s</p></blockquote>\n' % tidy(paper.data['Abstract']))
        f.write('<i class="icon-tags"></i> <a href="https://raw.github.com/hbredin/cv/master/publi/bredin.bib" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Bibtex\', \'%s\']);">.bib</a> [%s] | ' % (paper.key, paper.key))
        f.write('<i class="icon-book"></i> <a href="/download/pdfs/%s.pdf" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Download\', \'%s\']);">.pdf</a>' % (paper.key, paper.key))
        f.write('        </div>\n')
        f.write('    </div>\n')
        f.write('</div>\n')
    f.write('</div>\n')
    f.write('</div>\n')

papers = bibparse.parse_bib('../CurriculumVitae/publi/bredin.bib')
inproceedings = [paper for paper in papers if paper.btype == 'inproceedings']
articles = [paper for paper in papers if paper.btype == 'article']
chapters = [paper for paper in papers if paper.btype == 'inbook']

f = open('research/publications.html', 'w')

f.write('---\n')
f.write('layout: page\n')
f.write('title: "Publications"\n')
f.write('description: ""\n')
from datetime import date
f.write('tagline: "last updated on %s"\n' % date.today().strftime("%B %d, %Y"))
f.write('group: research\n')
f.write('---\n')
            f.write('<p><em>%s</em></p>\n' % tidy(paper.data['Journal']))
        if 'Abstract' in paper.data:
            f.write('<blockquote><p>%s</p></blockquote>\n' % tidy(paper.data['Abstract']))
        f.write('<i class="icon-tags"></i> <a href="/guinaudeau.bib" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Bibtex\', \'%s\']);">.bib</a> [%s] | ' % (paper.key, paper.key))
        fichier="download/pdfs/%s.pdf"% (paper.key)
	if os.path.isfile(fichier):
		f.write('<i class="icon-book"></i> <a href="/download/pdfs/%s.pdf" onClick="_gaq.push([\'_trackEvent\', \'Publications\', \'Download\', \'%s\']);">.pdf</a>' % (paper.key, paper.key))
        else:
		print "Ne trouve pas %s !!" % fichier
	f.write('        </div>\n')
        f.write('    </div>\n')
        f.write('</div>\n')
    f.write('</div>\n')
    f.write('</div>\n')

papers = bibparse.parse_bib('guinaudeau.bib')
inproceedings = [paper for paper in papers if paper.btype == 'inproceedings']
articles = [paper for paper in papers if paper.btype == 'article']
chapters = [paper for paper in papers if paper.btype == 'inbook']

f = open('research/publications.html', 'w')

f.write('---\n')
f.write('layout: page\n')
f.write('title: "Publications"\n')
f.write('description: ""\n')
from datetime import date
f.write('tagline: "last updated on %s"\n' % date.today().strftime("%B %d, %Y"))
f.write('group: research\n')
f.write('---\n')
예제 #7
0
파일: views.py 프로젝트: rrawat/AY250
def bibtexprocessingfunction(request):
    """takes in bibtex file, creates BibtexEntry instances with populated attributes"""
    try:
        collectionid = request.POST["collection"]

        if collectionid == "":
            raise ()  # if no query given, cause no response
        c = Collections()
        c.name = collectionid
        c.save()

        print c

        bib = request.FILES["bibtexfile"].read()
        name = "bibfile"
        f = open(name, "w")
        f.write(bib)
        f.close()

        print bib

        for entry in parse_bib(name):
            bibent = BibtexEntry()
            print entry.data, "\n"
            for attribute in [
                "Author",
                "Journal",
                "Title",
                "Keywords",
                "Adsnote",
                "Adsurl",
                "Doi",
                "Pages",
                "Editor",
                "Booktitle",
                "Year",
            ]:
                try:
                    setattr(bibent, attribute, entry.data[attribute])
                except:
                    setattr(bibent, attribute, "")
                finally:
                    pass

            try:  # have to put Date_mod and Date_added into a new section because the parsed fields include dashes (not supported by py)
                bibent.Date_Modified = bibent.data["Date-Modified"]
            except:
                pass
            finally:
                pass
            try:
                bibent.Date_Added = bibent.data["Date-Added"]
            except:
                pass
            finally:
                pass

            bibent.Collection = c
            bibent.save()
    except:
        pass
    finally:
        pass
    return HttpResponseRedirect("/upload")