mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-05-25 07:02:12 +00:00
more smaller bug fixes
This commit is contained in:
parent
c197cb797e
commit
be35336a5d
3 changed files with 56 additions and 12 deletions
|
|
@ -184,7 +184,15 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (msg.mediaId != null && contactId != null) {
|
if (msg.mediaId != null && contactId != null) {
|
||||||
// contactId -> When a image is send to multiple and one message is delete the image should be still available...
|
final otherMessagesWithSameMedia = await (select(messages)
|
||||||
|
..where(
|
||||||
|
(t) =>
|
||||||
|
t.mediaId.equals(msg.mediaId!) &
|
||||||
|
t.messageId.equals(messageId).not(),
|
||||||
|
))
|
||||||
|
.get();
|
||||||
|
|
||||||
|
if (otherMessagesWithSameMedia.isEmpty) {
|
||||||
await (delete(
|
await (delete(
|
||||||
mediaFiles,
|
mediaFiles,
|
||||||
)..where((t) => t.mediaId.equals(msg.mediaId!))).go();
|
)..where((t) => t.mediaId.equals(msg.mediaId!))).go();
|
||||||
|
|
@ -193,6 +201,11 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
||||||
if (mediaService != null) {
|
if (mediaService != null) {
|
||||||
mediaService.fullMediaRemoval();
|
mediaService.fullMediaRemoval();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
Log.info(
|
||||||
|
'Media ${msg.mediaId} is still used by ${otherMessagesWithSameMedia.length} other messages. Skipping physical deletion.',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await (delete(
|
await (delete(
|
||||||
messageHistories,
|
messageHistories,
|
||||||
|
|
|
||||||
|
|
@ -204,11 +204,42 @@ Future<void> finishStartedPreprocessing() async {
|
||||||
// media files was just stored..
|
// media files was just stored..
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Log.info(
|
if (mediaFile.reuploadRequestedBy != null) {
|
||||||
'Deleted media files, as originalPath and uploadRequestPath both do not exists',
|
Log.warn(
|
||||||
|
'Reupload requested for ${mediaFile.mediaId} but files are missing. Cancelling reupload but keeping record.',
|
||||||
);
|
);
|
||||||
// the file does not exists anymore.
|
await twonlyDB.mediaFilesDao.updateMedia(
|
||||||
|
mediaFile.mediaId,
|
||||||
|
const MediaFilesCompanion(
|
||||||
|
uploadState: Value(UploadState.uploaded),
|
||||||
|
reuploadRequestedBy: Value(null),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
final messages = await twonlyDB.messagesDao.getMessagesByMediaId(
|
||||||
|
mediaFile.mediaId,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (messages.isEmpty) {
|
||||||
|
Log.info(
|
||||||
|
'Deleted media files ${mediaFile.mediaId} as originalPath and uploadRequestPath both do not exists and no messages reference it.',
|
||||||
|
);
|
||||||
|
// the file does not exists anymore and no messages reference it.
|
||||||
await twonlyDB.mediaFilesDao.deleteMediaFile(mediaFile.mediaId);
|
await twonlyDB.mediaFilesDao.deleteMediaFile(mediaFile.mediaId);
|
||||||
|
} else {
|
||||||
|
Log.warn(
|
||||||
|
'Media files ${mediaFile.mediaId} missing but messages still reference it. Keeping record to avoid broken chat history.',
|
||||||
|
);
|
||||||
|
// Just mark as uploaded to stop preprocessing attempts
|
||||||
|
await twonlyDB.mediaFilesDao.updateMedia(
|
||||||
|
mediaFile.mediaId,
|
||||||
|
const MediaFilesCompanion(
|
||||||
|
uploadState: Value(UploadState.uploaded),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Log.info(
|
Log.info(
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ class MediaFileService {
|
||||||
final group = await twonlyDB.groupsDao.getGroup(
|
final group = await twonlyDB.groupsDao.getGroup(
|
||||||
message.groupId,
|
message.groupId,
|
||||||
);
|
);
|
||||||
if (group != null && !group.isDirectChat) {
|
if (group != null) {
|
||||||
delete = false;
|
delete = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue