diff --git a/src/constants.ts b/src/constants.ts index edfd577..c58546a 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,3 +1,4 @@ // Documented here: https://culturedcode.com/things/support/articles/2982272/ -export const THINGS_DB_PATH = - "~/Library/Group Containers/JLMPQHK86H.com.culturedcode.ThingsMac/Things Database.thingsdatabase/main.sqlite"; +export const THINGS_DB_PATH_START = + "~/Library/Group Containers/JLMPQHK86H.com.culturedcode.ThingsMac/"; +export const THINGS_DB_PATH_END = "Things Database.thingsdatabase/main.sqlite"; \ No newline at end of file diff --git a/src/things.ts b/src/things.ts index 718a5cd..3ed583a 100644 --- a/src/things.ts +++ b/src/things.ts @@ -1,6 +1,8 @@ import * as os from "os"; +import * as fs from "fs"; +import * as path from "path"; -import { THINGS_DB_PATH } from "./constants"; +import { THINGS_DB_PATH_START, THINGS_DB_PATH_END } from "./constants"; import { querySqliteDB } from "./sqlite"; export const TASK_FETCH_LIMIT = 1000; @@ -41,7 +43,9 @@ export interface IChecklistItemRecord { stopDate: number; } -const thingsSqlitePath = THINGS_DB_PATH.replace("~", os.homedir()); +const baseDir = THINGS_DB_PATH_START.replace("~", os.homedir()); +const dataPath = fs.readdirSync(baseDir).filter((file) => file.startsWith("ThingsData"))[0]; +const thingsSqlitePath = path.join(baseDir, dataPath, THINGS_DB_PATH_END); export class ThingsSQLiteSyncError extends Error {}