Mercurial > libervia-backend
annotate sat/plugins/plugin_misc_welcome.py @ 3758:b7cef1b24f83
plugins XEP-0060, XEP-0376, XEP-0465, CLI: PAM + PSS implementation:
- update psSubscriptionsGet to use serialised return value
- implement XEP-0376 Pubsub Account Management
- implement XEP-0465 Public Pubsub Subscriptions
- CLI `pubsub` commands updated accordingly, and added `--public` flags to `subscribe`,
`Subscriptions` and `node Subscriptions get`
⚠ `XEP-0465` is speculative, the XEP has been accepted by council but not published yet.
As is should be the next one, and current latest one is `XEP-0464`, `XEP-0465` has been
anticipated.
rel 365
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 13 May 2022 18:38:05 +0200 |
parents | be6d91572633 |
children | 524856bd7b19 |
rev | line source |
---|---|
3028 | 1 #!/usr/bin/env python3 |
3137 | 2 |
1701 | 3 |
4 # SAT plugin for file tansfer | |
3479 | 5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
1701 | 6 |
7 # This program is free software: you can redistribute it and/or modify | |
8 # it under the terms of the GNU Affero General Public License as published by | |
9 # the Free Software Foundation, either version 3 of the License, or | |
10 # (at your option) any later version. | |
11 | |
12 # This program is distributed in the hope that it will be useful, | |
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 # GNU Affero General Public License for more details. | |
16 | |
17 # You should have received a copy of the GNU Affero General Public License | |
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 | |
20 from sat.core.i18n import _, D_ | |
21 from sat.core.constants import Const as C | |
22 from sat.core.log import getLogger | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
23 |
1701 | 24 log = getLogger(__name__) |
25 from sat.tools import xml_tools | |
26 | |
27 | |
28 PLUGIN_INFO = { | |
2145
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
29 C.PI_NAME: "Welcome", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
30 C.PI_IMPORT_NAME: "WELCOME", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
31 C.PI_TYPE: C.PLUG_TYPE_MISC, |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
32 C.PI_MAIN: "Welcome", |
33c8c4973743
core (plugins): added missing contants + use of new constants in PLUGIN_INFO
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
33 C.PI_HANDLER: "no", |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
34 C.PI_DESCRIPTION: _( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
35 """Plugin which manage welcome message and things to to on first connection.""" |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
36 ), |
1701 | 37 } |
38 | |
39 | |
40 WELCOME_PARAM_CATEGORY = "General" | |
41 WELCOME_PARAM_NAME = "welcome" | |
3028 | 42 WELCOME_PARAM_LABEL = D_("Display welcome message") |
43 WELCOME_MSG_TITLE = D_("Welcome to Libervia/Salut à Toi") | |
1701 | 44 # XXX: this message is mainly targetting libervia new users for now |
45 # (i.e.: it may look weird on other frontends) | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
46 WELCOME_MSG = D_( |
3028 | 47 """Welcome to a free (as in freedom) network! |
1701 | 48 |
1707
94c450972346
primitivus and plugins: renamed a few menus:
souliane <souliane@mailoo.org>
parents:
1703
diff
changeset
|
49 If you have any trouble, or you want to help us for the bug hunting, you can contact us in real time chat by using the “Help / Official chat room” menu. |
1701 | 50 |
1707
94c450972346
primitivus and plugins: renamed a few menus:
souliane <souliane@mailoo.org>
parents:
1703
diff
changeset
|
51 To use Libervia, you'll need to add contacts, either people you know, or people you discover by using the “Contacts / Search directory” menu. |
1701 | 52 |
53 We hope that you'll enjoy using this project. | |
54 | |
55 The Libervia/Salut à Toi Team | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
56 """ |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
57 ) |
1701 | 58 |
59 | |
60 PARAMS = """ | |
61 <params> | |
62 <individual> | |
63 <category name="{category}"> | |
64 <param name="{name}" label="{label}" type="bool" /> | |
65 </category> | |
66 </individual> | |
67 </params> | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
68 """.format( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
69 category=WELCOME_PARAM_CATEGORY, name=WELCOME_PARAM_NAME, label=WELCOME_PARAM_LABEL |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
70 ) |
1701 | 71 |
72 | |
73 class Welcome(object): | |
74 def __init__(self, host): | |
75 log.info(_("plugin Welcome initialization")) | |
76 self.host = host | |
77 host.memory.updateParams(PARAMS) | |
78 | |
2144
1d3f73e065e1
core, jp: component handling + client handling refactoring:
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
79 def profileConnected(self, client): |
1701 | 80 # XXX: if you wan to try first_start again, you'll have to remove manually |
81 # the welcome value from your profile params in sat.db | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
82 welcome = self.host.memory.params.getParamA( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
83 WELCOME_PARAM_NAME, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
84 WELCOME_PARAM_CATEGORY, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
85 use_default=False, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
86 profile_key=client.profile, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
87 ) |
1701 | 88 if welcome is None: |
89 first_start = True | |
90 welcome = True | |
91 else: | |
92 first_start = False | |
93 | |
94 if welcome: | |
95 xmlui = xml_tools.note(WELCOME_MSG, WELCOME_MSG_TITLE) | |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
96 self.host.actionNew({"xmlui": xmlui.toXml()}, profile=client.profile) |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
97 self.host.memory.setParam( |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
98 WELCOME_PARAM_NAME, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
99 C.BOOL_FALSE, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
100 WELCOME_PARAM_CATEGORY, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
101 profile_key=client.profile, |
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
102 ) |
1701 | 103 |
2144
1d3f73e065e1
core, jp: component handling + client handling refactoring:
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
104 self.host.trigger.point("WELCOME", first_start, welcome, client.profile) |