edit optimizations

This commit is contained in:
AF 2020-08-11 01:56:45 +03:00
parent a6b476da43
commit f363a86f87
2 changed files with 10 additions and 1 deletions

View File

@ -97,11 +97,14 @@ class Message:
Encoding.nonce(), pcontent, None,
Flags(self.flags.replace('<unedited>', '<edited>')).enq()).sealed()
def edit_(self):
return self.flags_(self.flags)
def edited(self, other: 'Message'):
return self.pair == other.pair and self.idnonce == other.idnonce
def editt(self, content: bytes) -> Tuple['Message', 'Message']:
return self, self.edit(content)
return self.flags_(self.flags), self.edit(content)
def delete(self):
return Message(self.sfrom, self.sto, self.idnonce, None,

View File

@ -151,6 +151,12 @@ class DBStorage(AbstractStorage):
Message(pair[0], pair[1], Encoding.decode(params['before']), None,
None, None, None,
'')).oid)
if params.get('after'):
query = query.filter(Msg.oid > self.one_alike(
session,
Message(pair[0], pair[1], Encoding.decode(params['before']), None,
None, None, None,
'')).oid)
for flag in params.get('flags', ()):
query = query.filter(Msg.flags.contains(flag))
query = query.order_by(Msg.oid.desc())