Mercurial > libervia-backend
annotate sat_frontends/primitivus/config.py @ 2661:661f66d41215
core (xmpp): send initial presence only after all profileConnected have been treated:
presence is now sent after profileConnected methods are done, this avoid to have to deal with synchronisation in connection event.
For instance, PEP events should not be sent before presence is sent, so profileConnected methods can assume PEP events are not
done yet, and do needed initialisation using async method if necessary.
This has been done to avoid overcomplicated synchronisation in XEP-0384 plugin (network calls are needed to initialise session,
but PEP events need an initialised session to be treated).
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 11 Aug 2018 18:24:55 +0200 |
parents | 56f94936df1e |
children | 003b8b4b56a7 |
rev | line source |
---|---|
1934
2daf7b4c6756
use of /usr/bin/env instead of /usr/bin/python in shebang
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
1 #!/usr/bin/env python2 |
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # Primitivus: a SAT frontend |
2483 | 5 # Copyright (C) 2009-2018 Jérôme Poisson (goffi@goffi.org) |
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 """This module manage configuration specific to Primitivus""" |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 from sat_frontends.primitivus.constants import Const as C |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 from sat_frontends.primitivus.keys import action_key_map |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 import ConfigParser |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 |
1165
ca15fb1abbc4
primitivus: added disable_mouse config option /!\ minimal Urwid version is now 1.2.0
Goffi <goffi@goffi.org>
parents:
1159
diff
changeset
|
27 def applyConfig(host): |
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 """Parse configuration and apply found change |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 raise: can raise various Exceptions if configuration is not good |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 """ |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 config = ConfigParser.SafeConfigParser() |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 config.read(C.CONFIG_FILES) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 try: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 options = config.items(C.CONFIG_SECTION) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 except ConfigParser.NoSectionError: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 options = [] |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 shortcuts = {} |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 for name, value in options: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 if name.startswith(C.CONFIG_OPT_KEY_PREFIX.lower()): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
41 action = name[len(C.CONFIG_OPT_KEY_PREFIX) :].upper() |
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 shortcut = value |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
43 if not action or not shortcut: |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 raise ValueError("Bad option: {} = {}".format(name, value)) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 shortcuts[action] = shortcut |
1165
ca15fb1abbc4
primitivus: added disable_mouse config option /!\ minimal Urwid version is now 1.2.0
Goffi <goffi@goffi.org>
parents:
1159
diff
changeset
|
46 if name == "disable_mouse": |
ca15fb1abbc4
primitivus: added disable_mouse config option /!\ minimal Urwid version is now 1.2.0
Goffi <goffi@goffi.org>
parents:
1159
diff
changeset
|
47 host.loop.screen.set_mouse_tracking(False) |
1159
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
48 |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
49 action_key_map.replace(shortcuts) |
85fd02356dba
primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
50 action_key_map.check_namespaces() |