mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 18:08:40 +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));
|
return select(messages)..where((t) => t.messageId.equals(messageId));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<Message?> getMessageByMediaUploadId(int mediaUploadId) async {
|
Future<List<Message>> getMessagesByMediaUploadId(int mediaUploadId) async {
|
||||||
List<Message> msgs = await (select(messages)
|
return await (select(messages)
|
||||||
..where((t) => t.mediaUploadId.equals(mediaUploadId)))
|
..where((t) => t.mediaUploadId.equals(mediaUploadId)))
|
||||||
.get();
|
.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(
|
SingleOrNullSelectable<Message> getMessageByOtherMessageId(
|
||||||
|
|
|
||||||
|
|
@ -334,13 +334,24 @@ Future<void> purgeMediaFiles(Directory directory) async {
|
||||||
int fileId = int.parse(match.group(0)!);
|
int fileId = int.parse(match.group(0)!);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Message? message = (directory.path.endsWith("send"))
|
if (directory.path.endsWith("send")) {
|
||||||
? await twonlyDatabase.messagesDao
|
List<Message> messages = await twonlyDatabase.messagesDao
|
||||||
.getMessageByMediaUploadId(fileId)
|
.getMessagesByMediaUploadId(fileId);
|
||||||
: await twonlyDatabase.messagesDao
|
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)
|
.getMessageByMessageId(fileId)
|
||||||
.getSingleOrNull();
|
.getSingleOrNull();
|
||||||
|
|
||||||
if ((message == null) ||
|
if ((message == null) ||
|
||||||
(message.openedAt != null &&
|
(message.openedAt != null &&
|
||||||
!message.mediaStored &&
|
!message.mediaStored &&
|
||||||
|
|
@ -348,6 +359,7 @@ Future<void> purgeMediaFiles(Directory directory) async {
|
||||||
message.errorWhileSending) {
|
message.errorWhileSending) {
|
||||||
file.deleteSync();
|
file.deleteSync();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Logger("media_received.dart").shout("$e");
|
Logger("media_received.dart").shout("$e");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue