diff --git a/src/splitter.html b/src/splitter.html index 3111f65..2019e28 100644 --- a/src/splitter.html +++ b/src/splitter.html @@ -111,7 +111,12 @@ const hashHex = hashArray.map(byte => byte.toString(16).padStart(2, '0')).join(''); // Calculate the total number of chunks - const totalChunks = Math.ceil((text.length + `Hash: ${hashHex}\nMessage 1/1\n\n`.length) / maxChunkSize); + const initialPrefix = `Hash: ${hashHex}\nMessage 1/1\n\n`; + const remainingLength = text.length - (maxChunkSize - initialPrefix.length); + const additionalChunks = Math.ceil(remainingLength / (maxChunkSize - 20)); + const totalChunks = 1 + additionalChunks; + + // Prepare the first chunk with hash and sequence const firstChunkPrefix = `Hash: ${hashHex}\nMessage 1/${totalChunks}\n\n`; const firstChunkContentSize = maxChunkSize - firstChunkPrefix.length; const firstChunk = firstChunkPrefix + text.substring(0, firstChunkContentSize); @@ -122,7 +127,7 @@ // Split the remaining text into chunks for (let i = firstChunkContentSize; i < text.length; i += (maxChunkSize - 20)) { let chunk = text.substring(i, i + (maxChunkSize - 20)); - let chunkNumber = Math.floor(i / (maxChunkSize - 20)) + 2; // Start from the second chunk + let chunkNumber = Math.floor((i - firstChunkContentSize) / (maxChunkSize - 20)) + 2; // Start from the second chunk let prefix = `Message ${chunkNumber}/${totalChunks}\n\n`; chunk = `${prefix}${chunk}`;