annotate sat_frontends/jp/constants.py @ 2807:0b7ce5daee9b

plugin XEP-0277: blog items data are now entirely serialised before going to bridge: So far, and for historical reasons, blog items data where serialised using a unicode: unicode dict, which was causing trouble for many types of values (timestamps, booleans, lists). This patch changes it by serialising the whole items before going to bridge, and deserialising it when going back. This way, complex data can be used easily in items. This impact psEvent and serItemsData* methods which are renamed transItemsData* because there are not always serialising anymore (a new argument "serialise" allows to specify it). When editing a blog post in jp, metadata are now more easy to manipulate, specially lists like tags.
author Goffi <goffi@goffi.org>
date Sat, 23 Feb 2019 18:59:00 +0100
parents ff1b40823b07
children ab2696e34d29
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
970
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
3
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # Primitivus: a SAT frontend
2771
003b8b4b56a7 date update
Goffi <goffi@goffi.org>
parents: 2707
diff changeset
5 # Copyright (C) 2009-2019 Jérôme Poisson (goffi@goffi.org)
970
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
6
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # (at your option) any later version.
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
11
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
16
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
19
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
20 from sat_frontends.quick_frontend import constants
2232
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
21 from sat.tools.common.ansi import ANSI as A
970
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
22
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
23
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
24 class Const(constants.Const):
2e052998c7eb jp: using C.APP_URL for application url
Goffi <goffi@goffi.org>
parents:
diff changeset
25
2163
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
26 APP_NAME = u"jp"
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
27 PLUGIN_CMD = u"commands"
75667727c500 jp (output): template output first draft:
Goffi <goffi@goffi.org>
parents: 2156
diff changeset
28 PLUGIN_OUTPUT = u"outputs"
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
29 OUTPUT_TEXT = u"text" # blob of unicode text
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
30 OUTPUT_DICT = u"dict" # simple key/value dictionary
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
31 OUTPUT_LIST = u"list"
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
32 OUTPUT_LIST_DICT = u"list_dict" # list of dictionaries
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
33 OUTPUT_DICT_DICT = u"dict_dict" # dict of nested dictionaries
2707
b156b78b8f9a jp (output): new OUTPUT_MESS output to handle data containing chat messages
Goffi <goffi@goffi.org>
parents: 2624
diff changeset
34 OUTPUT_MESS = u"mess" # messages (chat)
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
35 OUTPUT_COMPLEX = u"complex" # complex data (e.g. multi-level dictionary)
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
36 OUTPUT_XML = u"xml" # XML node (as unicode string)
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
37 OUTPUT_LIST_XML = u"list_xml" # list of XML nodes (as unicode strings)
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
38 OUTPUT_XMLUI = u"xmlui" # XMLUI as unicode string
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
39 OUTPUT_LIST_XMLUI = u"list_xmlui" # list of XMLUI (as unicode strings)
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
40 OUTPUT_TYPES = (
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
41 OUTPUT_TEXT,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
42 OUTPUT_DICT,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
43 OUTPUT_LIST,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
44 OUTPUT_LIST_DICT,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
45 OUTPUT_DICT_DICT,
2707
b156b78b8f9a jp (output): new OUTPUT_MESS output to handle data containing chat messages
Goffi <goffi@goffi.org>
parents: 2624
diff changeset
46 OUTPUT_MESS,
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
47 OUTPUT_COMPLEX,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
48 OUTPUT_XML,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
49 OUTPUT_LIST_XML,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
50 OUTPUT_XMLUI,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
51 OUTPUT_LIST_XMLUI,
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
52 )
1951
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
53
2532
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
54 # Pubsub options flags
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
55 SERVICE = u"service" # service required
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
56 NODE = u"node" # node required
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
57 ITEM = u"item" # item required
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
58 SINGLE_ITEM = u"single_item" # only one item is allowed
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
59 MULTI_ITEMS = u"multi_items" # multiple items are allowed
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
60 NO_MAX = u"no_max" # don't add --max option for multi items
2532
772447ec070f jp: pubsub options refactoring:
Goffi <goffi@goffi.org>
parents: 2505
diff changeset
61
2232
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
62 # ANSI
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
63 A_HEADER = A.BOLD + A.FG_YELLOW
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
64 A_SUBHEADER = A.BOLD + A.FG_RED
2485
512c443a58ba jp (forums): forums handling commands, first draft
Goffi <goffi@goffi.org>
parents: 2483
diff changeset
65 # A_LEVEL_COLORS may be used to cycle on colors according to depth of data
512c443a58ba jp (forums): forums handling commands, first draft
Goffi <goffi@goffi.org>
parents: 2483
diff changeset
66 A_LEVEL_COLORS = (A_HEADER, A.BOLD + A.FG_BLUE, A.FG_MAGENTA, A.FG_CYAN)
2278
489efbda377c jp (input): input command first draft:
Goffi <goffi@goffi.org>
parents: 2268
diff changeset
67 A_SUCCESS = A.BOLD + A.FG_GREEN
489efbda377c jp (input): input command first draft:
Goffi <goffi@goffi.org>
parents: 2268
diff changeset
68 A_FAILURE = A.BOLD + A.FG_RED
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
69 #  A_PROMPT_* is for shell
2355
0fed4a1c033a jp (shell): changed prompt colour
Goffi <goffi@goffi.org>
parents: 2309
diff changeset
70 A_PROMPT_PATH = A.BOLD + A.FG_CYAN
2309
c7a72b75232b jp (shell): shell command (REPL mode), first draft:
Goffi <goffi@goffi.org>
parents: 2295
diff changeset
71 A_PROMPT_SUF = A.BOLD
2505
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
72 # Files
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
73 A_DIRECTORY = A.BOLD + A.FG_CYAN
8e770ac05b0c jp (file): file sharing + improvments:
Goffi <goffi@goffi.org>
parents: 2485
diff changeset
74 A_FILE = A.FG_WHITE
2232
4f389486667d jp: added constant to handle ANSI code for header and subheaders
Goffi <goffi@goffi.org>
parents: 2190
diff changeset
75
1951
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
76 # exit codes
ac89f455fcbf jp: added consts for exit codes, not used yet
Goffi <goffi@goffi.org>
parents: 1950
diff changeset
77 EXIT_OK = 0
2550
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
78 EXIT_ERROR = 1 # generic error, when nothing else match
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
79 EXIT_BAD_ARG = 2 # arguments given by user are bad
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
80 EXIT_BRIDGE_ERROR = 3 # can't connect to bridge
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
81 EXIT_BRIDGE_ERRBACK = 4 # something went wrong when calling a bridge method
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
82 EXIT_NOT_FOUND = 16 # an item required by a command was not found
2777
ff1b40823b07 jp (pubsub): new "transform" command:
Goffi <goffi@goffi.org>
parents: 2771
diff changeset
83 EXIT_DATA_ERROR = 17 # data needed for a command is invalid
ff1b40823b07 jp (pubsub): new "transform" command:
Goffi <goffi@goffi.org>
parents: 2771
diff changeset
84 EXIT_MISSING_FEATURE = 18 # a needed plugin or feature is not available
2550
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
85 EXIT_USER_CANCELLED = 20 # user cancelled action
2624
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
86 EXIT_FILE_NOT_EXE = (
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
87 126
56f94936df1e code style reformatting using black
Goffi <goffi@goffi.org>
parents: 2601
diff changeset
88 ) # a file to be executed was found, but it was not an executable utility (cf. man 1 exit)
2550
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
89 EXIT_CMD_NOT_FOUND = 127 # a utility to be executed was not found (cf. man 1 exit)
2777
ff1b40823b07 jp (pubsub): new "transform" command:
Goffi <goffi@goffi.org>
parents: 2771
diff changeset
90 EXIT_CMD_ERROR = 127 # a utility to be executed returned an error exit code
2550
1d754bc14381 jp (base): new confirmOrQuit helper method to ask confirmation to user, and quit if he cancel
Goffi <goffi@goffi.org>
parents: 2539
diff changeset
91 EXIT_SIGNAL_INT = 128 # a command was interrupted by a signal (cf. man 1 exit)