This commit is contained in:
fmodf 2024-08-19 04:38:06 +02:00
parent 1fb0a77f43
commit 9c4576f1f6
3 changed files with 21 additions and 23 deletions

View file

@ -31,29 +31,27 @@ final class ClientMartinMAM {
private func handleMessage(_ received: Martin.MessageArchiveManagementModule.ArchivedMessageReceived) async {
let message = received.message
let date = received.timestamp
let msgId = received.messageId
try? await Database.shared.dbQueue.write { db in
if try Message.fetchOne(db, key: msgId) != nil {
#if DEBUG
print("---")
print("Skipping archived message with id \(message.id ?? "???") (message exists)")
print("---")
#endif
return
} else {
#if DEBUG
print("---")
print("Archive message received: \(message)")
print("Date: \(date)")
print("---")
#endif
// Skip archived message if such message already exists in the database
if let archiveId = message.id {
try? await Database.shared.dbQueue.read { db in
if try Message.fetchOne(db, key: archiveId) != nil {
return
}
}
}
if let msg = Message.map(message) {
do {
var msg = msg
if var msg = Message.map(message) {
msg.date = received.timestamp
try await msg.save()
} catch {
logIt(.error, "Error saving message: \(error)")
try msg.insert(db)
}
}
}
}

View file

@ -76,7 +76,7 @@ private extension MessagesStore {
// MARK: - Archived messages
extension MessagesStore {
func requestEarliestArchivedMessages() {
guard let beforeId = messages.first?.id else { return }
guard let beforeId = messages.last?.id else { return }
Task {
await archiveMessageFetcher.fetchBeforeMessages(roster, client, beforeId: beforeId)
}

View file

@ -44,5 +44,5 @@ enum Const {
static let attachmentPreviewSize = UIScreen.main.bounds.width * 0.5
// MAM request page size
static let mamRequestLimit = 30
static let mamRequestLimit = 10
}