Skip to content

Commit

Permalink
Only update files that have been added, fix table result
Browse files Browse the repository at this point in the history
Signed-off-by: Daishan Peng <[email protected]>
  • Loading branch information
StrongMonkey committed Sep 3, 2024
1 parent efae761 commit ff60e6a
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 7 deletions.
25 changes: 22 additions & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,22 +58,41 @@ async function main() {
const pages = await fetchAllPages();
let metadata: Map<string, {
url: string;
updatedAt: string;
}> = new Map();

const outputDir = path.join(process.env.WORKSPACE_DIR!!, 'knowledge', 'integrations', 'notion');
await mkdir(outputDir, { recursive: true });
const metadataPath = path.join(outputDir, 'metadata.json');
if (fs.existsSync(metadataPath)) {
metadata = new Map(Object.entries(JSON.parse(fs.readFileSync(metadataPath, 'utf8').toString())));
}

let updatedPages = 0;
for (const page of pages) {
if (metadata.has(page.id)) {
if (metadata.get(page.id)!.updatedAt === page.last_edited_time) {
continue;
}
}
await writePageToFile(page, outputDir);
metadata.set(page.id, {
url: page.url,
updatedAt: page.last_edited_time,
})
updatedPages++
}

for (const [key, _] of metadata) {
if (!pages.find((page) => page.id === key)) {
fs.rmSync(path.join(outputDir, key), { recursive: true });
console.log(`Removed ${key} from ${outputDir}`);
metadata.delete(key);
}
}

const metadataPath = path.join(outputDir, 'metadata.json');
await writeFile(metadataPath, JSON.stringify(Object.fromEntries(metadata)), 'utf8');

console.log(`Finished writing ${pages.length} pages to ${outputDir}`);
console.log(`Finished writing ${updatedPages} pages to ${outputDir}`);
}

main()
Expand Down
10 changes: 6 additions & 4 deletions src/page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,18 +142,20 @@ function fileToString(prefix: any, file: any) {
return result
}

async function printTable(client: Client, table: any) {
async function printTable(client: Client, table: any): Promise<string> {
let result = ""
const children = await client.blocks.children.list({block_id: table.id})
if (table.table.has_column_header && children.results.length > 0) {
printTableRow((children.results[0] as any).table_row, table.table.has_row_header, true)
result += printTableRow((children.results[0] as any).table_row, table.table.has_row_header, true)
for (let i = 1; i < children.results.length; i++) {
printTableRow((children.results[i] as any).table_row, table.table.has_row_header, false)
result += printTableRow((children.results[i] as any).table_row, table.table.has_row_header, false)
}
} else {
for (let r of children.results) {
printTableRow((r as any).table_row, table.table.has_row_header, false)
result += printTableRow((r as any).table_row, table.table.has_row_header, false)
}
}
return result;
}

function printTableRow(row: any, boldFirst: any, boldAll: any): string {
Expand Down

0 comments on commit ff60e6a

Please sign in to comment.