Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_input():
- from argparse import ArgumentParser
- parser = ArgumentParser(description='get data from arxiv entry')
- parser.add_argument('arxiv_id', type=str)
- args = parser.parse_args()
- return args.arxiv_id
- def main():
- import arxiv
- import os
- import shutil
- import requests
- import tarfile
- from glob import glob
- import pyttsx3
- arxiv_id = get_input()
- paper = arxiv.query(id_list=[arxiv_id])[0]
- if os.path.isdir(arxiv_id):
- shutil.rmtree(arxiv_id)
- os.mkdir(arxiv_id)
- with open(arxiv_id+'/title.txt','w') as f:
- f.write(paper['title'].rstrip().replace('\r', '').replace('\n', ''))
- with open(arxiv_id+'/abstract.txt','w') as f:
- f.write(paper['summary'].rstrip().replace('\r', '').replace('\n', ''))
- # Download source
- url = 'https://arxiv.org/e-print/'+arxiv_id
- r = requests.get(url, allow_redirects=True)
- open(arxiv_id+'/source.tar.gz', 'wb').write(r.content)
- os.chdir(arxiv_id)
- tf = tarfile.open('source.tar.gz')
- tf.extractall()
- tex_files = glob('*.tex')
- if len(tex_files)==1:
- tex_file = tex_files[0]
- else:
- print('Multiple files found')
- [print(str(n)+') '+fname) for n, fname in enumerate(tex_files)]
- inp = input('Choose file\n')
- if inp=='q':
- exit()
- tex_file = tex_files[int(inp)]
- #tex_file = tex_files[0]
- os.system('..\detex.exe '+tex_file+' > output.txt')
- engine = pyttsx3.init()
- engine.save_to_file(open('./output.txt','r').read().rstrip().replace('\n',' '),
- arxiv_id+'.mp3')
- engine.runAndWait()
- os.chdir('..')
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement