Новая система вложений

This commit is contained in:
RoyceDa
2026-03-26 22:29:03 +02:00
parent fd3fac54f6
commit 8d6090e632
12 changed files with 192 additions and 145 deletions

View File

@@ -46,6 +46,9 @@ export interface AttachmentMeta {
id: string;
type: AttachmentType;
preview: string;
transport_tag: string;
encoded_for: string;
transport_server: string;
}
export interface Message {
@@ -469,9 +472,7 @@ export function DialogProvider(props: DialogProviderProps) {
for(let i = 0; i < packet.getAttachments().length; i++) {
const attachment = packet.getAttachments()[i];
attachments.push({
id: attachment.id,
preview: attachment.preview,
type: attachment.type,
...attachment,
blob: attachment.type == AttachmentType.MESSAGES ? await decodeWithPassword(chachaDecryptedKey.toString('utf-8'), attachment.blob) : ""
});
}
@@ -549,9 +550,7 @@ export function DialogProvider(props: DialogProviderProps) {
for(let i = 0; i < packet.getAttachments().length; i++) {
const attachment = packet.getAttachments()[i];
attachments.push({
id: attachment.id,
preview: attachment.preview,
type: attachment.type,
...attachment,
blob: attachment.type == AttachmentType.MESSAGES ? await decodeWithPassword(groupKey, attachment.blob) : ""
});
}
@@ -627,9 +626,7 @@ export function DialogProvider(props: DialogProviderProps) {
for(let i = 0; i < packet.getAttachments().length; i++) {
const attachment = packet.getAttachments()[i];
attachments.push({
id: attachment.id,
preview: attachment.preview,
type: attachment.type,
...attachment,
blob: attachment.type == AttachmentType.MESSAGES ? await decodeWithPassword(chachaDecryptedKey.toString('utf-8'), attachment.blob) : ""
});
}
@@ -707,9 +704,7 @@ export function DialogProvider(props: DialogProviderProps) {
for(let i = 0; i < packet.getAttachments().length; i++) {
const attachment = packet.getAttachments()[i];
attachments.push({
id: attachment.id,
preview: attachment.preview,
type: attachment.type,
...attachment,
blob: attachment.type == AttachmentType.MESSAGES ? await decodeWithPassword(groupKey, attachment.blob) : ""
});
}
@@ -964,7 +959,10 @@ export function DialogProvider(props: DialogProviderProps) {
id: meta.id,
blob: blob,
type: meta.type,
preview: meta.preview
preview: meta.preview,
transport_server: meta.transport_server,
transport_tag: meta.transport_tag,
encoded_for: meta.encoded_for
});
}
return attachments;

View File

@@ -118,7 +118,10 @@ export function useDialog() : {
attachmentsMeta.push({
id: attachment.id,
type: attachment.type,
preview: attachment.preview
preview: attachment.preview,
transport_server: attachment.transport_server,
transport_tag: attachment.transport_tag,
encoded_for: dialog
});
if(attachment.type == AttachmentType.FILE){
/**

View File

@@ -20,7 +20,7 @@ import { useGroupInviteStatus } from "./useGroupInviteStatus";
import { Attachment, AttachmentType, PacketMessage } from "../ProtocolProvider/protocol/packets/packet.message";
import { useUpdateSyncTime } from "./useUpdateSyncTime";
import { useFileStorage } from "@/app/hooks/useFileStorage";
import { DeliveredMessageState, Message } from "./DialogProvider";
import { AttachmentMeta, DeliveredMessageState, Message } from "./DialogProvider";
import { MESSAGE_MAX_LOADED, TIME_TO_INACTIVE_FOR_MESSAGES_UNREAD } from "@/app/constants";
import { useMemory } from "../MemoryProvider/useMemory";
import { useDialogsCache } from "./useDialogsCache";
@@ -165,7 +165,7 @@ export function useSynchronize() {
const nonce = chachaDecryptedKey.slice(32);
const decryptedContent = await chacha20Decrypt(content, nonce.toString('hex'), key.toString('hex'));
await updateSyncTime(timestamp);
let attachmentsMeta: any[] = [];
let attachmentsMeta: AttachmentMeta[] = [];
let messageAttachments: Attachment[] = [];
for (let i = 0; i < packet.getAttachments().length; i++) {
const attachment = packet.getAttachments()[i];
@@ -190,7 +190,10 @@ export function useSynchronize() {
attachmentsMeta.push({
id: attachment.id,
type: attachment.type,
preview: attachment.preview
preview: attachment.preview,
encoded_for: attachment.encoded_for,
transport_server: attachment.transport_server,
transport_tag: attachment.transport_tag
});
}
@@ -347,7 +350,7 @@ export function useSynchronize() {
decryptedContent = '';
}
let attachmentsMeta: any[] = [];
let attachmentsMeta: AttachmentMeta[] = [];
let messageAttachments: Attachment[] = [];
for (let i = 0; i < packet.getAttachments().length; i++) {
const attachment = packet.getAttachments()[i];
@@ -372,7 +375,10 @@ export function useSynchronize() {
attachmentsMeta.push({
id: attachment.id,
type: attachment.type,
preview: attachment.preview
preview: attachment.preview,
encoded_for: attachment.encoded_for,
transport_server: attachment.transport_server,
transport_tag: attachment.transport_tag
});
}