diff --git a/weboob/applications/webcontentedit/webcontentedit.py b/weboob/applications/webcontentedit/webcontentedit.py index 5d72376f22d99ab81624d5939de4611403e02ad1..5d1fa59653fe242b5074fb7df90ee6b89af0841d 100644 --- a/weboob/applications/webcontentedit/webcontentedit.py +++ b/weboob/applications/webcontentedit/webcontentedit.py @@ -21,11 +21,12 @@ import os import tempfile +import shlex import subprocess from shutil import which from weboob.core.bcall import CallErrors -from weboob.capabilities.content import CapContent, Revision +from weboob.capabilities.content import CapContent, Revision, Content from weboob.tools.application.repl import ReplApplication, defaultcount @@ -137,6 +138,29 @@ def do_edit(self, line): if len(errors.errors) > 0: raise errors + def do_create(self, line): + """ + create TITLE BACKEND + """ + args = shlex.split(line) + title, backend = args + + if self.stdin.isatty(): + editor = os.environ.get('EDITOR', 'vi') + with tempfile.NamedTemporaryFile('w+t', suffix='.md') as fd: + subprocess.call([editor, fd.name]) + data = fd.read() + else: + data = self.stdin.read() + + content = Content() + content.title = args[0] + content.content = data + content.backend = backend + content = next(iter(self.do('push_content', content, message='', minor=False, backends=[content.backend]))) or content + if content.url: + print('Pushed to', content.url, file=self.stdout) + @defaultcount(10) def do_log(self, line): """