Mercurial > libervia-backend
annotate sat_frontends/primitivus/config.py @ 2816:114cdde9ff96
plugin XEP-0280: priority and "sent" fixes:
- carbon prioriy must be bigger than ones of encryption plugins, because the carbon copied messages must be unwrapped to be decrypted, this patch fixes it
- "sent" carbon elements was only stored and notified to frontends, it is now unwrapped and injected in normal traffic, this way other plugin can manage it, in particular encrypted elements can be decrypted
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 28 Feb 2019 18:57:06 +0100 |
parents | 003b8b4b56a7 |
children | ab2696e34d29 |
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 |
2771 | 5 # Copyright (C) 2009-2019 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() |