Mercurial > libervia-backend
annotate libervia/cli/cmd_event.py @ 4094:c3b68fdc2de7
component AP gateway: fix handling of XMPP comments authors:
the gateway was supposing that comments where emitted from PEP of author. While this is
the case for most blog posts, it's not for comments. Instead the component is now using
`author_jid` which is retrieved by XEP-0277 plugin, and reject the item if the auhor is
not verified (i.e. if `publisher` attribute is not set by XMPP service).
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 12 Jun 2023 14:50:43 +0200 |
parents | e9d800b105c1 |
children | 0d7bb4df2343 |
rev | line source |
---|---|
3137 | 1 #!/usr/bin/env python3 |
2 | |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
4 # libervia-cli: Libervia CLI frontend |
3479 | 5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
21 import argparse |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
22 import sys |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
23 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
24 from sqlalchemy import desc |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
25 |
4071
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
26 from libervia.backend.core.i18n import _ |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
27 from libervia.backend.core.i18n import _ |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
28 from libervia.backend.tools.common import data_format |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
29 from libervia.backend.tools.common import data_format |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
30 from libervia.backend.tools.common import date_utils |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
31 from libervia.backend.tools.common.ansi import ANSI as A |
4b842c1fb686
refactoring: renamed `sat` package to `libervia.backend`
Goffi <goffi@goffi.org>
parents:
4037
diff
changeset
|
32 from libervia.backend.tools.common.ansi import ANSI as A |
4075
47401850dec6
refactoring: rename `libervia.frontends.jp` to `libervia.cli`
Goffi <goffi@goffi.org>
parents:
4074
diff
changeset
|
33 from libervia.cli import common |
47401850dec6
refactoring: rename `libervia.frontends.jp` to `libervia.cli`
Goffi <goffi@goffi.org>
parents:
4074
diff
changeset
|
34 from libervia.cli.constants import Const as C |
47401850dec6
refactoring: rename `libervia.frontends.jp` to `libervia.cli`
Goffi <goffi@goffi.org>
parents:
4074
diff
changeset
|
35 from libervia.cli.constants import Const as C |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
36 |
3254
6cf4bd6972c2
core, frontends: avatar refactoring:
Goffi <goffi@goffi.org>
parents:
3137
diff
changeset
|
37 from . import base |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 __commands__ = ["Event"] |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 |
3028 | 41 OUTPUT_OPT_TABLE = "table" |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
42 |
3276
81c8910db91f
jp (event): new `list` command to get evens available in a service
Goffi <goffi@goffi.org>
parents:
3254
diff
changeset
|
43 |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 class Get(base.CommandBase): |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
46 base.CommandBase.__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
47 self, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
48 host, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
49 "get", |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
50 use_output=C.OUTPUT_LIST_DICT, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
51 use_pubsub=True, |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
52 pubsub_flags={C.MULTI_ITEMS, C.CACHE}, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
53 use_verbose=True, |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
54 extra_outputs={ |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
55 "default": self.default_output, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
56 }, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
57 help=_("get event(s) data"), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
58 ) |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
59 |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
60 def add_parser_options(self): |
2532 | 61 pass |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
62 |
3040 | 63 async def start(self): |
64 try: | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
65 events_data_s = await self.host.bridge.events_get( |
3040 | 66 self.args.service, |
67 self.args.node, | |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
68 self.args.items, |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
69 self.get_pubsub_extra(), |
3040 | 70 self.profile, |
71 ) | |
72 except Exception as e: | |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
73 self.disp(f"can't get events data: {e}", error=True) |
3040 | 74 self.host.quit(C.EXIT_BRIDGE_ERRBACK) |
75 else: | |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
76 events_data = data_format.deserialise(events_data_s, type_check=list) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
77 await self.output(events_data) |
3040 | 78 self.host.quit() |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
79 |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
80 def default_output(self, events): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
81 nb_events = len(events) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
82 for idx, event in enumerate(events): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
83 names = event["name"] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
84 name = names.get("") or next(iter(names.values())) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
85 start = event["start"] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
86 start_human = date_utils.date_fmt( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
87 start, "medium", tz_info=date_utils.TZ_LOCAL |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
88 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
89 end = event["end"] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
90 self.disp(A.color( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
91 A.BOLD, start_human, A.RESET, " ", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
92 f"({date_utils.delta2human(start, end)}) ", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
93 C.A_HEADER, name |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
94 )) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
95 if self.verbosity > 0: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
96 descriptions = event.get("descriptions", []) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
97 if descriptions: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
98 self.disp(descriptions[0]["description"]) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
99 if idx < (nb_events-1): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
100 self.disp("") |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
101 |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
102 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
103 class CategoryAction(argparse.Action): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
104 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
105 def __init__(self, option_strings, dest, nargs=None, metavar=None, **kwargs): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
106 if nargs is not None or metavar is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
107 raise ValueError("nargs and metavar must not be used") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
108 if metavar is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
109 metavar="TERM WIKIDATA_ID LANG" |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
110 if "--help" in sys.argv: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
111 # FIXME: dirty workaround to have correct --help message |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
112 # argparse doesn't normally allow variable number of arguments beside "+" |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
113 # and "*", this workaround show METAVAR as 3 arguments were expected, while |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
114 # we can actuall use 1, 2 or 3. |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
115 nargs = 3 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
116 metavar = ("TERM", "[WIKIDATA_ID]", "[LANG]") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
117 else: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
118 nargs = "+" |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
119 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
120 super().__init__(option_strings, dest, metavar=metavar, nargs=nargs, **kwargs) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
121 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
122 def __call__(self, parser, namespace, values, option_string=None): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
123 categories = getattr(namespace, self.dest) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
124 if categories is None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
125 categories = [] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
126 setattr(namespace, self.dest, categories) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
127 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
128 if not values: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
129 parser.error("category values must be set") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
130 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
131 category = { |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
132 "term": values[0] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
133 } |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
134 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
135 if len(values) == 1: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
136 pass |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
137 elif len(values) == 2: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
138 value = values[1] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
139 if value.startswith("Q"): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
140 category["wikidata_id"] = value |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
141 else: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
142 category["language"] = value |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
143 elif len(values) == 3: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
144 __, wd, lang = values |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
145 category["wikidata_id"] = wd |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
146 category["language"] = lang |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
147 else: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
148 parser.error("Category can't have more than 3 arguments") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
149 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
150 categories.append(category) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
151 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
152 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
153 class EventBase: |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
154 def add_parser_options(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
155 self.parser.add_argument( |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
156 "-S", "--start", type=base.date_decoder, metavar="TIME_PATTERN", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
157 help=_("the start time of the event")) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
158 end_group = self.parser.add_mutually_exclusive_group() |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
159 end_group.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
160 "-E", "--end", type=base.date_decoder, metavar="TIME_PATTERN", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
161 help=_("the time of the end of the event")) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
162 end_group.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
163 "-D", "--duration", help=_("duration of the event")) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
164 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
165 "-H", "--head-picture", help="URL to a picture to use as head-picture" |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
166 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
167 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
168 "-d", "--description", help="plain text description the event" |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
169 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
170 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
171 "-C", "--category", action=CategoryAction, dest="categories", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
172 help="Category of the event" |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
173 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
174 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
175 "-l", "--location", action="append", nargs="+", metavar="[KEY] VALUE", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
176 help="Location metadata" |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
177 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
178 rsvp_group = self.parser.add_mutually_exclusive_group() |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
179 rsvp_group.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
180 "--rsvp", action="store_true", help=_("RSVP is requested")) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
181 rsvp_group.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
182 "--rsvp_json", metavar="JSON", help=_("JSON description of RSVP form")) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
183 for node_type in ("invitees", "comments", "blog", "schedule"): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
184 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
185 f"--{node_type}", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
186 nargs=2, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
187 metavar=("JID", "NODE"), |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
188 help=_("link {node_type} pubsub node").format(node_type=node_type) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
189 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
190 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
191 "-a", "--attachment", action="append", dest="attachments", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
192 help=_("attach a file") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
193 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
194 self.parser.add_argument("--website", help=_("website of the event")) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
195 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
196 "--status", choices=["confirmed", "tentative", "cancelled"], |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
197 help=_("status of the event") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
198 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
199 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
200 "-T", "--language", metavar="LANG", action="append", dest="languages", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
201 help=_("main languages spoken at the event") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
202 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
203 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
204 "--wheelchair", choices=["full", "partial", "no"], |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
205 help=_("is the location accessible by wheelchair") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
206 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
207 self.parser.add_argument( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
208 "--external", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
209 nargs=3, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
210 metavar=("JID", "NODE", "ITEM"), |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
211 help=_("link to an external event") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
212 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
213 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
214 def get_event_data(self): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
215 if self.args.duration is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
216 if self.args.start is None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
217 self.parser.error("--start must be send if --duration is used") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
218 # if duration is used, we simply add it to start time to get end time |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
219 self.args.end = base.date_decoder(f"{self.args.start} + {self.args.duration}") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
220 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
221 event = {} |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
222 if self.args.name is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
223 event["name"] = {"": self.args.name} |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
224 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
225 if self.args.start is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
226 event["start"] = self.args.start |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
227 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
228 if self.args.end is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
229 event["end"] = self.args.end |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
230 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
231 if self.args.head_picture: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
232 event["head-picture"] = { |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
233 "sources": [{ |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
234 "url": self.args.head_picture |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
235 }] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
236 } |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
237 if self.args.description: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
238 event["descriptions"] = [ |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
239 { |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
240 "type": "text", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
241 "description": self.args.description |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
242 } |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
243 ] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
244 if self.args.categories: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
245 event["categories"] = self.args.categories |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
246 if self.args.location is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
247 location = {} |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
248 for location_data in self.args.location: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
249 if len(location_data) == 1: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
250 location["description"] = location_data[0] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
251 else: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
252 key, *values = location_data |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
253 location[key] = " ".join(values) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
254 event["locations"] = [location] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
255 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
256 if self.args.rsvp: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
257 event["rsvp"] = [{}] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
258 elif self.args.rsvp_json: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
259 if isinstance(self.args.rsvp_elt, dict): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
260 event["rsvp"] = [self.args.rsvp_json] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
261 else: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
262 event["rsvp"] = self.args.rsvp_json |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
263 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
264 for node_type in ("invitees", "comments", "blog", "schedule"): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
265 value = getattr(self.args, node_type) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
266 if value: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
267 service, node = value |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
268 event[node_type] = {"service": service, "node": node} |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
269 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
270 if self.args.attachments: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
271 attachments = event["attachments"] = [] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
272 for attachment in self.args.attachments: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
273 attachments.append({ |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
274 "sources": [{"url": attachment}] |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
275 }) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
276 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
277 extra = {} |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
278 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
279 for arg in ("website", "status", "languages"): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
280 value = getattr(self.args, arg) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
281 if value is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
282 extra[arg] = value |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
283 if self.args.wheelchair is not None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
284 extra["accessibility"] = {"wheelchair": self.args.wheelchair} |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
285 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
286 if extra: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
287 event["extra"] = extra |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
288 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
289 if self.args.external: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
290 ext_jid, ext_node, ext_item = self.args.external |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
291 event["external"] = { |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
292 "jid": ext_jid, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
293 "node": ext_node, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
294 "item": ext_item |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
295 } |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
296 return event |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
297 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
298 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
299 class Create(EventBase, base.CommandBase): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
300 def __init__(self, host): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
301 super().__init__( |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
302 host, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
303 "create", |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
304 use_pubsub=True, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
305 help=_("create or replace event"), |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
306 ) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
307 |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
308 def add_parser_options(self): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
309 super().add_parser_options() |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
310 self.parser.add_argument( |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
311 "-i", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
312 "--id", |
3028 | 313 default="", |
314 help=_("ID of the PubSub Item"), | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
315 ) |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
316 # name is mandatory here |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
317 self.parser.add_argument("name", help=_("name of the event")) |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
318 |
3040 | 319 async def start(self): |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
320 if self.args.start is None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
321 self.parser.error("--start must be set") |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
322 event_data = self.get_event_data() |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
323 # we check self.args.end after get_event_data because it may be set there id |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
324 # --duration is used |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
325 if self.args.end is None: |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
326 self.parser.error("--end or --duration must be set") |
3040 | 327 try: |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
328 await self.host.bridge.event_create( |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
329 data_format.serialise(event_data), |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
330 self.args.id, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
331 self.args.node, |
3040 | 332 self.args.service, |
333 self.profile, | |
334 ) | |
335 except Exception as e: | |
336 self.disp(f"can't create event: {e}", error=True) | |
337 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
338 else: | |
4090 | 339 self.disp(_("Event created successfuly")) |
3040 | 340 self.host.quit() |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
341 |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
342 |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
343 class Modify(EventBase, base.CommandBase): |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
344 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
345 super(Modify, self).__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
346 host, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
347 "modify", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
348 use_pubsub=True, |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
349 pubsub_flags={C.SINGLE_ITEM}, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
350 help=_("modify an existing event"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
351 ) |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
352 EventBase.__init__(self) |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
353 |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
354 def add_parser_options(self): |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
355 super().add_parser_options() |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
356 # name is optional here |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
357 self.parser.add_argument("-N", "--name", help=_("name of the event")) |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
358 |
3040 | 359 async def start(self): |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
360 event_data = self.get_event_data() |
3040 | 361 try: |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
362 await self.host.bridge.event_modify( |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
363 data_format.serialise(event_data), |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
364 self.args.item, |
3040 | 365 self.args.service, |
366 self.args.node, | |
367 self.profile, | |
368 ) | |
369 except Exception as e: | |
370 self.disp(f"can't update event data: {e}", error=True) | |
371 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
372 else: | |
373 self.host.quit() | |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
374 |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
375 |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
376 class InviteeGet(base.CommandBase): |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
377 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
378 base.CommandBase.__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
379 self, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
380 host, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
381 "get", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
382 use_output=C.OUTPUT_DICT, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
383 use_pubsub=True, |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
384 pubsub_flags={C.SINGLE_ITEM}, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
385 use_verbose=True, |
3028 | 386 help=_("get event attendance"), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
387 ) |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
388 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
389 def add_parser_options(self): |
3040 | 390 self.parser.add_argument( |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
391 "-j", "--jid", action="append", dest="jids", default=[], |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
392 help=_("only retrieve RSVP from those JIDs") |
3040 | 393 ) |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
394 |
3040 | 395 async def start(self): |
396 try: | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
397 event_data_s = await self.host.bridge.event_invitee_get( |
3040 | 398 self.args.service, |
399 self.args.node, | |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
400 self.args.item, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
401 self.args.jids, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
402 "", |
3040 | 403 self.profile, |
404 ) | |
405 except Exception as e: | |
406 self.disp(f"can't get event data: {e}", error=True) | |
407 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
408 else: | |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
409 event_data = data_format.deserialise(event_data_s) |
3040 | 410 await self.output(event_data) |
411 self.host.quit() | |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
412 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
413 |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
414 class InviteeSet(base.CommandBase): |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
415 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
416 super(InviteeSet, self).__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
417 host, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
418 "set", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
419 use_pubsub=True, |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
420 pubsub_flags={C.SINGLE_ITEM}, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
421 help=_("set event attendance"), |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
422 ) |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
423 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
424 def add_parser_options(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
425 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
426 "-f", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
427 "--field", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
428 action="append", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
429 nargs=2, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
430 dest="fields", |
3028 | 431 metavar=("KEY", "VALUE"), |
432 help=_("configuration field to set"), | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
433 ) |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
434 |
3040 | 435 async def start(self): |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
436 # TODO: handle RSVP with XMLUI in a similar way as for `ad-hoc run` |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
437 fields = dict(self.args.fields) if self.args.fields else {} |
3040 | 438 try: |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
439 self.host.bridge.event_invitee_set( |
3040 | 440 self.args.service, |
441 self.args.node, | |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
442 self.args.item, |
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
443 data_format.serialise(fields), |
3040 | 444 self.profile, |
445 ) | |
446 except Exception as e: | |
447 self.disp(f"can't set event data: {e}", error=True) | |
448 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
449 else: | |
450 self.host.quit() | |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
451 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
452 |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
453 class InviteesList(base.CommandBase): |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
454 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
455 extra_outputs = {"default": self.default_output} |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
456 base.CommandBase.__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
457 self, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
458 host, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
459 "list", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
460 use_output=C.OUTPUT_DICT_DICT, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
461 extra_outputs=extra_outputs, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
462 use_pubsub=True, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
463 pubsub_flags={C.NODE}, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
464 use_verbose=True, |
3028 | 465 help=_("get event attendance"), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
466 ) |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
467 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
468 def add_parser_options(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
469 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
470 "-m", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
471 "--missing", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
472 action="store_true", |
3028 | 473 help=_("show missing people (invited but no R.S.V.P. so far)"), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
474 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
475 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
476 "-R", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
477 "--no-rsvp", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
478 action="store_true", |
3028 | 479 help=_("don't show people which gave R.S.V.P."), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
480 ) |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
481 |
2491
5895e4daae8c
jp (event): added missing arg to _attend_filter
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
482 def _attend_filter(self, attend, row): |
3028 | 483 if attend == "yes": |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
484 attend_color = C.A_SUCCESS |
3028 | 485 elif attend == "no": |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
486 attend_color = C.A_FAILURE |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
487 else: |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
488 attend_color = A.FG_WHITE |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
489 return A.color(attend_color, attend) |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
490 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
491 def _guests_filter(self, guests): |
3028 | 492 return "(" + str(guests) + ")" if guests else "" |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
493 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
494 def default_output(self, event_data): |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
495 data = [] |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
496 attendees_yes = 0 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
497 attendees_maybe = 0 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
498 attendees_no = 0 |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
499 attendees_missing = 0 |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
500 guests = 0 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
501 guests_maybe = 0 |
3028 | 502 for jid_, jid_data in event_data.items(): |
503 jid_data["jid"] = jid_ | |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
504 try: |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
505 guests_int = int(jid_data["guests"]) |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
506 except (ValueError, KeyError): |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
507 pass |
3028 | 508 attend = jid_data.get("attend", "") |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
509 if attend == "yes": |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
510 attendees_yes += 1 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
511 guests += guests_int |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
512 elif attend == "maybe": |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
513 attendees_maybe += 1 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
514 guests_maybe += guests_int |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
515 elif attend == "no": |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
516 attendees_no += 1 |
3028 | 517 jid_data["guests"] = "" |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
518 else: |
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
519 attendees_missing += 1 |
3028 | 520 jid_data["guests"] = "" |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
521 data.append(jid_data) |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
522 |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
523 show_table = OUTPUT_OPT_TABLE in self.args.output_opts |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
524 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
525 table = common.Table.from_list_dict( |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
526 self.host, |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
527 data, |
3568
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
528 ("nick",) + (("jid",) if self.host.verbosity else ()) + ("attend", "guests"), |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
529 headers=None, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
530 filters={ |
3028 | 531 "nick": A.color(C.A_HEADER, "{}" if show_table else "{} "), |
532 "jid": "{}" if show_table else "{} ", | |
533 "attend": self._attend_filter, | |
534 "guests": "{}" if show_table else self._guests_filter, | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
535 }, |
3028 | 536 defaults={"nick": "", "attend": "", "guests": 1}, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
537 ) |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
538 if show_table: |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
539 table.display() |
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
540 else: |
3028 | 541 table.display_blank(show_header=False, col_sep="") |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
542 |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
543 if not self.args.no_rsvp: |
3028 | 544 self.disp("") |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
545 self.disp( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
546 A.color( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
547 C.A_SUBHEADER, |
3028 | 548 _("Attendees: "), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
549 A.RESET, |
3028 | 550 str(len(data)), |
551 _(" ("), | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
552 C.A_SUCCESS, |
3028 | 553 _("yes: "), |
554 str(attendees_yes), | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
555 A.FG_WHITE, |
3028 | 556 _(", maybe: "), |
557 str(attendees_maybe), | |
558 ", ", | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
559 C.A_FAILURE, |
3028 | 560 _("no: "), |
561 str(attendees_no), | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
562 A.RESET, |
3028 | 563 ")", |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
564 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
565 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
566 self.disp( |
3028 | 567 A.color(C.A_SUBHEADER, _("confirmed guests: "), A.RESET, str(guests)) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
568 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
569 self.disp( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
570 A.color( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
571 C.A_SUBHEADER, |
3028 | 572 _("unconfirmed guests: "), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
573 A.RESET, |
3028 | 574 str(guests_maybe), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
575 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
576 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
577 self.disp( |
3568
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
578 A.color(C.A_SUBHEADER, _("total: "), A.RESET, str(guests + guests_maybe)) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
579 ) |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
580 if attendees_missing: |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
581 self.disp("") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
582 self.disp( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
583 A.color( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
584 C.A_SUBHEADER, |
3028 | 585 _("missing people (no reply): "), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
586 A.RESET, |
3028 | 587 str(attendees_missing), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
588 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
589 ) |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
590 |
3040 | 591 async def start(self): |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
592 if self.args.no_rsvp and not self.args.missing: |
3028 | 593 self.parser.error(_("you need to use --missing if you use --no-rsvp")) |
3040 | 594 if not self.args.missing: |
595 prefilled = {} | |
596 else: | |
597 # we get prefilled data with all people | |
598 try: | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
599 affiliations = await self.host.bridge.ps_node_affiliations_get( |
3040 | 600 self.args.service, |
601 self.args.node, | |
602 self.profile, | |
603 ) | |
604 except Exception as e: | |
605 self.disp(f"can't get node affiliations: {e}", error=True) | |
606 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
607 else: | |
608 # we fill all affiliations with empty data, answered one will be filled | |
609 # below. We only consider people with "publisher" affiliation as invited, | |
610 # creators are not, and members can just observe | |
611 prefilled = { | |
612 jid_: {} | |
613 for jid_, affiliation in affiliations.items() | |
614 if affiliation in ("publisher",) | |
615 } | |
616 | |
617 try: | |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
618 event_data = await self.host.bridge.event_invitees_list( |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
619 self.args.service, |
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
620 self.args.node, |
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
621 self.profile, |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
622 ) |
3040 | 623 except Exception as e: |
624 self.disp(f"can't get event data: {e}", error=True) | |
625 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
626 | |
3568
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
627 # we fill nicknames and keep only requested people |
3040 | 628 |
629 if self.args.no_rsvp: | |
630 for jid_ in event_data: | |
631 # if there is a jid in event_data it must be there in prefilled too | |
632 # otherwie somebody is not on the invitees list | |
633 try: | |
634 del prefilled[jid_] | |
635 except KeyError: | |
3568
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
636 self.disp( |
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
637 A.color( |
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
638 C.A_WARNING, |
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
639 f"We got a RSVP from somebody who was not in invitees " |
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
640 f"list: {jid_}", |
3040 | 641 ), |
3568
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
642 error=True, |
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
643 ) |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
644 else: |
3040 | 645 # we replace empty dicts for existing people with R.S.V.P. data |
646 prefilled.update(event_data) | |
647 | |
3568
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
648 # we get nicknames for everybody, make it easier for organisers |
3040 | 649 for jid_, data in prefilled.items(): |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
650 id_data = await self.host.bridge.identity_get(jid_, [], True, self.profile) |
3254
6cf4bd6972c2
core, frontends: avatar refactoring:
Goffi <goffi@goffi.org>
parents:
3137
diff
changeset
|
651 id_data = data_format.deserialise(id_data) |
3568
04283582966f
core, frontends: fix invalid translatable strings.
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
652 data["nick"] = id_data["nicknames"][0] |
3040 | 653 |
654 await self.output(prefilled) | |
655 self.host.quit() | |
2321
c2a9da96e40b
jp (event/attendee/list): added --missing to show missing people (ones who didn't replied) and --no-rsvp to hide ones who answered
Goffi <goffi@goffi.org>
parents:
2301
diff
changeset
|
656 |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
657 |
2288
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
658 class InviteeInvite(base.CommandBase): |
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
659 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
660 base.CommandBase.__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
661 self, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
662 host, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
663 "invite", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
664 use_pubsub=True, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
665 pubsub_flags={C.NODE, C.SINGLE_ITEM}, |
3028 | 666 help=_("invite someone to the event through email"), |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
667 ) |
2288
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
668 |
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
669 def add_parser_options(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
670 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
671 "-e", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
672 "--email", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
673 action="append", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
674 default=[], |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
675 help="email(s) to send the invitation to", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
676 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
677 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
678 "-N", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
679 "--name", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
680 default="", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
681 help="name of the invitee", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
682 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
683 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
684 "-H", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
685 "--host-name", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
686 default="", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
687 help="name of the host", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
688 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
689 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
690 "-l", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
691 "--lang", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
692 default="", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
693 help="main language spoken by the invitee", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
694 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
695 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
696 "-U", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
697 "--url-template", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
698 default="", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
699 help="template to construct the URL", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
700 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
701 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
702 "-S", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
703 "--subject", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
704 default="", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
705 help="subject of the invitation email (default: generic subject)", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
706 ) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
707 self.parser.add_argument( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
708 "-b", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
709 "--body", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
710 default="", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
711 help="body of the invitation email (default: generic body)", |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
712 ) |
2288
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
713 |
3040 | 714 async def start(self): |
2291
c05000d00dbb
plugin events, invitations + jp (event/create, invitation/invitee/invite): several emails addresses can now be specified for a single invitation:
Goffi <goffi@goffi.org>
parents:
2288
diff
changeset
|
715 email = self.args.email[0] if self.args.email else None |
c05000d00dbb
plugin events, invitations + jp (event/create, invitation/invitee/invite): several emails addresses can now be specified for a single invitation:
Goffi <goffi@goffi.org>
parents:
2288
diff
changeset
|
716 emails_extra = self.args.email[1:] |
2288
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
717 |
3040 | 718 try: |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3906
diff
changeset
|
719 await self.host.bridge.event_invite_by_email( |
3040 | 720 self.args.service, |
721 self.args.node, | |
722 self.args.item, | |
723 email, | |
724 emails_extra, | |
725 self.args.name, | |
726 self.args.host_name, | |
727 self.args.lang, | |
728 self.args.url_template, | |
729 self.args.subject, | |
730 self.args.body, | |
731 self.args.profile, | |
732 ) | |
733 except Exception as e: | |
734 self.disp(f"can't create invitation: {e}", error=True) | |
735 self.host.quit(C.EXIT_BRIDGE_ERRBACK) | |
736 else: | |
737 self.host.quit() | |
2288
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
738 |
f4d8d83a50e2
jp (event/invitee/invite): command to use new eventInvite backend method
Goffi <goffi@goffi.org>
parents:
2284
diff
changeset
|
739 |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
740 class Invitee(base.CommandBase): |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2299
diff
changeset
|
741 subcommands = (InviteeGet, InviteeSet, InviteesList, InviteeInvite) |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
742 |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
743 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
744 super(Invitee, self).__init__( |
3028 | 745 host, "invitee", use_profile=False, help=_("manage invities") |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
746 ) |
2244
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
747 |
9d49e66bdbf2
jp (event): creation/modification of main event + invitee commands are now in a "invitee" subcommand
Goffi <goffi@goffi.org>
parents:
2236
diff
changeset
|
748 |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
749 class Event(base.CommandBase): |
3906
d8baf92cb921
cli (event): update commands following changes in events:
Goffi <goffi@goffi.org>
parents:
3568
diff
changeset
|
750 subcommands = (Get, Create, Modify, Invitee) |
2236
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
751 |
4b1873ce6b61
jp (event): event handling commands, first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
752 def __init__(self, host): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
753 super(Event, self).__init__( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
754 host, "event", use_profile=False, help=_("event management") |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2616
diff
changeset
|
755 ) |