const fs = require('fs') const paths = [ 'd:/ylrz_saas_new/saas-companyui/public/chat-aggregate.html', 'd:/ylrz_saas_new/saas-mgnui/public/chat-aggregate.html', 'd:/ylrz_saas_new/adminui/public/chat-aggregate.html', 'd:/ylrz_saas_new/java/fs-comm-gateway/src/main/resources/static/chat-aggregate.html', 'd:/ylrz_saas_new/java/fs-saas-company/src/main/resources/static/chat-aggregate.html' ] const fnBlock = ` const formatLobsterDateTime = (time) => { if (time === null || time === undefined || time === '') return '??'; const date = time instanceof Date ? time : new Date(time); if (isNaN(date.getTime())) return '??'; const y = date.getFullYear(); const m = String(date.getMonth() + 1).padStart(2, '0'); const d = String(date.getDate()).padStart(2, '0'); const h = String(date.getHours()).padStart(2, '0'); const mi = String(date.getMinutes()).padStart(2, '0'); const s = String(date.getSeconds()).padStart(2, '0'); return \`\${y}-\${m}-\${d} \${h}:\${mi}:\${s}\`; }; ` for (const p of paths) { if (!fs.existsSync(p)) { console.log('skip', p) continue } let c = fs.readFileSync(p, 'utf8') if (c.includes('const formatLobsterDateTime')) { console.log('already', p) continue } c = c.replace( /return await response\.json\(\);\r?\n };\r?\n\r?\n \/\/ �˻��б�/, 'return await response.json();\n };\n\n const formatLobsterDateTime = (time) => {\n if (time === null || time === undefined || time === \'\') return \'��\';\n const date = time instanceof Date ? time : new Date(time);\n if (isNaN(date.getTime())) return \'��\';\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, \'0\');\n const d = String(date.getDate()).padStart(2, \'0\');\n const h = String(date.getHours()).padStart(2, \'0\');\n const mi = String(date.getMinutes()).padStart(2, \'0\');\n const s = String(date.getSeconds()).padStart(2, \'0\');\n return `${y}-${m}-${d} ${h}:${mi}:${s}`;\n };\n\n // �˻��б�' ) c = c.replace( '