mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 11:18:41 +00:00
hot fix
This commit is contained in:
parent
1d459a6719
commit
4cc6215cda
2 changed files with 26 additions and 22 deletions
|
|
@ -187,18 +187,10 @@ class MessagesDao extends DatabaseAccessor<TwonlyDatabase>
|
|||
return select(messages)..where((t) => t.messageId.equals(messageId));
|
||||
}
|
||||
|
||||
Future<Message?> getMessageByMediaUploadId(int mediaUploadId) async {
|
||||
List<Message> msgs = await (select(messages)
|
||||
Future<List<Message>> getMessagesByMediaUploadId(int mediaUploadId) async {
|
||||
return await (select(messages)
|
||||
..where((t) => t.mediaUploadId.equals(mediaUploadId)))
|
||||
.get();
|
||||
if (msgs.isEmpty) return null;
|
||||
if (msgs.length == 1) return msgs[0];
|
||||
|
||||
/// when there are multiple message ids with this id delete all but the last one
|
||||
for (var i = 0; i < (msgs.length - 1); i++) {
|
||||
await deleteMessageById(msgs[i].messageId);
|
||||
}
|
||||
return msgs[msgs.length - 1];
|
||||
}
|
||||
|
||||
SingleOrNullSelectable<Message> getMessageByOtherMessageId(
|
||||
|
|
|
|||
|
|
@ -334,13 +334,24 @@ Future<void> purgeMediaFiles(Directory directory) async {
|
|||
int fileId = int.parse(match.group(0)!);
|
||||
|
||||
try {
|
||||
Message? message = (directory.path.endsWith("send"))
|
||||
? await twonlyDatabase.messagesDao
|
||||
.getMessageByMediaUploadId(fileId)
|
||||
: await twonlyDatabase.messagesDao
|
||||
if (directory.path.endsWith("send")) {
|
||||
List<Message> messages = await twonlyDatabase.messagesDao
|
||||
.getMessagesByMediaUploadId(fileId);
|
||||
bool canBeDeleted = true;
|
||||
|
||||
for (final message in messages) {
|
||||
if ((message.openedAt == null && !message.errorWhileSending) ||
|
||||
message.mediaStored) {
|
||||
canBeDeleted = false;
|
||||
}
|
||||
}
|
||||
if (canBeDeleted) {
|
||||
file.deleteSync();
|
||||
}
|
||||
} else {
|
||||
Message? message = await twonlyDatabase.messagesDao
|
||||
.getMessageByMessageId(fileId)
|
||||
.getSingleOrNull();
|
||||
|
||||
if ((message == null) ||
|
||||
(message.openedAt != null &&
|
||||
!message.mediaStored &&
|
||||
|
|
@ -348,6 +359,7 @@ Future<void> purgeMediaFiles(Directory directory) async {
|
|||
message.errorWhileSending) {
|
||||
file.deleteSync();
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
Logger("media_received.dart").shout("$e");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue