Some test on texnote

main
Jonathan Grizou 12 years ago
parent f29f1a96b5
commit e9b0373456

@ -1,16 +1,17 @@
import os import os
import shutil import shutil
import subprocess import subprocess
import collections
from ... import repo from ... import repo
from ...configs import config
from ... import files from ... import files
from ...configs import config
from ...plugins import PapersPlugin from ...plugins import PapersPlugin
from ...commands.helpers import add_references_argument, parse_reference from ...commands.helpers import add_references_argument, parse_reference
from ...events import RemoveEvent from ...events import RemoveEvent
TEXNOTE_PARSER_NAME = 'texnote'
TEXNOTE_SECTION = 'texnote' TEXNOTE_SECTION = 'texnote'
TEXNOTE_SAMPLE_FILE = os.path.join(os.path.dirname(__file__), 'note_sample.tex') TEXNOTE_SAMPLE_FILE = os.path.join(os.path.dirname(__file__), 'note_sample.tex')
TEXNOTE_DIR = 'texnote' TEXNOTE_DIR = 'texnote'
@ -18,6 +19,16 @@ TEXNOTE_DIR = 'texnote'
class TexnotePlugin(PapersPlugin): class TexnotePlugin(PapersPlugin):
def __init__(self):
self.name = TEXNOTE_PARSER_NAME
#self.rp = repo.Repository(config())
self.texcmds = collections.OrderedDict([
('remove', self.remove),
('edit', self.edit),
])
def parser(self, subparsers): def parser(self, subparsers):
parser = subparsers.add_parser(self.name, help="edit advance note in latex") parser = subparsers.add_parser(self.name, help="edit advance note in latex")
sub = parser.add_subparsers(title="valid texnote commands", dest="texcmd") sub = parser.add_subparsers(title="valid texnote commands", dest="texcmd")
@ -26,21 +37,30 @@ class TexnotePlugin(PapersPlugin):
p = sub.add_parser("edit", help="edit the reference texnote") p = sub.add_parser("edit", help="edit the reference texnote")
add_references_argument(p, single=True) add_references_argument(p, single=True)
#add_references_argument(parser, single=True) #add_references_argument(parser, single=True)
parser.add_argument('-v', '--view', action='store_true', help='open the paper in a pdf viewer', default=None) p.add_argument('-v', '--view', action='store_true', help='open the paper in a pdf viewer', default=None)
return parser return parser
def command(self, args): def command(self, args):
ui = args.ui
texcmd = args.texcmd texcmd = args.texcmd
del args.texcmd
self.texcmds[texcmd](args)
def remove(self, args):
reference = args.reference reference = args.reference
view = args.view print('Should remove {}'.format(reference))
def edit(self, args):
reference = args.reference
view = args.view
print('Should remove {}'.format(reference))
if view is not None: if view is not None:
subprocess.Popen(['papers', 'open', reference]) subprocess.Popen(['papers', 'open', reference])
if texcmd == 'edit':
open_texnote(ui, reference) #open_texnote(ui, reference)
def toto(self): def toto(self):
print "toto" print "toto"
@ -55,16 +75,16 @@ def remove(rmevent):
texplug = TexnotePlugin.get_instance() texplug = TexnotePlugin.get_instance()
texplug.toto() texplug.toto()
# HACK : transfer repo via RemoveEvent, do not recreate one # HACK : transfer repo via RemoveEvent, do not recreate one
rp = repo.Repository(config()) #rp = repo.Repository(config())
paper = rp.get_paper(parse_reference(rmevent.ui, rp, rmevent.citekey)) #paper = rp.get_paper(parse_reference(rmevent.ui, rp, rmevent.citekey))
if 'texnote' in paper.metadata: #if 'texnote' in paper.metadata:
try: # try:
os.remove(paper.metadata['texnote']) # os.remove(paper.metadata['texnote'])
except OSError: # except OSError:
pass # For some reason, the texnote file didn't exist # pass # For some reason, the texnote file didn't exist
paper.metadata.pop('texnote') # paper.metadata.pop('texnote')
metapath = rp.path_to_paper_file(paper.citekey, 'meta') # metapath = rp.path_to_paper_file(paper.citekey, 'meta')
files.save_meta(paper.metadata, metapath) # files.save_meta(paper.metadata, metapath)
def open_texnote(ui, ref): def open_texnote(ui, ref):

Loading…
Cancel
Save