From 1c37e1e047edb5f7c46d41de19817311e209fddd Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Nov 2014 18:57:30 +0200 Subject: Make DraftsDirectory.create_draft pick the number --- jt | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/jt b/jt index c9a5954..d1be34d 100755 --- a/jt +++ b/jt @@ -54,10 +54,20 @@ class DraftsDirectory(object): def get_draft_attachments_dirname(self, draft_number): return os.path.join(self.dirname, '%s' % draft_number) - def create_draft(self, draft_number, content): + def create_draft(self, content): + draft_number = self._pick_available_draft_number() pathname = self.get_draft_pathname(draft_number) with open(pathname, 'w') as f: f.write(content) + return draft_number + + def _pick_available_draft_number(self): + for i in range(1000): + pathname = self.get_draft_pathname(i) + if not os.path.exists(pathname): + return i + else: + raise cliapp.AppException('ERROR: too many existing drafts') def get_drafts(self): for basename in os.listdir(self.dirname): @@ -94,25 +104,16 @@ class NewCommand(Command): drafts_dir = DraftsDirectory(self._app.drafts_dir()) drafts_dir.create_if_missing() - draft_number = self._pick_draft_number(drafts_dir) - self._create_draft(drafts_dir, draft_number, args[0]) + draft_number = self._create_draft(drafts_dir, args[0]) self._app.edit_file(drafts_dir.get_draft_pathname(draft_number)) - def _pick_draft_number(self, drafts_dir): - for i in range(1000): - pathname = drafts_dir.get_draft_pathname(i) - if not os.path.exists(pathname): - return i - else: - raise cliapp.AppException('ERROR: too many existing drafts') - - def _create_draft(self, drafts_dir, draft_number, title): + def _create_draft(self, drafts_dir, title): values = { 'title': title, 'date': time.strftime('%Y-%m-%d %H:%M') } content = template % values - drafts_dir.create_draft(draft_number, content) + return drafts_dir.create_draft(content) class ListCommand(Command): -- cgit v1.2.1