annotate frontends/src/primitivus/config.py @ 2528:65e278997715

component file sharing: comments metadata: new <comments> element is added to file metadata, it contains the URL to the comments virtual node and the count of comments (this way client knows if it make sense to request comments or not). Fixed triggers in plugin XEP-0264 (return value was missing). New trigger in plugin XEP-0329 to allow component to add metadata (used here for comments url).
author Goffi <goffi@goffi.org>
date Fri, 16 Mar 2018 18:43:11 +0100
parents 0046283a285d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
0046283a285d dates update
Goffi <goffi@goffi.org>
parents: 2414
diff changeset
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()):
85fd02356dba primitivus: key can be changed in config:
Goffi <goffi@goffi.org>
parents:
diff changeset
41 action = name[len(C.CONFIG_OPT_KEY_PREFIX):].upper()
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()