fix(llm.gblib): Fix in doc. publishing.
This commit is contained in:
parent
619d094886
commit
93c6c51f3a
3 changed files with 61 additions and 33 deletions
|
@ -237,6 +237,7 @@
|
|||
"walk-promise": "0.2.0",
|
||||
"washyourmouthoutwithsoap": "1.0.2",
|
||||
"webdav-server": "2.6.2",
|
||||
"webp-converter": "^2.3.3",
|
||||
"whatsapp-cloud-api": "0.3.1",
|
||||
"whatsapp-web.js": "1.26.1-alpha.1",
|
||||
"winston": "3.14.2",
|
||||
|
|
|
@ -780,10 +780,19 @@ export class SystemKeywords {
|
|||
});
|
||||
GBLogEx.info(min, `SAVE '${table}': ${rows.length} row(s).`);
|
||||
|
||||
// Capture the values we need for retries
|
||||
const tableName = table;
|
||||
const minRef = min;
|
||||
|
||||
await retry(
|
||||
async bail => {
|
||||
await t.bulkCreate(rowsDest);
|
||||
rowsDest = null;
|
||||
async (bail) => {
|
||||
const t = this.getTableFromName(tableName, minRef);
|
||||
try {
|
||||
await t.bulkCreate(rowsDest);
|
||||
rowsDest = null;
|
||||
} catch (error) {
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
{
|
||||
retries: 5,
|
||||
|
@ -1690,7 +1699,7 @@ export class SystemKeywords {
|
|||
const dstPath = urlJoin(packagePath, dest);
|
||||
|
||||
|
||||
if (path.extname(srcPath) === 'ai'){
|
||||
if (path.extname(srcPath) === 'ai') {
|
||||
|
||||
// TODO: To be done.
|
||||
|
||||
|
@ -1733,7 +1742,7 @@ export class SystemKeywords {
|
|||
}
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2900,27 +2909,27 @@ export class SystemKeywords {
|
|||
|
||||
public async convertAI2HTML(aiFilePath) {
|
||||
|
||||
// Convert the AI file to HTML and assets
|
||||
const result = await ai2html.convertFile(aiFilePath, {
|
||||
outputFormat: 'html',
|
||||
outputWriteMethod: 'write-file',
|
||||
outputPath: path.dirname(aiFilePath),
|
||||
useDocumentSettings: true,
|
||||
});
|
||||
// Convert the AI file to HTML and assets
|
||||
const result = await ai2html.convertFile(aiFilePath, {
|
||||
outputFormat: 'html',
|
||||
outputWriteMethod: 'write-file',
|
||||
outputPath: path.dirname(aiFilePath),
|
||||
useDocumentSettings: true,
|
||||
});
|
||||
|
||||
// Get the generated HTML file path
|
||||
const htmlFilePath = result.outputFiles.find((file) => file.endsWith('.html')).filePath;
|
||||
// Get the generated HTML file path
|
||||
const htmlFilePath = result.outputFiles.find((file) => file.endsWith('.html')).filePath;
|
||||
|
||||
// Read the HTML content
|
||||
const htmlContent = await fs.readFile(htmlFilePath, 'utf8');
|
||||
// Read the HTML content
|
||||
const htmlContent = await fs.readFile(htmlFilePath, 'utf8');
|
||||
|
||||
// Save the HTML and assets to a cache directory
|
||||
const cacheDir = path.join('work', 'cache');
|
||||
await fs.mkdir(cacheDir, { recursive: true });
|
||||
const cacheFilePath = path.join(cacheDir, path.basename(htmlFilePath));
|
||||
await fs.writeFile(cacheFilePath, htmlContent);
|
||||
// Save the HTML and assets to a cache directory
|
||||
const cacheDir = path.join('work', 'cache');
|
||||
await fs.mkdir(cacheDir, { recursive: true });
|
||||
const cacheFilePath = path.join(cacheDir, path.basename(htmlFilePath));
|
||||
await fs.writeFile(cacheFilePath, htmlContent);
|
||||
|
||||
return cacheFilePath;
|
||||
return cacheFilePath;
|
||||
|
||||
}
|
||||
|
||||
|
@ -2997,7 +3006,7 @@ export class SystemKeywords {
|
|||
};
|
||||
|
||||
// If the column is named 'id' or 'Id', set it as the primary key
|
||||
if (! pkAdded && (col.toLowerCase() === 'id' || col.toLowerCase() === 'internal_id')) {
|
||||
if (!pkAdded && (col.toLowerCase() === 'id' || col.toLowerCase() === 'internal_id')) {
|
||||
schema[col].primaryKey = true;
|
||||
pkAdded = true;
|
||||
}
|
||||
|
@ -3041,5 +3050,5 @@ export class SystemKeywords {
|
|||
|
||||
// Close SQLite connection
|
||||
await sqlite.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,6 +73,8 @@ import textract from 'textract';
|
|||
import { GBUtil } from '../../../src/util.js';
|
||||
import { GBAdminService } from '../../admin.gbapp/services/GBAdminService.js';
|
||||
import { AzureDeployerService } from '../../azuredeployer.gbapp/services/AzureDeployerService.js';
|
||||
import webp from 'webp-converter';
|
||||
import os from 'os';
|
||||
import { DialogKeywords } from '../../basic.gblib/services/DialogKeywords.js';
|
||||
import { GBVMService } from '../../basic.gblib/services/GBVMService.js';
|
||||
import { GuaribasPackage } from '../../core.gbapp/models/GBModel.js';
|
||||
|
@ -1080,6 +1082,18 @@ export class KBService implements IGBKBService {
|
|||
throw new Error('Failed to parse ICO file');
|
||||
}
|
||||
buffer = Buffer.from(images[0].buffer);
|
||||
} else if (buffer.slice(0, 4).toString('hex') === '52494646' &&
|
||||
buffer.slice(8, 12).toString('hex') === '57454250') {
|
||||
|
||||
// Convert WebP to PNG using temporary files
|
||||
const tempWebP = path.join(os.tmpdir(), `temp-${Date.now()}.webp`);
|
||||
const tempPNG = path.join(os.tmpdir(), `temp-${Date.now()}.png`);
|
||||
|
||||
await fs.writeFile(tempWebP, buffer);
|
||||
await webp.dwebp(tempWebP, tempPNG, "-o");
|
||||
|
||||
buffer = await fs.readFile(tempPNG);
|
||||
|
||||
} else if (buffer.toString().includes('<svg')) {
|
||||
|
||||
// For SVG files, convert using svg2img
|
||||
|
@ -1558,10 +1572,14 @@ export class KBService implements IGBKBService {
|
|||
return filePath; // Return the saved file path
|
||||
} else {
|
||||
await page.goto(url, {
|
||||
waitUntil: 'networkidle2',
|
||||
timeout: 60000 // Timeout after 1 minute (60,000 ms)
|
||||
waitUntil: 'domcontentloaded', // Changed to only wait for DOM
|
||||
timeout: 10000 // Reduced timeout to 10 seconds
|
||||
});
|
||||
|
||||
// Stop all scripts and requests
|
||||
await page.setRequestInterception(true);
|
||||
page.on('request', request => request.abort());
|
||||
|
||||
|
||||
const parsedUrl = new URL(url);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue