Mercurial > libervia-backend
annotate sat/tools/common/data_objects.py @ 3307:9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 19 Jun 2020 15:47:16 +0200 |
parents | 9896589487ae |
children | e4121a1f2399 |
rev | line source |
---|---|
3028 | 1 #!/usr/bin/env python3 |
3137 | 2 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # SAT: a jabber client |
3136 | 5 # Copyright (C) 2009-2020 Jérôme Poisson (goffi@goffi.org) |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
2300
173d56315529
jp (event/invitee): added list command to get R.S.V.P. :
Goffi <goffi@goffi.org>
parents:
2264
diff
changeset
|
20 """Objects handling bridge data, with jinja2 safe markup handling""" |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
22 from sat.core.constants import Const as C |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 from sat.tools.common import data_format |
3261
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
24 from os.path import basename |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
25 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 try: |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 from jinja2 import Markup as safe |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 except ImportError: |
3028 | 29 safe = str |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 |
2476
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
31 from sat.tools.common import uri as xmpp_uri |
3028 | 32 import urllib.request, urllib.parse, urllib.error |
2482
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
33 |
3028 | 34 q = lambda value: urllib.parse.quote(value.encode("utf-8"), safe="@") |
2476
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
35 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
37 def parsePubSubMetadata(metadata, items): |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
38 """Helper method to have nicer metadata while doing a PubSub request |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
39 |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
40 The "rsm_index" and "rsm_count" keys will be converted to int |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
41 The "mam_stable" and "mam_complete" keys will be converted to boolean |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
42 A "complete" key can have the following values: |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
43 - True: we are on the last page, i.e. last items have been received |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
44 - False: we are not on the last page |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
45 - None: we don't have enough data fo know our position in the pagination |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
46 @param metadata(dict): dict retrieved fro bridge with request metadata |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
47 @param items(list): items retrieved (used to determine "complete" value) |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
48 @return (dict): parsed metadata |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
49 """ |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
50 data = {} |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
51 assert "complete" not in metadata |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
52 |
3028 | 53 for key, value in metadata.items(): |
54 if key in ("rsm_index", "rsm_count"): | |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
55 value = int(value) |
3028 | 56 elif key == "mam_stable": |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
57 value = C.bool(value) |
3028 | 58 elif key == "mam_complete": |
59 key = "complete" | |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
60 value = C.bool(value) |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
61 data[key] = value |
3028 | 62 if "complete" not in data: |
63 index = data.get("rsm_index") | |
64 count = data.get("rsm_count") | |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
65 if index is None or count is None: |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
66 # we don't have enough information to know if the data is complete or not |
3028 | 67 data["complete"] = None |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
68 else: |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
69 # normally we have a strict equality here but XEP-0059 states |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
70 # that index MAY be approximative, so just in case… |
3028 | 71 data["complete"] = index + len(items) >= count |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
72 return data |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
73 |
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
74 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
75 class BlogItem(object): |
2942
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
76 def __init__(self, mb_data, parent, deserialise=True): |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
77 """ |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
78 @param deserialise(bool): if True, mb_data is a serialised string which must |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
79 be deserialised |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
80 """ |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
81 # FIXME: deserialise should not be done here, but before BlogItem is called |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
82 if deserialise: |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
83 self.mb_data = data_format.deserialise(mb_data) |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
84 else: |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
85 self.mb_data = mb_data |
2476
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
86 self.parent = parent |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
87 self._comments = None |
2228
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
88 self._comments_items_list = None |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
89 |
3307
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
90 def json(self): |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
91 ret = {} |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
92 for attr in ( |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
93 "id", "atom_id", "uri", "published", "updated", "language", "author", |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
94 "author_jid", "author_jid_verified", "author_email", "tags", "groups", |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
95 "title", "title_xhtml", "content", "content_xhtml", "comments", |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
96 "comments_service", "comments_node", "comments_items_list" |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
97 ): |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
98 value = getattr(self, attr) |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
99 if value is not None: |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
100 ret[attr] = value |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
101 return ret |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
102 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
103 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
104 def id(self): |
3028 | 105 return self.mb_data.get("id") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
106 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
107 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
108 def atom_id(self): |
3028 | 109 return self.mb_data.get("atom_id") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
110 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
111 @property |
2476
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
112 def uri(self): |
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
113 node = self.parent.node |
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
114 service = self.parent.service |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
115 return xmpp_uri.buildXMPPUri( |
3028 | 116 "pubsub", subtype="microblog", path=service, node=node, item=self.id |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
117 ) |
2476
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
118 |
6607bb29ab7b
tools (common/data_objects): BlogItem has now a uri property to generate its own XMPP URI
Goffi <goffi@goffi.org>
parents:
2469
diff
changeset
|
119 @property |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
120 def published(self): |
3028 | 121 return self.mb_data.get("published") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
122 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
123 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
124 def updated(self): |
3028 | 125 return self.mb_data.get("updated") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
126 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
127 @property |
2264
a8eaaac4d80f
plugin XEP-0277, tools/common/data_objects: language handling
Goffi <goffi@goffi.org>
parents:
2257
diff
changeset
|
128 def language(self): |
3028 | 129 return self.mb_data.get("language") |
2264
a8eaaac4d80f
plugin XEP-0277, tools/common/data_objects: language handling
Goffi <goffi@goffi.org>
parents:
2257
diff
changeset
|
130 |
a8eaaac4d80f
plugin XEP-0277, tools/common/data_objects: language handling
Goffi <goffi@goffi.org>
parents:
2257
diff
changeset
|
131 @property |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
132 def author(self): |
3028 | 133 return self.mb_data.get("author") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
134 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
135 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
136 def author_jid(self): |
3028 | 137 return self.mb_data.get("author_jid") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
138 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
139 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
140 def author_jid_verified(self): |
3028 | 141 return self.mb_data.get("author_jid_verified") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
142 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
143 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
144 def author_email(self): |
3028 | 145 return self.mb_data.get("author_email") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
146 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
147 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
148 def tags(self): |
3028 | 149 return self.mb_data.get('tags', []) |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
150 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
151 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
152 def groups(self): |
3028 | 153 return self.mb_data.get('groups', []) |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
154 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
155 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
156 def title(self): |
3028 | 157 return self.mb_data.get("title") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
158 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
159 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
160 def title_xhtml(self): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
161 try: |
3028 | 162 return safe(self.mb_data["title_xhtml"]) |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
163 except KeyError: |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
164 return None |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
165 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
166 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
167 def content(self): |
3028 | 168 return self.mb_data.get("content") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
169 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
170 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
171 def content_xhtml(self): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
172 try: |
3028 | 173 return safe(self.mb_data["content_xhtml"]) |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
174 except KeyError: |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
175 return None |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
176 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
177 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
178 def comments(self): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
179 if self._comments is None: |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
180 self._comments = data_format.dict2iterdict( |
3028 | 181 "comments", self.mb_data, ("node", "service") |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
182 ) |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
183 return self._comments |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
184 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
185 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
186 def comments_service(self): |
3028 | 187 return self.mb_data.get("comments_service") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
188 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
189 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
190 def comments_node(self): |
3028 | 191 return self.mb_data.get("comments_node") |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
192 |
2228
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
193 @property |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
194 def comments_items_list(self): |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
195 return [] if self._comments_items_list is None else self._comments_items_list |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
196 |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
197 def appendCommentsItems(self, items): |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
198 """append comments items to self.comments_items""" |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
199 if self._comments_items_list is None: |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
200 self._comments_items_list = [] |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
201 self._comments_items_list.append(items) |
cf6c539672c7
tools (common/data_objects): comments items can now be chained to their parent
Goffi <goffi@goffi.org>
parents:
2160
diff
changeset
|
202 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
203 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
204 class BlogItems(object): |
2942
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
205 def __init__(self, mb_data, deserialise=True): |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
206 """ |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
207 @param deserialise(bool): if True, mb_data is a serialised string which must |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
208 be deserialised |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
209 """ |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
210 # FIXME: deserialise should not be done here, but before BlogItem is called |
8dbef2d190eb
tools (common/data_objects): added a "deserialise" argument to BlogItem:
Goffi <goffi@goffi.org>
parents:
2807
diff
changeset
|
211 self.items = [BlogItem(i, self, deserialise=deserialise) for i in mb_data[0]] |
2770
2d353b74010e
tools (common/data_objects): moved BlogItems._parseMetadata to a parsePubSubMetadata function, so it can be used in a more generic way
Goffi <goffi@goffi.org>
parents:
2766
diff
changeset
|
212 self.metadata = parsePubSubMetadata(mb_data[1], self.items) |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
213 |
3307
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
214 def json(self): |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
215 ret = { |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
216 "items": [i.json() for i in self.items], |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
217 } |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
218 for attr in ("service", "node", "uri", "with_rsm"): |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
219 ret[attr] = getattr(self, attr) |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
220 if self.with_rsm: |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
221 for attr in ("rsm_first", "rsm_last", "rsm_index", "rsm_count", "complete"): |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
222 ret[attr] = getattr(self, attr) |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
223 |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
224 return ret |
9f0e28137cd0
tools (common/data_objects): implemented `json` dumping for BlogItems/BlogItem
Goffi <goffi@goffi.org>
parents:
3264
diff
changeset
|
225 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
226 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
227 def service(self): |
3028 | 228 return self.metadata["service"] |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
229 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
230 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
231 def node(self): |
3028 | 232 return self.metadata["node"] |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
233 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
234 @property |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
235 def uri(self): |
3028 | 236 return self.metadata["uri"] |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
237 |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
238 @property |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
239 def with_rsm(self): |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
240 """Return True if RSM is activated on this request""" |
3028 | 241 return "rsm_first" in self.metadata |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
242 |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
243 @property |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
244 def rsm_first(self): |
3028 | 245 return self.metadata["rsm_first"] |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
246 |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
247 @property |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
248 def rsm_last(self): |
3028 | 249 return self.metadata["rsm_last"] |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
250 |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
251 @property |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
252 def rsm_index(self): |
3028 | 253 return self.metadata["rsm_index"] |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
254 |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
255 @property |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
256 def rsm_count(self): |
3028 | 257 return self.metadata["rsm_count"] |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
258 |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
259 @property |
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
260 def complete(self): |
3028 | 261 return self.metadata["complete"] |
2766
93a421de0e3d
tools (common/data_objects): metadata parsing in BlogItems:
Goffi <goffi@goffi.org>
parents:
2624
diff
changeset
|
262 |
2160
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
263 def __len__(self): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
264 return self.items.__len__() |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
265 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
266 def __missing__(self, key): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
267 return self.items.__missing__(key) |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
268 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
269 def __getitem__(self, key): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
270 return self.items.__getitem__(key) |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
271 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
272 def __iter__(self): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
273 return self.items.__iter__() |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
274 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
275 def __reversed__(self): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
276 return self.items.__reversed__() |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
277 |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
278 def __contains__(self, item): |
e67e8cd24141
core (tools/common): data objects first draft:
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
279 return self.items.__contains__(item) |
2257
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
280 |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
281 |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
282 class Message(object): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
283 def __init__(self, msg_data): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
284 self._uid = msg_data[0] |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
285 self._timestamp = msg_data[1] |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
286 self._from_jid = msg_data[2] |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
287 self._to_jid = msg_data[3] |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
288 self._message_data = msg_data[4] |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
289 self._subject_data = msg_data[5] |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
290 self._type = msg_data[6] |
3170
39d7327583e1
core: use serialised dict for `extra` in messageNew and historyGet
Goffi <goffi@goffi.org>
parents:
3137
diff
changeset
|
291 self._extra = data_format.deserialise(msg_data[7]) |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
292 self._html = dict(data_format.getSubDict("xhtml", self._extra)) |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
293 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
294 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
295 def id(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
296 return self._uid |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
297 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
298 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
299 def timestamp(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
300 return self._timestamp |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
301 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
302 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
303 def from_(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
304 return self._from_jid |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
305 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
306 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
307 def text(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
308 try: |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
309 return self._message_data[""] |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
310 except KeyError: |
3028 | 311 return next(iter(self._message_data.values())) |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
312 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
313 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
314 def subject(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
315 try: |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
316 return self._subject_data[""] |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
317 except KeyError: |
3028 | 318 return next(iter(self._subject_data.values())) |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
319 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
320 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
321 def type(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
322 return self._type |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
323 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
324 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
325 def thread(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
326 return self._extra.get("thread") |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
327 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
328 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
329 def thread_parent(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
330 return self._extra.get("thread_parent") |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
331 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
332 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
333 def received(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
334 return self._extra.get("received_timestamp", self._timestamp) |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
335 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
336 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
337 def delay_sender(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
338 return self._extra.get("delay_sender") |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
339 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
340 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
341 def info_type(self): |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
342 return self._extra.get("info_type") |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
343 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
344 @property |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
345 def html(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
346 if not self._html: |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
347 return None |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
348 try: |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
349 return safe(self._html[""]) |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
350 except KeyError: |
3028 | 351 return safe(next(iter(self._html.values()))) |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
352 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
353 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
354 class Messages(object): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
355 def __init__(self, msgs_data): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
356 self.messages = [Message(m) for m in msgs_data] |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
357 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
358 def __len__(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
359 return self.messages.__len__() |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
360 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
361 def __missing__(self, key): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
362 return self.messages.__missing__(key) |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
363 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
364 def __getitem__(self, key): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
365 return self.messages.__getitem__(key) |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
366 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
367 def __iter__(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
368 return self.messages.__iter__() |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
369 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
370 def __reversed__(self): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
371 return self.messages.__reversed__() |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
372 |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
373 def __contains__(self, item): |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
374 return self.messages.__contains__(item) |
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
375 |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
376 |
2469
adcc35625e17
tools (common/data_objects): added Room class
Goffi <goffi@goffi.org>
parents:
2464
diff
changeset
|
377 class Room(object): |
adcc35625e17
tools (common/data_objects): added Room class
Goffi <goffi@goffi.org>
parents:
2464
diff
changeset
|
378 def __init__(self, jid, name=None, url=None): |
adcc35625e17
tools (common/data_objects): added Room class
Goffi <goffi@goffi.org>
parents:
2464
diff
changeset
|
379 self.jid = jid |
adcc35625e17
tools (common/data_objects): added Room class
Goffi <goffi@goffi.org>
parents:
2464
diff
changeset
|
380 self.name = name or jid |
adcc35625e17
tools (common/data_objects): added Room class
Goffi <goffi@goffi.org>
parents:
2464
diff
changeset
|
381 if url is not None: |
adcc35625e17
tools (common/data_objects): added Room class
Goffi <goffi@goffi.org>
parents:
2464
diff
changeset
|
382 self.url = url |
adcc35625e17
tools (common/data_objects): added Room class
Goffi <goffi@goffi.org>
parents:
2464
diff
changeset
|
383 |
2464
8788c217a49e
tools (common/data_objects): added classes for messages
Goffi <goffi@goffi.org>
parents:
2414
diff
changeset
|
384 |
2257
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
385 class Identity(object): |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
386 def __init__(self, jid_str, data=None): |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
387 self.jid_str = jid_str |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
388 self.data = data if data is not None else {} |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
389 |
3261
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
390 @property |
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
391 def avatar_basename(self): |
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
392 try: |
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
393 return basename(self.data['avatar']['path']) |
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
394 except (TypeError, KeyError): |
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
395 return None |
a9e8e925ad99
tools (common/data_objects): new `avatar_basename` property
Goffi <goffi@goffi.org>
parents:
3170
diff
changeset
|
396 |
2537
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
397 def __getitem__(self, key): |
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
398 return self.data[key] |
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
399 |
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
400 def __getattr__(self, key): |
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
401 try: |
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
402 return self.data[key] |
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
403 except KeyError: |
8cf58a415126
tools (common/data_objects): fixed Identity
Goffi <goffi@goffi.org>
parents:
2483
diff
changeset
|
404 raise AttributeError(key) |
2257
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
405 |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
406 |
3264
9896589487ae
tools (common/data_objects): added __iter__ to Identities
Goffi <goffi@goffi.org>
parents:
3261
diff
changeset
|
407 class Identities: |
2257
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
408 def __init__(self): |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
409 self.identities = {} |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
410 |
3264
9896589487ae
tools (common/data_objects): added __iter__ to Identities
Goffi <goffi@goffi.org>
parents:
3261
diff
changeset
|
411 def __iter__(self): |
9896589487ae
tools (common/data_objects): added __iter__ to Identities
Goffi <goffi@goffi.org>
parents:
3261
diff
changeset
|
412 return iter(self.identities) |
9896589487ae
tools (common/data_objects): added __iter__ to Identities
Goffi <goffi@goffi.org>
parents:
3261
diff
changeset
|
413 |
2257
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
414 def __getitem__(self, jid_str): |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
415 try: |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
416 return self.identities[jid_str] |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
417 except KeyError: |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
418 return None |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
419 |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
420 def __setitem__(self, jid_str, data): |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
421 self.identities[jid_str] = Identity(jid_str, data) |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
422 |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
423 def __contains__(self, jid_str): |
0ffa8ba0857c
core (tools/common/data_objects): added classes to handle Identities
Goffi <goffi@goffi.org>
parents:
2228
diff
changeset
|
424 return jid_str in self.identities |
2383
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
425 |
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
426 |
2482
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
427 class ObjectQuoter(object): |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
428 """object wrapper which quote attribues (to be used in templates)""" |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
429 |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
430 def __init__(self, obj): |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
431 self.obj = obj |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
432 |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
433 def __unicode__(self): |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
434 return q(self.obj.__unicode__()) |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
435 |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
436 def __str__(self): |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
437 return self.__unicode__() |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
438 |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
439 def __getattr__(self, name): |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
440 return q(self.obj.__getattr__(name)) |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
441 |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
442 def __getitem__(self, key): |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
443 return q(self.obj.__getitem__(key)) |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
444 |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
445 |
2383
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
446 class OnClick(object): |
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
447 """Class to handle clickable elements targets""" |
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
448 |
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
449 def __init__(self, url=None): |
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
450 self.url = url |
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
451 |
2482
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
452 def formatUrl(self, *args, **kwargs): |
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
453 """format URL using Python formatting |
2383
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
454 |
2482
ac6097a66944
tools (common/data_objects): accept same parameters as format en quote their values in OnClick.formatUrl
Goffi <goffi@goffi.org>
parents:
2478
diff
changeset
|
455 values will be quoted before being used |
2383
a37457da2bb7
tools (common/data_objects): new OnClick class
Goffi <goffi@goffi.org>
parents:
2300
diff
changeset
|
456 """ |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
457 return self.url.format( |
3028 | 458 *[q(a) for a in args], **{k: ObjectQuoter(v) for k, v in kwargs.items()} |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
459 ) |