mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-05-25 03:42:13 +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;
|
||||
}
|
||||
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(
|
||||
mediaFiles,
|
||||
)..where((t) => t.mediaId.equals(msg.mediaId!))).go();
|
||||
|
|
@ -193,6 +201,11 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
|||
if (mediaService != null) {
|
||||
mediaService.fullMediaRemoval();
|
||||
}
|
||||
} else {
|
||||
Log.info(
|
||||
'Media ${msg.mediaId} is still used by ${otherMessagesWithSameMedia.length} other messages. Skipping physical deletion.',
|
||||
);
|
||||
}
|
||||
}
|
||||
await (delete(
|
||||
messageHistories,
|
||||
|
|
|
|||
|
|
@ -204,11 +204,42 @@ Future<void> finishStartedPreprocessing() async {
|
|||
// media files was just stored..
|
||||
continue;
|
||||
}
|
||||
Log.info(
|
||||
'Deleted media files, as originalPath and uploadRequestPath both do not exists',
|
||||
if (mediaFile.reuploadRequestedBy != null) {
|
||||
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);
|
||||
} 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;
|
||||
}
|
||||
Log.info(
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ class MediaFileService {
|
|||
final group = await twonlyDB.groupsDao.getGroup(
|
||||
message.groupId,
|
||||
);
|
||||
if (group != null && !group.isDirectChat) {
|
||||
if (group != null) {
|
||||
delete = false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue