Mercurial > libervia-backend
comparison libervia/backend/plugins/plugin_xep_0059.py @ 4270:0d7bb4df2343
Reformatted code base using black.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 19 Jun 2024 18:44:57 +0200 |
parents | 4b842c1fb686 |
children |
comparison
equal
deleted
inserted
replaced
4269:64a85ce8be70 | 4270:0d7bb4df2343 |
---|---|
59 | 59 |
60 @param extra(dict): data for parse | 60 @param extra(dict): data for parse |
61 @return (rsm.RSMRequest, None): request with parsed arguments | 61 @return (rsm.RSMRequest, None): request with parsed arguments |
62 or None if no RSM arguments have been found | 62 or None if no RSM arguments have been found |
63 """ | 63 """ |
64 if int(extra.get(RSM_PREFIX + 'max', 0)) < 0: | 64 if int(extra.get(RSM_PREFIX + "max", 0)) < 0: |
65 raise ValueError(_("rsm_max can't be negative")) | 65 raise ValueError(_("rsm_max can't be negative")) |
66 | 66 |
67 rsm_args = {} | 67 rsm_args = {} |
68 for arg in ("max", "after", "before", "index"): | 68 for arg in ("max", "after", "before", "index"): |
69 try: | 69 try: |
120 log.warning("Can't do pagination if max is 0") | 120 log.warning("Can't do pagination if max is 0") |
121 return None | 121 return None |
122 if rsm_response is None: | 122 if rsm_response is None: |
123 # may happen if result set it empty, or we are at the end | 123 # may happen if result set it empty, or we are at the end |
124 return None | 124 return None |
125 if ( | 125 if rsm_response.count is not None and rsm_response.index is not None: |
126 rsm_response.count is not None | |
127 and rsm_response.index is not None | |
128 ): | |
129 next_index = rsm_response.index + rsm_request.max | 126 next_index = rsm_response.index + rsm_request.max |
130 if next_index >= rsm_response.count: | 127 if next_index >= rsm_response.count: |
131 # we have reached the last page | 128 # we have reached the last page |
132 return None | 129 return None |
133 | 130 |
138 f"{rsm_response.count} ({next_index/rsm_response.count*100:.2f}%)" | 135 f"{rsm_response.count} ({next_index/rsm_response.count*100:.2f}%)" |
139 ) | 136 ) |
140 | 137 |
141 if rsm_response.last is None: | 138 if rsm_response.last is None: |
142 if rsm_response.count: | 139 if rsm_response.count: |
143 log.warning("Can't do pagination, no \"last\" received") | 140 log.warning('Can\'t do pagination, no "last" received') |
144 return None | 141 return None |
145 | 142 |
146 return rsm.RSMRequest( | 143 return rsm.RSMRequest(max_=rsm_request.max, after=rsm_response.last) |
147 max_=rsm_request.max, | |
148 after=rsm_response.last | |
149 ) | |
150 | 144 |
151 | 145 |
152 @implementer(iwokkel.IDisco) | 146 @implementer(iwokkel.IDisco) |
153 class XEP_0059_handler(xmlstream.XMPPHandler): | 147 class XEP_0059_handler(xmlstream.XMPPHandler): |
154 | 148 |