jp (blog): service and node can now be specified for edit command
This commit is contained in:
parent
f89b014caa
commit
8a38c20d92
1 changed files with 13 additions and 6 deletions
|
|
@ -68,7 +68,6 @@ INOTIFY_INSTALL = '"pip install inotify"'
|
|||
SECURE_UNLINK_MAX = 10 * 2 # we double value as there are 2 files per draft (content and metadata)
|
||||
SECURE_UNLINK_DIR = ".backup"
|
||||
HEADER_ANSI = A.BOLD + A.FG_YELLOW
|
||||
NS_MICROBLOG = u'urn:xmpp:microblog:0'
|
||||
MB_KEYS = (u"id",
|
||||
u"atom_id",
|
||||
u"updated",
|
||||
|
|
@ -91,6 +90,10 @@ class BlogCommon(object):
|
|||
def __init__(self, host):
|
||||
self.host = host
|
||||
|
||||
def addServiceNodeArgs(self):
|
||||
self.parser.add_argument("-n", "--node", type=base.unicode_decoder, default=u'', help=_(u"PubSub node to request (default: microblog namespace)"))
|
||||
self.parser.add_argument("-s", "--service", type=base.unicode_decoder, default=u'', help=_(u"JID of the PubSub service (default: request profile own blog)"))
|
||||
|
||||
def getTmpDir(self, sat_conf, sub_dir=None):
|
||||
"""Return directory used to store temporary files
|
||||
|
||||
|
|
@ -188,25 +191,24 @@ class BlogCommon(object):
|
|||
return []
|
||||
|
||||
|
||||
class Get(base.CommandBase):
|
||||
class Get(base.CommandBase, BlogCommon):
|
||||
TEMPLATE = u"blog/articles.html"
|
||||
|
||||
def __init__(self, host):
|
||||
extra_outputs = {'default': self.default_output,
|
||||
'fancy': self.fancy_output}
|
||||
base.CommandBase.__init__(self, host, 'get', use_verbose=True, use_output='complex', extra_outputs=extra_outputs, help=_(u'get blog item(s)'))
|
||||
BlogCommon.__init__(self, self.host)
|
||||
self.need_loop=True
|
||||
|
||||
def add_parser_options(self):
|
||||
self.parser.add_argument("-n", "--node", type=base.unicode_decoder, default=NS_MICROBLOG, help=_(u"PubSub node to request"))
|
||||
self.addServiceNodeArgs()
|
||||
self.parser.add_argument("-i", "--item", type=base.unicode_decoder, action='append', default=[], dest='items',
|
||||
help=_(u"item(s) id(s) to get (default: request all items)"))
|
||||
self.parser.add_argument("-m", "--max", type=int, default=10, help=_(u"maximum number of items to get ({} to get all items)".format(C.NO_LIMIT)))
|
||||
# TODO: a key(s) argument to select keys to display
|
||||
self.parser.add_argument("-k", "--key", type=base.unicode_decoder, action='append', dest='keys',
|
||||
help=_(u"microblog data key(s) to display (default: depend of verbosity)"))
|
||||
self.parser.add_argument("service", type=base.unicode_decoder, nargs='?', default=u'',
|
||||
help=_(u"JID of the PubSub service (default: request profile own blog)"))
|
||||
# TODO: add MAM filters
|
||||
|
||||
def template_data_mapping(self, data):
|
||||
|
|
@ -370,6 +372,7 @@ class Edit(base.CommandBase, BlogCommon):
|
|||
BlogCommon.__init__(self, self.host)
|
||||
|
||||
def add_parser_options(self):
|
||||
self.addServiceNodeArgs()
|
||||
self.parser.add_argument("item", type=base.unicode_decoder, nargs='?', default=u'new', help=_(u"URL of the item to edit, or keyword"))
|
||||
self.parser.add_argument("-P", "--preview", action="store_true", help=_(u"launch a blog preview in parallel"))
|
||||
self.parser.add_argument("-T", '--title', type=base.unicode_decoder, help=_(u"title of the item"))
|
||||
|
|
@ -547,7 +550,8 @@ class Edit(base.CommandBase, BlogCommon):
|
|||
# if there are user defined extension, we use them
|
||||
SYNTAX_EXT.update(config.getConfig(sat_conf, 'jp', CONF_SYNTAX_EXT, {}))
|
||||
current_syntax = None
|
||||
pubsub_service = pubsub_node = ''
|
||||
pubsub_service = self.args.service
|
||||
pubsub_node = self.args.node
|
||||
pubsub_item = None
|
||||
|
||||
if command not in ('new', 'last', 'current'):
|
||||
|
|
@ -573,6 +577,9 @@ class Edit(base.CommandBase, BlogCommon):
|
|||
parsed_url = urlparse.urlsplit(url)
|
||||
|
||||
if parsed_url.scheme == 'xmpp':
|
||||
if self.args.service or self.args.node:
|
||||
self.parser.error(_(u"You can't use URI and --service or --node at the same time"))
|
||||
|
||||
self.disp(u"XMPP URI used: {}".format(url),2)
|
||||
# XXX: if we have not xmpp: URI here, we'll take the data as a file path
|
||||
pubsub_service = parsed_url.path
|
||||
|
|
|
|||
Loading…
Reference in a new issue