(Steve Dougherty)
2013-06-10: Allow local identity lookup by id. Allow local identity lookup by id. Useful for looking up identities by their wot_identities entries.
diff --git a/infocalypse/wot.py b/infocalypse/wot.py --- a/infocalypse/wot.py +++ b/infocalypse/wot.py @@ -32,10 +32,12 @@ def execute_setup_wot(ui_, opts): cfg.defaults['DEFAULT_TRUSTER'] = response['Identity'] Config.to_file(cfg) -def resolve_local_identity(ui, nickname_prefix=None): + +def resolve_local_identity(ui, nickname_prefix=None, key_prefix=None): """ Mercurial ui for error messages. Nickname prefix should be enough to not be ambiguous. + If the nickname is not set the key must be. # TODO: Does not support duplicate nicknames between local identities. # Could support looking at identity to resolve further. @@ -59,10 +61,23 @@ def resolve_local_identity(ui, nickname_ # TODO: Single function to resolve identity used for own and remote? # Not preferable if the flag leads to two different code paths. + prefix = 'Replies.Identity' + id_num = -1 + # Go by full key instead. + if nickname_prefix is None: + for item in response.iteritems(): + if item[1] == key_prefix: + # Assuming identities will always be unique. + id_num = item[0][len(prefix):] + return read_local_identity(response, id_num) + + ui.warn("No identity found with key '{0}'.\n".format(key_prefix)) + return + + # TODO: Cleaner flow of control between key-only and nick-and-optional-key # Find nicknames starting with the supplied nickname prefix. prefix = 'Replies.Nickname' nickname = None - id_num = -1 for key in response.iterkeys(): if key.startswith(prefix) and\ response[key].startswith(nickname_prefix):