Mercurial > libervia-backend
annotate frontends/src/quick_frontend/constants.py @ 1955:633b5c21aefd
backend, frontend: messages refactoring (huge commit, not finished):
/!\ database schema has been modified, do a backup before updating
message have been refactored, here are the main changes:
- languages are now handled
- all messages have an uid (internal to SàT)
- message updating is anticipated
- subject is now first class
- new naming scheme is used newMessage => messageNew, getHistory => historyGet, sendMessage => messageSend
- minimal compatibility refactoring in quick_frontend/Primitivus, better refactoring should follow
- threads handling
- delayed messages are saved into history
- info messages may also be saved in history (e.g. to keep track of people joining/leaving a room)
- duplicate messages should be avoided
- historyGet return messages in right order, no need to sort again
- plugins have been updated to follow new features, some of them need to be reworked (e.g. OTR)
- XEP-0203 (Delayed Delivery) is now fully handled in core, the plugin just handle disco and creation of a delay element
- /!\ jp and Libervia are currently broken, as some features of Primitivus
It has been put in one huge commit to avoid breaking messaging between changes.
This is the main part of message refactoring, other commits will follow to take profit of the new features/behaviour.
author | Goffi <goffi@goffi.org> |
---|---|
date | Tue, 24 May 2016 22:11:04 +0200 |
parents | 011eff37e21d |
children | 02d21a589be2 |
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 |
510
886754295efe
quick frontend, primitivus, wix: MUC private messages management
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
886754295efe
quick frontend, primitivus, wix: MUC private messages management
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
4 # Primitivus: a SAT frontend |
1766 | 5 # Copyright (C) 2009-2016 Jérôme Poisson (goffi@goffi.org) |
510
886754295efe
quick frontend, primitivus, wix: MUC private messages management
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
10 # (at your option) any later version. |
510
886754295efe
quick frontend, primitivus, wix: MUC private messages management
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
15 # GNU Affero General Public License for more details. |
510
886754295efe
quick frontend, primitivus, wix: MUC private messages management
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
609
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
84a6e83157c2
fixed licences in docstrings (they are now in comments)
Goffi <goffi@goffi.org>
parents:
572
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
736
6246eb6d64a0
frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents:
609
diff
changeset
|
19 |
1327
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
20 from sat.core import constants |
1342
e31a07a5614d
quick_frontends, primitivus (contact list): added nick observer + implemented onNickUpdate
Goffi <goffi@goffi.org>
parents:
1329
diff
changeset
|
21 from sat.core.i18n import _ |
1327
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
22 from collections import OrderedDict # only available from python 2.7 |
736
6246eb6d64a0
frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents:
609
diff
changeset
|
23 |
510
886754295efe
quick frontend, primitivus, wix: MUC private messages management
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 |
736
6246eb6d64a0
frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents:
609
diff
changeset
|
25 class Const(constants.Const): |
6246eb6d64a0
frontends: define the constants with classes and inheritance instance of using __builtin__
souliane <souliane@mailoo.org>
parents:
609
diff
changeset
|
26 |
1327
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
27 PRESENCE = OrderedDict([("", _("Online")), |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
28 ("chat", _("Free for chat")), |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
29 ("away", _("Away from keyboard")), |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
30 ("dnd", _("Do not disturb")), |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
31 ("xa", _("Extended away"))]) |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
32 |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
33 # from plugin_misc_text_syntaxes |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
34 SYNTAX_XHTML = "XHTML" |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
35 SYNTAX_CURRENT = "@CURRENT@" |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
36 SYNTAX_TEXT = "text" |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
37 |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
38 # XMLUI |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
39 SAT_FORM_PREFIX = "SAT_FORM_" |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
40 SAT_PARAM_SEPARATOR = "_XMLUI_PARAM_" # used to have unique elements names |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
41 XMLUI_STATUS_VALIDATED = "validated" |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
42 XMLUI_STATUS_CANCELLED = constants.Const.XMLUI_DATA_CANCELLED |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
43 |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
44 # Roster |
1265
e3a9ea76de35
quick_frontend, primitivus: multi-profiles refactoring part 1 (big commit, sorry :p):
Goffi <goffi@goffi.org>
parents:
1139
diff
changeset
|
45 CONTACT_GROUPS = 'groups' |
e3a9ea76de35
quick_frontend, primitivus: multi-profiles refactoring part 1 (big commit, sorry :p):
Goffi <goffi@goffi.org>
parents:
1139
diff
changeset
|
46 CONTACT_RESOURCES = 'resources' |
e3a9ea76de35
quick_frontend, primitivus: multi-profiles refactoring part 1 (big commit, sorry :p):
Goffi <goffi@goffi.org>
parents:
1139
diff
changeset
|
47 CONTACT_MAIN_RESOURCE = 'main_resource' |
e3a9ea76de35
quick_frontend, primitivus: multi-profiles refactoring part 1 (big commit, sorry :p):
Goffi <goffi@goffi.org>
parents:
1139
diff
changeset
|
48 CONTACT_SPECIAL = 'special' |
1327
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
49 CONTACT_SPECIAL_GROUP = 'group' # group chat special entity |
1938
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
50 CONTACT_SELECTED = 'selected' |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
51 CONTACT_PROFILE = 'profile' # used in handler to track where the contact is coming from |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
52 CONTACT_SPECIAL_ALLOWED = (CONTACT_SPECIAL_GROUP,) # allowed values for special flag |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
53 CONTACT_DATA_FORBIDDEN = {CONTACT_GROUPS, CONTACT_RESOURCES, CONTACT_MAIN_RESOURCE, CONTACT_SELECTED, CONTACT_PROFILE} # set of forbidden names for contact data |
1327
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
54 |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
55 # Chats |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
56 CHAT_ONE2ONE = 'one2one' |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
57 CHAT_GROUP = 'group' |
1385
0dca4f9b264d
primitivus: prefill "Join MUC" dialog with only the JID's node part when in debug version + display error directly from the DBus object
souliane <souliane@mailoo.org>
parents:
1378
diff
changeset
|
58 USER_CHAT_STATES = { |
0dca4f9b264d
primitivus: prefill "Join MUC" dialog with only the JID's node part when in debug version + display error directly from the DBus object
souliane <souliane@mailoo.org>
parents:
1378
diff
changeset
|
59 "active": u'✔', |
0dca4f9b264d
primitivus: prefill "Join MUC" dialog with only the JID's node part when in debug version + display error directly from the DBus object
souliane <souliane@mailoo.org>
parents:
1378
diff
changeset
|
60 "inactive": u'☄', |
0dca4f9b264d
primitivus: prefill "Join MUC" dialog with only the JID's node part when in debug version + display error directly from the DBus object
souliane <souliane@mailoo.org>
parents:
1378
diff
changeset
|
61 "gone": u'✈', |
0dca4f9b264d
primitivus: prefill "Join MUC" dialog with only the JID's node part when in debug version + display error directly from the DBus object
souliane <souliane@mailoo.org>
parents:
1378
diff
changeset
|
62 "composing": u'✎', |
0dca4f9b264d
primitivus: prefill "Join MUC" dialog with only the JID's node part when in debug version + display error directly from the DBus object
souliane <souliane@mailoo.org>
parents:
1378
diff
changeset
|
63 "paused": u"⦷" |
0dca4f9b264d
primitivus: prefill "Join MUC" dialog with only the JID's node part when in debug version + display error directly from the DBus object
souliane <souliane@mailoo.org>
parents:
1378
diff
changeset
|
64 } |
1327
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
65 |
1938
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
66 # Alerts |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
67 ALERT_MESSAGE = "MESSAGE" # New message received |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
68 ALERT_NICK = "NICK" # our nickname was mentionned |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
69 |
1461
9fce331ba0fd
quick_frontend (constants, quick_app, quick_contact_list): blogging refactoring (not finished):
Goffi <goffi@goffi.org>
parents:
1407
diff
changeset
|
70 # Blogs |
9fce331ba0fd
quick_frontend (constants, quick_app, quick_contact_list): blogging refactoring (not finished):
Goffi <goffi@goffi.org>
parents:
1407
diff
changeset
|
71 ENTRY_MODE_TEXT = "text" |
9fce331ba0fd
quick_frontend (constants, quick_app, quick_contact_list): blogging refactoring (not finished):
Goffi <goffi@goffi.org>
parents:
1407
diff
changeset
|
72 ENTRY_MODE_RICH = "rich" |
9fce331ba0fd
quick_frontend (constants, quick_app, quick_contact_list): blogging refactoring (not finished):
Goffi <goffi@goffi.org>
parents:
1407
diff
changeset
|
73 ENTRY_MODE_XHTML = "xhtml" |
9fce331ba0fd
quick_frontend (constants, quick_app, quick_contact_list): blogging refactoring (not finished):
Goffi <goffi@goffi.org>
parents:
1407
diff
changeset
|
74 |
1327
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
75 # Widgets management |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
76 # FIXME: should be in quick_frontend.constant, but Libervia doesn't inherit from it |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
77 WIDGET_NEW = 'NEW' |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
78 WIDGET_KEEP = 'KEEP' |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
79 WIDGET_RAISE = 'RAISE' |
89dc29afe01c
frontends: merge sat_frontends.constants to sat_frontends.quick_frontend.constants
souliane <souliane@mailoo.org>
parents:
1318
diff
changeset
|
80 WIDGET_RECREATE = 'RECREATE' |
1318
6c7d89843f1b
frontends (quick frontend): use of new getEntitiesData to get cached values for avatars on profile connection.
Goffi <goffi@goffi.org>
parents:
1290
diff
changeset
|
81 |
1938
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
82 # Updates (generic) |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
83 UPDATE_DELETE = 'DELETE' |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
84 UPDATE_MODIFY = 'MODIFY' |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
85 UPDATE_ADD = 'ADD' |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
86 UPDATE_SELECTION = 'SELECTION' |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
87 UPDATE_STRUCTURE = 'STRUCTURE' # high level update (i.e. not item level but organisation of items) |
011eff37e21d
quick frontend, primitivus: quickContactList refactored to handle several profiles at once
Goffi <goffi@goffi.org>
parents:
1934
diff
changeset
|
88 |
1363
fa77e40eb17b
quick_frontends: added "menu" listeners, which is called when a menu is added or removed.
Goffi <goffi@goffi.org>
parents:
1348
diff
changeset
|
89 LISTENERS = {'avatar', 'nick', 'presence', 'profilePlugged', 'disconnect', 'gotMenus', 'menu'} |