comparison src/plugins/plugin_misc_welcome.py @ 1701:23560a1cd397

plugin welcome: first draft this plugin display a welcome message on first connection (or if General/Welcome param is set to True), and have a trigger point if other plugins want to do action on first connection (like adding entities to roster).
author Goffi <goffi@goffi.org>
date Sun, 29 Nov 2015 22:57:11 +0100
parents
children 280890460822
comparison
equal deleted inserted replaced
1700:0502a1fbe8b5 1701:23560a1cd397
1 #!/usr/bin/python
2 # -*- coding: utf-8 -*-
3
4 # SAT plugin for file tansfer
5 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Jérôme Poisson (goffi@goffi.org)
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
23 log = getLogger(__name__)
24 from sat.tools import xml_tools
25
26
27 PLUGIN_INFO = {
28 "name": "Welcome",
29 "import_name": "WELCOME",
30 "type": C.PLUG_TYPE_MISC,
31 "main": "Welcome",
32 "handler": "no",
33 "description": _("""Plugin which manage welcome message and things to to on first connection.""")
34 }
35
36
37 WELCOME_PARAM_CATEGORY = "General"
38 WELCOME_PARAM_NAME = "welcome"
39 WELCOME_PARAM_LABEL = D_(u"Display welcome message")
40 WELCOME_MSG_TITLE = D_(u"Welcome to Libervia/Salut à Toi")
41 # XXX: this message is mainly targetting libervia new users for now
42 # (i.e.: it may look weird on other frontends)
43 WELCOME_MSG = D_(u"""Welcome to a free (as in freedom) network!
44
45 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.
46
47 The use Libervia, you'll need to add contacts, either people you know, or people you discover by using the “Service/Search directory” menu.
48
49 We hope that you'll enjoy using this project.
50
51 The Libervia/Salut à Toi Team
52 """)
53
54
55 PARAMS = """
56 <params>
57 <individual>
58 <category name="{category}">
59 <param name="{name}" label="{label}" type="bool" />
60 </category>
61 </individual>
62 </params>
63 """.format(category=WELCOME_PARAM_CATEGORY, name=WELCOME_PARAM_NAME, label=WELCOME_PARAM_LABEL)
64
65
66 class Welcome(object):
67
68 def __init__(self, host):
69 log.info(_("plugin Welcome initialization"))
70 self.host = host
71 host.memory.updateParams(PARAMS)
72
73 def profileConnected(self, profile):
74 # XXX: if you wan to try first_start again, you'll have to remove manually
75 # the welcome value from your profile params in sat.db
76 welcome = self.host.memory.params.getParamA(WELCOME_PARAM_NAME, WELCOME_PARAM_CATEGORY, use_default=False, profile_key=profile)
77 if welcome is None:
78 first_start = True
79 welcome = True
80 else:
81 first_start = False
82
83 if welcome:
84 xmlui = xml_tools.note(WELCOME_MSG, WELCOME_MSG_TITLE)
85 self.host.actionNew({'xmlui': xmlui.toXml()}, profile=profile)
86 self.host.memory.setParam(WELCOME_PARAM_NAME, C.BOOL_FALSE, WELCOME_PARAM_CATEGORY, profile_key=profile)
87
88 self.host.trigger.point("WELCOME", first_start, welcome, profile)
89
90
91
92
93