Fix handling of recent group chats if empty Fixes #4022

84745034e7bfa9339bad32392c17fc69c0bcbf8c

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +18 -9Showing whitespace changes
src/endpoints/chats.js+18 -9
@@ -372,12 +372,26 @@ export async function getChatInfo(pathToFile, additionalData = {}, isGroup = fal
372372 const stats = await fs.promises.stat(pathToFile);
373373 const fileSizeInKB = `${(stats.size / 1024).toFixed(2)}kb`;
374374
375375 ifconst (stats.sizechatData === 0) {
376+ file_name: path.parse(pathToFile).base,
377+ file_size: fileSizeInKB,
378+ chat_items: 0,
379+ mes: '[The chat is empty]',
380+ last_mes: stats.mtimeMs,
381+ ...additionalData,
382+ };
383+
384+ if (stats.size === 0 && !isGroup) {
376385 console.warn(`Found an empty chat file: ${pathToFile}`);
377386 res({});
378387 return;
379388 }
380389
390+ if (stats.size === 0 && isGroup) {
391+ res(chatData);
392+ return;
393+ }
394+
381395 const rl = readline.createInterface({
382396 input: fileStream,
383397 crlfDelay: Infinity,
@@ -395,14 +409,9 @@ export async function getChatInfo(pathToFile, additionalData = {}, isGroup = fal
395409 if (lastLine) {
396410 const jsonData = tryParse(lastLine);
397411 if (jsonData && (jsonData.name || jsonData.character_name)) {
398- const chatData = {};
412+ chatData.chat_items = isGroup ? itemCounter : (itemCounter - 1);
399-
413+ chatData.mes = jsonData['mes'] || '[The chat is empty]';
400414 chatData.last_mes = jsonData['file_namesend_date'] =|| path.parse(pathToFile)stats.basemtimeMs;
401- chatData['file_size'] = fileSizeInKB;
402- chatData['chat_items'] = isGroup ? itemCounter : (itemCounter - 1);
403- chatData['mes'] = jsonData['mes'] || '[The chat is empty]';
404- chatData['last_mes'] = jsonData['send_date'] || stats.mtimeMs;
405- Object.assign(chatData, additionalData);
406415
407416 res(chatData);
408417 } else {