annotate libervia/cli/constants.py @ 4219:1b5cf2ee1d86

plugin XEP-0384, XEP-0391: download missing devices list: when a peer jid was not in our roster, devices list was not retrieved, resulting in failed en/decryption. This patch does check it and download missing devices list in necessary. There is no subscription managed yet, so the list won't be updated in case of new devices, this should be addressed at some point.
author Goffi <goffi@goffi.org>
date Tue, 05 Mar 2024 17:31:36 +0100
parents 0f8ea0768a3b
children 0d7bb4df2343
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3137
559a625a236b fixed shebangs
Goffi <goffi@goffi.org>
parents: 3136
diff changeset
1 #!/usr/bin/env python3
559a625a236b fixed shebangs
Goffi <goffi@goffi.org>
parents: 3136
diff changeset
2
970
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
3
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # Primitivus: a SAT frontend
3479
be6d91572633 date update
Goffi <goffi@goffi.org>
parents: 3406
diff changeset
5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org)
970
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
6
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # (at your option) any later version.
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
11
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
16
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
19
4074
26b7ed2817da refactoring: rename `sat_frontends` to `libervia.frontends`
Goffi <goffi@goffi.org>
parents: 4071
diff changeset
20 from libervia.frontends.quick_frontend import constants
4071
4b842c1fb686 refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents: 3661
diff changeset
21 from libervia.backend.tools.common.ansi import ANSI as A
4129
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
22 from rich.theme import Theme
970
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
23
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
24
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
25 class Const(constants.Const):
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
26
3555
53fec6309fa3 cli: update constants to use new name
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
27 APP_NAME = "Libervia CLI"
53fec6309fa3 cli: update constants to use new name
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
28 APP_COMPONENT = "CLI"
53fec6309fa3 cli: update constants to use new name
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
29 APP_NAME_ALT = "jp"
53fec6309fa3 cli: update constants to use new name
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
30 APP_NAME_FILE = "libervia_cli"
53fec6309fa3 cli: update constants to use new name
Goffi <goffi@goffi.org>
parents: 3479
diff changeset
31 CONFIG_SECTION = APP_COMPONENT.lower()
3028
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
32 PLUGIN_CMD = "commands"
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
33 PLUGIN_OUTPUT = "outputs"
4206
0f8ea0768a3b cli (call): implement GUI output:
Goffi <goffi@goffi.org>
parents: 4143
diff changeset
34 #: All outputs are managed directly by the command, ``extra_outputs`` must be
0f8ea0768a3b cli (call): implement GUI output:
Goffi <goffi@goffi.org>
parents: 4143
diff changeset
35 #: specified.
0f8ea0768a3b cli (call): implement GUI output:
Goffi <goffi@goffi.org>
parents: 4143
diff changeset
36 OUTPUT_CUSTOM = "custom"
3028
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
37 OUTPUT_TEXT = "text" # blob of unicode text
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
38 OUTPUT_DICT = "dict" # simple key/value dictionary
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
39 OUTPUT_LIST = "list"
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
40 OUTPUT_LIST_DICT = "list_dict" # list of dictionaries
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
41 OUTPUT_DICT_DICT = "dict_dict" # dict of nested dictionaries
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
42 OUTPUT_MESS = "mess" # messages (chat)
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
43 OUTPUT_COMPLEX = "complex" # complex data (e.g. multi-level dictionary)
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
44 OUTPUT_XML = "xml" # XML node (as unicode string)
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
45 OUTPUT_LIST_XML = "list_xml" # list of XML nodes (as unicode strings)
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
46 OUTPUT_XMLUI = "xmlui" # XMLUI as unicode string
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
47 OUTPUT_LIST_XMLUI = "list_xmlui" # list of XMLUI (as unicode strings)
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
48 OUTPUT_TYPES = (
4206
0f8ea0768a3b cli (call): implement GUI output:
Goffi <goffi@goffi.org>
parents: 4143
diff changeset
49 OUTPUT_CUSTOM,
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
50 OUTPUT_TEXT,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
51 OUTPUT_DICT,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
52 OUTPUT_LIST,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
53 OUTPUT_LIST_DICT,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
54 OUTPUT_DICT_DICT,
2707
b156b78b8f9a jp (output): new OUTPUT_MESS output to handle data containing chat messages
Goffi <goffi@goffi.org>
parents: 2624
diff changeset
55 OUTPUT_MESS,
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
56 OUTPUT_COMPLEX,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
57 OUTPUT_XML,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
58 OUTPUT_LIST_XML,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
59 OUTPUT_XMLUI,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
60 OUTPUT_LIST_XMLUI,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
61 )
3640
f4c02bdb2d91 CLI: use global constants for output names
Goffi <goffi@goffi.org>
parents: 3555
diff changeset
62 OUTPUT_NAME_SIMPLE = "simple"
f4c02bdb2d91 CLI: use global constants for output names
Goffi <goffi@goffi.org>
parents: 3555
diff changeset
63 OUTPUT_NAME_XML = "xml"
f4c02bdb2d91 CLI: use global constants for output names
Goffi <goffi@goffi.org>
parents: 3555
diff changeset
64 OUTPUT_NAME_XML_RAW = "xml-raw"
f4c02bdb2d91 CLI: use global constants for output names
Goffi <goffi@goffi.org>
parents: 3555
diff changeset
65 OUTPUT_NAME_JSON = "json"
f4c02bdb2d91 CLI: use global constants for output names
Goffi <goffi@goffi.org>
parents: 3555
diff changeset
66 OUTPUT_NAME_JSON_RAW = "json-raw"
1951
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
67
2532
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
68 # Pubsub options flags
3028
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
69 SERVICE = "service" # service required
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
70 NODE = "node" # node required
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
71 ITEM = "item" # item required
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
72 SINGLE_ITEM = "single_item" # only one item is allowed
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
73 MULTI_ITEMS = "multi_items" # multiple items are allowed
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2777
diff changeset
74 NO_MAX = "no_max" # don't add --max option for multi items
3600
1709f0a78f50 jp (base): add flag for `use_pubsub` to add cache skipping option
Goffi <goffi@goffi.org>
parents: 3555
diff changeset
75 CACHE = "cache" # add cache control flag
2532
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
76
2232
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
77 # ANSI
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
78 A_HEADER = A.BOLD + A.FG_YELLOW
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
79 A_SUBHEADER = A.BOLD + A.FG_RED
2485
512c443a58ba jp (forums): forums handling commands, first draft
Goffi <goffi@goffi.org>
parents: 2483
diff changeset
80 # A_LEVEL_COLORS may be used to cycle on colors according to depth of data
512c443a58ba jp (forums): forums handling commands, first draft
Goffi <goffi@goffi.org>
parents: 2483
diff changeset
81 A_LEVEL_COLORS = (A_HEADER, A.BOLD + A.FG_BLUE, A.FG_MAGENTA, A.FG_CYAN)
2278
489efbda377c jp (input): input command first draft:
Goffi <goffi@goffi.org>
parents: 2268
diff changeset
82 A_SUCCESS = A.BOLD + A.FG_GREEN
489efbda377c jp (input): input command first draft:
Goffi <goffi@goffi.org>
parents: 2268
diff changeset
83 A_FAILURE = A.BOLD + A.FG_RED
3040
fee60f17ebac jp: jp asyncio port:
Goffi <goffi@goffi.org>
parents: 3028
diff changeset
84 A_WARNING = A.BOLD + A.FG_RED
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
85 #  A_PROMPT_* is for shell
2355
0fed4a1c033a jp (shell): changed prompt colour
Goffi <goffi@goffi.org>
parents: 2309
diff changeset
86 A_PROMPT_PATH = A.BOLD + A.FG_CYAN
2309
c7a72b75232b jp (shell): shell command (REPL mode), first draft:
Goffi <goffi@goffi.org>
parents: 2295
diff changeset
87 A_PROMPT_SUF = A.BOLD
2505
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
88 # Files
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
89 A_DIRECTORY = A.BOLD + A.FG_CYAN
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
90 A_FILE = A.FG_WHITE
4129
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
91
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
92 # rich
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
93 THEME_DEFAULT = Theme({
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
94 "priority_low": "green",
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
95 "priority_medium": "yellow",
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
96 "priority_high": "bold magenta",
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
97 "priority_urgent": "bold red",
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
98 "notif_title": "bold",
4143
849721e1563b cli: `call` command:
Goffi <goffi@goffi.org>
parents: 4129
diff changeset
99 "shortcut": "bold underline"
4129
51744ad00a42 cli: `rich` initial integration
Goffi <goffi@goffi.org>
parents: 4075
diff changeset
100 })