filter reuploaded images

This commit is contained in:
otsmr 2026-07-07 22:44:20 +02:00
parent 511490b649
commit 43390871c2

View file

@ -91,19 +91,28 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
milliseconds: group!.deleteMessagesAfterMilliseconds, milliseconds: group!.deleteMessagesAfterMilliseconds,
), ),
); );
return (select(messages) final query = select(messages).join([
..where( leftOuterJoin(
(t) => mediaFiles,
t.groupId.equals(groupId) & mediaFiles.mediaId.equalsExp(messages.mediaId),
// messages in groups will only be removed in case all members have received it... ),
// so ensuring that this message is not shown in the messages anymore ])
(t.openedAt.isBiggerThanValue(deletionTime) | ..where(
t.openedAt.isNull() | messages.groupId.equals(groupId) &
t.mediaStored.equals(true)), // messages in groups will only be removed in case all members have received it...
) // so ensuring that this message is not shown in the messages anymore
..orderBy([(t) => OrderingTerm.desc(t.createdAt)]) (messages.openedAt.isBiggerThanValue(deletionTime) |
..limit(1)) messages.openedAt.isNull() |
.watchSingleOrNull(); messages.mediaStored.equals(true)) &
(mediaFiles.downloadState
.equals(DownloadState.reuploadRequested.name)
.not() |
mediaFiles.downloadState.isNull()),
)
..orderBy([OrderingTerm.desc(messages.createdAt)])
..limit(1);
return query.map((row) => row.readTable(messages)).watchSingleOrNull();
} }
Future<Stream<List<Message>>> watchByGroupId(String groupId) async { Future<Stream<List<Message>>> watchByGroupId(String groupId) async {