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