From 3e463ea2864c5706008c7b1193fcf2e4ab0460d2 Mon Sep 17 00:00:00 2001 From: Peaceultime Date: Tue, 26 Nov 2024 15:29:31 +0100 Subject: [PATCH] Switch pull and push to make more sense --- db.sqlite | Bin 569344 -> 569344 bytes db.sqlite-shm | Bin 32768 -> 32768 bytes db.sqlite-wal | Bin 45352 -> 0 bytes server/tasks/pull.ts | 83 ++++++++++++++++++++++++++++++++++++++++--- server/tasks/push.ts | 81 +++-------------------------------------- 5 files changed, 83 insertions(+), 81 deletions(-) diff --git a/db.sqlite b/db.sqlite index 99dc515c9e656799cf44fdc380981a62a1ece34e..a7fd13a43f731a5eb1ed500489a17f6144d2ef79 100644 GIT binary patch delta 27442 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 diff --git a/db.sqlite-shm b/db.sqlite-shm index 6be91d44d764f69582f335e7e7d9500edb737915..fe9ac2845eca6fe6da8a63cd096d9cf9e24ece10 100644 GIT binary patch delta 80 zcmZo@U}|V!;+1%$%K!t66E{kWTChv7nNGgVi7p`mlYpuI4+Il)WHuf!3EX(VMGpX^ Cc@#we delta 213 zcmZo@U}|V!s+V}A%K!r0K+MR%AONDff%sIa$niqu+i$0Qn)2-Tcb8C$*Bf5^`nkf5 zRP{ikzyM_Ker5e Ne9pnhvawN66##GhIC}s9 diff --git a/db.sqlite-wal b/db.sqlite-wal index fb0deebaa028eb454b3f1c6865ec0b7aa0ef010d..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 45352 zcmeI(O^6$19LMolyX>-1jiA<|RFI7n+>B;kGlMQ}x=E9C3*sA?EbcU^Um$e@}-x5|Mh zo>DF=mF%@6iFDC z{-bFazN~wmBRj5X$*yhreprj}ZL5;2z8!97UoLRF`Oclm4<1O73mkCJ3?qO50tg_0 z00IagfB*srAaECf2y=m>{mcda+`IAkr+>Wi6S=@$4w)eY5I_I{1Q0*~0R#|0009IJ z5Qs1rcqHOnU?SYoKkpI5(!X96H`VWYxxh$FNHKBWR}y|C^(uHUL}RRe$KKi{8n8$sM@RvH)7suyoh zD|S4X4)54&W@2kvO{`BV@x|HAPPM(IxBN`4*jZUFpG-Zy8fbN)Za2?~LZ_oP>|h}~ z=NC8QXGCT}vD39iM^|cMWkaa*rQFhq>{+was2g*Bx_s)?^KNb`lPh!|9T}GLKR)y}r(OF=$AZ`JHpsg`YJmB4cf&DHZ$ z!5J+Zcc)TIZnLwd*Boo1n0>)qU-#DPXA8}sSXnrsc&pi}fBK{`l~K=!2e|J&f^X^% zUCb}P`y=-S2H4sxjQ|1&Ab`vUuNfhS)JZf$&f*&!Dg zx)!8h1Q0*~0R#|0009ILKmdUO3PhL-%=9xCFm^^yKejWoL@qGEW@2ds5I_I{1Q0*~ z0R#|00D++sh%gsO_cIr`di{-`Kgt~WoLpe&T9ASfKmY**5I_I{1Q0*~0R#pp5MeGb z*UwyFZ0Eff57#es$pr@3Oe~E60tg_000IagfB*srATV?S5#|ELe&zxzyBDwIj&FWJ zE--X0NWlmofB*srAb = { ".md": "markdown", @@ -26,14 +27,88 @@ export default defineTask({ } }) as any; + const files: typeof explorerContentTable.$inferInsert = await Promise.all(tree.tree.filter((e: any) => !e.path.startsWith(".")).map(async (e: any) => { + if(e.type === 'tree') + { + const title = basename(e.path); + const order = /(\d+)\. ?(.+)/gsmi.exec(title); + const path = (e.path as string).split('/').map(f => { const check = /(\d+)\. ?(.+)/gsmi.exec(f); return check && check[2] ? check[2] : f }).join('/'); + return { + path: path.toLowerCase().replaceAll(" ", "-").normalize("NFD").replace(/[\u0300-\u036f]/g, ""), + order: order && order[1] ? order[1] : 0, + title: order && order[2] ? order[2] : title, + type: 'folder', + content: null, + owner: '1', + navigable: true, + private: e.path.startsWith('98.Privé'), + } + } + + const extension = extname(e.path); + const title = basename(e.path, extension); + const order = /(\d+)\. ?(.+)/gsmi.exec(title); + const path = (e.path as string).split('/').map(f => { const check = /(\d+)\. ?(.+)/gsmi.exec(f); return check && check[2] ? check[2] : f }).join('/'); + const content = (await $fetch(`https://git.peaceultime.com/api/v1/repos/peaceultime/system-aspect/raw/${encodeURIComponent(e.path)}`)); + + return { + path: (extension === '.md' ? path.replace(extension, '') : path).toLowerCase().replaceAll(" ", "-").normalize("NFD").replace(/[\u0300-\u036f]/g, ""), + order: order && order[1] ? order[1] : 0, + title: order && order[2] ? order[2] : title, + type: (typeMapping[extension] ?? 'file'), + content: reshapeContent(content as string, typeMapping[extension] ?? 'File'), + owner: '1', + navigable: true, + private: e.path.startsWith('98.Privé') + } + })); + const db = useDatabase(); - const files = db.select().from(explorerContentTable).where(ne(explorerContentTable.type, 'folder')).all(); + db.delete(explorerContentTable).run(); + db.insert(explorerContentTable).values(files).run(); + + useStorage('cache').clear(); return { result: true }; } catch(e) { + console.error(e); + return { result: false, error: e }; } }, -}) \ No newline at end of file +}) + +function reshapeContent(content: string, type: FileType): string | null +{ + switch(type) + { + case "markdown": + case "file": + return content; + case "canvas": + const data = JSON.parse(content) as CanvasContent; + data.edges.forEach(e => e.color = typeof e.color === 'string' ? getColor(e.color) : undefined); + data.nodes.forEach(e => e.color = typeof e.color === 'string' ? getColor(e.color) : undefined); + return JSON.stringify(data); + default: + case 'folder': + return null; + } +} +function getColor(color: string): CanvasColor +{ + const colors: Record = { + '1': 'red', + '2': 'orange', + '3': 'yellow', + '4': 'green', + '5': 'cyan', + '6': 'purple', + }; + if(colors.hasOwnProperty(color)) + return { class: colors[color] }; + else + return { hex: color }; +} \ No newline at end of file diff --git a/server/tasks/push.ts b/server/tasks/push.ts index 7539c6e..9ade22e 100644 --- a/server/tasks/push.ts +++ b/server/tasks/push.ts @@ -1,8 +1,7 @@ import useDatabase from "~/composables/useDatabase"; -import { extname, basename } from 'node:path'; -import type { File, FileType, Tag } from '~/types/api'; -import type { CanvasColor, CanvasContent } from "~/types/canvas"; +import type { FileType } from '~/types/api'; import { explorerContentTable } from "~/db/schema"; +import { eq, ne } from "drizzle-orm"; const typeMapping: Record = { ".md": "markdown", @@ -27,47 +26,8 @@ export default defineTask({ } }) as any; - const files: typeof explorerContentTable.$inferInsert = await Promise.all(tree.tree.filter((e: any) => !e.path.startsWith(".")).map(async (e: any) => { - if(e.type === 'tree') - { - const title = basename(e.path); - const order = /(\d+)\. ?(.+)/gsmi.exec(title); - const path = (e.path as string).split('/').map(f => { const check = /(\d+)\. ?(.+)/gsmi.exec(f); return check && check[2] ? check[2] : f }).join('/'); - return { - path: path.toLowerCase().replaceAll(" ", "-").normalize("NFD").replace(/[\u0300-\u036f]/g, ""), - order: order && order[1] ? order[1] : 0, - title: order && order[2] ? order[2] : title, - type: 'folder', - content: null, - owner: '1', - navigable: true, - private: e.path.startsWith('98.Privé'), - } - } - - const extension = extname(e.path); - const title = basename(e.path, extension); - const order = /(\d+)\. ?(.+)/gsmi.exec(title); - const path = (e.path as string).split('/').map(f => { const check = /(\d+)\. ?(.+)/gsmi.exec(f); return check && check[2] ? check[2] : f }).join('/'); - const content = (await $fetch(`https://git.peaceultime.com/api/v1/repos/peaceultime/system-aspect/raw/${encodeURIComponent(e.path)}`)); - - return { - path: (extension === '.md' ? path.replace(extension, '') : path).toLowerCase().replaceAll(" ", "-").normalize("NFD").replace(/[\u0300-\u036f]/g, ""), - order: order && order[1] ? order[1] : 0, - title: order && order[2] ? order[2] : title, - type: (typeMapping[extension] ?? 'file'), - content: reshapeContent(content as string, typeMapping[extension] ?? 'File'), - owner: '1', - navigable: true, - private: e.path.startsWith('98.Privé') - } - })); - const db = useDatabase(); - db.delete(explorerContentTable).run(); - db.insert(explorerContentTable).values(files).run(); - - useStorage('cache').clear(); + const files = db.select().from(explorerContentTable).where(ne(explorerContentTable.type, 'folder')).all(); return { result: true }; } @@ -76,37 +36,4 @@ export default defineTask({ return { result: false, error: e }; } }, -}) - -function reshapeContent(content: string, type: FileType): string | null -{ - switch(type) - { - case "markdown": - case "file": - return content; - case "canvas": - const data = JSON.parse(content) as CanvasContent; - data.edges.forEach(e => e.color = typeof e.color === 'string' ? getColor(e.color) : undefined); - data.nodes.forEach(e => e.color = typeof e.color === 'string' ? getColor(e.color) : undefined); - return JSON.stringify(data); - default: - case 'folder': - return null; - } -} -function getColor(color: string): CanvasColor -{ - const colors: Record = { - '1': 'red', - '2': 'orange', - '3': 'yellow', - '4': 'green', - '5': 'cyan', - '6': 'purple', - }; - if(colors.hasOwnProperty(color)) - return { class: colors[color] }; - else - return { hex: color }; -} \ No newline at end of file +}) \ No newline at end of file