Support for running proof check on client side

This commit is contained in:
N-Pex 2025-09-05 13:48:52 +02:00
parent 66eef037e0
commit 46479d4c37
6 changed files with 126 additions and 29 deletions

View file

@ -18,7 +18,7 @@ import {
import proofmode from "../plugins/proofmode";
import imageResize from "image-resize";
import { computed, ref, Ref, shallowReactive, unref } from "vue";
import utils, { THUMBNAIL_MAX_WIDTH, THUMBNAIL_MAX_HEIGHT } from "@/plugins/utils";
import utils, { THUMBNAIL_MAX_WIDTH, THUMBNAIL_MAX_HEIGHT, CLIENT_EVENT_PROOF_HINT } from "@/plugins/utils";
import { extractProofHintFlags } from "./proof";
export class AttachmentManager {
@ -220,6 +220,8 @@ export class AttachmentManager {
const fileSize = this.getSrcFileSize(event);
let proofHintFlags = event.getContent()[CLIENT_EVENT_PROOF_HINT];
const attachment: EventAttachment = {
event: event,
name: this.getFileName(event),
@ -227,6 +229,8 @@ export class AttachmentManager {
srcProgress: -1,
thumbnailProgress: -1,
autoDownloadable: fileSize <= this.maxSizeAutoDownloads,
proofHintFlags: proofHintFlags ? JSON.parse(proofHintFlags) : proofHintFlags,
proof: undefined,
loadSrc: () => Promise.reject("Not implemented"),
loadThumbnail: () => Promise.reject("Not implemented"),
loadBlob: () => Promise.reject("Not implemented"),

View file

@ -1,5 +1,6 @@
import { MatrixEvent, Room } from "matrix-js-sdk";
import { AttachmentBatch } from "./attachment";
import { Proof, ProofHintFlags } from "./proof";
export type KeanuEventExtension = {
isMxThread?: boolean;
@ -26,6 +27,8 @@ export type EventAttachment = {
thumbnailProgress: number;
thumbnailPromise?: Promise<EventAttachmentUrlData>;
autoDownloadable: boolean;
proof?: Proof;
proofHintFlags?: ProofHintFlags;
loadSrc: () => Promise<EventAttachmentUrlData>;
loadThumbnail: () => Promise<EventAttachmentUrlData>;
loadBlob: () => Promise<{data: Blob}>;