mirror of
https://github.com/jxpeng98/obsidian-to-NotionNext
synced 2026-07-29 08:08:34 +08:00
132 lines
3.6 KiB
TypeScript
132 lines
3.6 KiB
TypeScript
import { i18nConfig } from "../lang/I18n";
|
|
import { App, Notice } from "obsidian";
|
|
import { Upload2NotionNext } from "./upload_next/Upload2NotionNext";
|
|
import { Upload2NotionGeneral } from "./upload_general/Upload2NotionGeneral";
|
|
import { Upload2NotionCustom } from "./upoload_custom/Upload2NotionCustom";
|
|
import { DatabaseDetails, PluginSettings } from "../ui/settingTabs";
|
|
import ObsidianSyncNotionPlugin from "../main";
|
|
import { getNowFileMarkdownContentNext } from "./upload_next/getMarkdownNext";
|
|
import { getNowFileMarkdownContentGeneral } from "./upload_general/getMarkdownGeneral";
|
|
import { getNowFileMarkdownContentCustom } from "./upoload_custom/getMarkdownCustom";
|
|
|
|
export async function uploadCommandNext(
|
|
plugin: ObsidianSyncNotionPlugin,
|
|
settings: PluginSettings,
|
|
dbDetails: DatabaseDetails,
|
|
app: App,
|
|
) {
|
|
|
|
const { notionAPI, databaseID } = dbDetails;
|
|
|
|
// Check if NNon exists
|
|
// if (NNon === undefined) {
|
|
// const NNonmessage = i18nConfig.NNonMissing;
|
|
// new Notice(NNonmessage);
|
|
// return;
|
|
// }
|
|
|
|
// Check if the user has set up the Notion API and database ID
|
|
if (notionAPI === "" || databaseID === "") {
|
|
const setAPIMessage = i18nConfig["set-api-id"];
|
|
new Notice(setAPIMessage);
|
|
return;
|
|
}
|
|
|
|
const {
|
|
markDownData,
|
|
nowFile,
|
|
emoji,
|
|
cover,
|
|
tags,
|
|
type,
|
|
slug,
|
|
stats,
|
|
category,
|
|
summary,
|
|
paword,
|
|
favicon,
|
|
datetime
|
|
} = await getNowFileMarkdownContentNext(app, settings)
|
|
|
|
if (markDownData) {
|
|
const { basename } = nowFile;
|
|
const upload = new Upload2NotionNext(plugin, dbDetails);
|
|
const res = await upload.syncMarkdownToNotionNext(basename, emoji, cover, tags, type, slug, stats, category, summary, paword, favicon, datetime, markDownData, nowFile, this.app);
|
|
|
|
if (res.status === 200) {
|
|
new Notice(`${i18nConfig["sync-success"]}${basename}`);
|
|
} else {
|
|
new Notice(`${i18nConfig["sync-fail"]}${basename}`, 5000);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
export async function uploadCommandGeneral(
|
|
plugin: ObsidianSyncNotionPlugin,
|
|
settings: PluginSettings,
|
|
dbDetails: DatabaseDetails,
|
|
app: App,
|
|
) {
|
|
|
|
const { notionAPI, databaseID } = dbDetails;
|
|
|
|
// Check if the user has set up the Notion API and database ID
|
|
if (notionAPI === "" || databaseID === "") {
|
|
const setAPIMessage = i18nConfig["set-api-id"];
|
|
new Notice(setAPIMessage);
|
|
return;
|
|
}
|
|
|
|
const { markDownData, nowFile, cover, tags } = await getNowFileMarkdownContentGeneral(app, settings)
|
|
|
|
if (markDownData) {
|
|
const { basename } = nowFile;
|
|
|
|
const upload = new Upload2NotionGeneral(plugin, dbDetails);
|
|
const res = await upload.syncMarkdownToNotionGeneral(basename, cover, tags, markDownData, nowFile, this.app);
|
|
|
|
if (res.status === 200) {
|
|
new Notice(`${i18nConfig["sync-success"]}${basename}`);
|
|
} else {
|
|
new Notice(`${i18nConfig["sync-fail"]}${basename}`, 5000);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
export async function uploadCommandCustom(
|
|
plugin: ObsidianSyncNotionPlugin,
|
|
settings: PluginSettings,
|
|
dbDetails: DatabaseDetails,
|
|
app: App,
|
|
) {
|
|
|
|
const { notionAPI, databaseID } = settings;
|
|
|
|
// Check if the user has set up the Notion API and database ID
|
|
if (notionAPI === "" || databaseID === "") {
|
|
const setAPIMessage = i18nConfig["set-api-id"];
|
|
new Notice(setAPIMessage);
|
|
return;
|
|
}
|
|
|
|
const { markDownData, nowFile, cover, customValues } = await getNowFileMarkdownContentCustom(app, dbDetails)
|
|
|
|
if (markDownData) {
|
|
const { basename } = nowFile;
|
|
|
|
const upload = new Upload2NotionCustom(plugin, dbDetails);
|
|
const res = await upload.syncMarkdownToNotionCustom(cover, customValues, markDownData, nowFile, this.app);
|
|
|
|
if (res.status === 200) {
|
|
new Notice(`${i18nConfig["sync-success"]}${basename}`);
|
|
} else {
|
|
new Notice(`${i18nConfig["sync-fail"]}${basename}`, 5000);
|
|
}
|
|
|
|
}
|
|
}
|