# HG changeset patch # User Goffi # Date 1665859020 -7200 # Node ID 6939594ba77e5d59cb6720cee8ef682bc691b3e2 # Parent 5980ea188f8746ab0380b88e7cdc5c103f557474 cli (pubsub/get): add `--no-decrypt` flag to disable automatic decryption: rel 380 diff -r 5980ea188f87 -r 6939594ba77e sat_frontends/jp/base.py --- a/sat_frontends/jp/base.py Sat Oct 15 20:37:00 2022 +0200 +++ b/sat_frontends/jp/base.py Sat Oct 15 20:37:00 2022 +0200 @@ -34,7 +34,7 @@ import termios from pathlib import Path from glob import iglob -from typing import Optional, Set +from typing import Optional, Set, Union from importlib import import_module from sat_frontends.tools.jid import JID from sat.tools import config @@ -979,26 +979,35 @@ return full_jid.rsplit("/", 1)[0] -class CommandBase(object): +class CommandBase: - def __init__(self, host, name, use_profile=True, use_output=False, extra_outputs=None, - need_connect=None, help=None, **kwargs): + def __init__( + self, + host: LiberviaCli, + name: str, + use_profile: bool = True, + use_output: Union[bool, str] = False, + extra_outputs: Optional[dict] = None, + need_connect: Optional[bool] = None, + help: Optional[str] = None, + **kwargs + ): """Initialise CommandBase @param host: Jp instance - @param name(unicode): name of the new command - @param use_profile(bool): if True, add profile selection/connection commands - @param use_output(bool, unicode): if not False, add --output option - @param extra_outputs(dict): list of command specific outputs: + @param name: name of the new command + @param use_profile: if True, add profile selection/connection commands + @param use_output: if not False, add --output option + @param extra_outputs: list of command specific outputs: key is output name ("default" to use as main output) value is a callable which will format the output (data will be used as only argument) if a key already exists with normal outputs, the extra one will be used - @param need_connect(bool, None): True if profile connection is needed + @param need_connect: True if profile connection is needed False else (profile session must still be started) None to set auto value (i.e. True if use_profile is set) Can't be set if use_profile is False - @param help(unicode): help message to display + @param help: help message to display @param **kwargs: args passed to ArgumentParser use_* are handled directly, they can be: - use_progress(bool): if True, add progress bar activation option diff -r 5980ea188f87 -r 6939594ba77e sat_frontends/jp/cmd_pubsub.py --- a/sat_frontends/jp/cmd_pubsub.py Sat Oct 15 20:37:00 2022 +0200 +++ b/sat_frontends/jp/cmd_pubsub.py Sat Oct 15 20:37:00 2022 +0200 @@ -1281,9 +1281,17 @@ default="", help=_("subscription id"), ) + self.parser.add_argument( + "--no-decrypt", + action="store_true", + help=_("don't do automatic decryption of e2ee items"), + ) #  TODO: a key(s) argument to select keys to display async def start(self): + extra = {} + if self.args.no_decrypt: + extra["decrypt"] = False try: ps_result = data_format.deserialise( await self.host.bridge.psItemsGet( @@ -1292,7 +1300,7 @@ self.args.max, self.args.items, self.args.sub_id, - self.getPubsubExtra(), + self.getPubsubExtra(extra), self.profile, ) )