jp (cmd_pubsub): xmpp: uri handling, first draft
This commit is contained in:
parent
9322d617d4
commit
c2ae6579c3
1 changed files with 30 additions and 0 deletions
|
|
@ -20,6 +20,7 @@
|
|||
from sat_frontends.jp.constants import Const as C
|
||||
from sat.core.i18n import _
|
||||
from sat.tools.common import regex
|
||||
from sat.tools.common import uri
|
||||
from sat.tools import config
|
||||
from ConfigParser import NoSectionError, NoOptionError
|
||||
import json
|
||||
|
|
@ -81,6 +82,32 @@ def parse_args(host, cmd_line, **format_kw):
|
|||
return []
|
||||
|
||||
|
||||
def checkURI(args):
|
||||
"""check if args.node is an URI
|
||||
|
||||
if a valid xmpp: URI is found, args.service, args.node and args.item will be set
|
||||
"""
|
||||
# FIXME: Q&D way to handle xmpp: uris, a generic way is needed
|
||||
# and it should be merged with code in BaseEdit
|
||||
if not args.service and args.node.startswith('xmpp:'):
|
||||
try:
|
||||
uri_data = uri.parseXMPPUri(args.node)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
if uri_data[u'type'] == 'pubsub':
|
||||
args.service = uri_data[u'path']
|
||||
args.node = uri_data[u'node']
|
||||
if u'item' in uri_data:
|
||||
try:
|
||||
item = getattr(uri_data, 'item')
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
if item is None:
|
||||
args.item = uri_data
|
||||
|
||||
|
||||
class BaseEdit(object):
|
||||
u"""base class for editing commands
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue