diff --git a/src/Writeas.ts b/src/Writeas.ts index de52d41..f5df357 100644 --- a/src/Writeas.ts +++ b/src/Writeas.ts @@ -7,16 +7,18 @@ export class WriteasClient { user: string; pass: string; + baseUrl: string; token: string; - constructor(user: string, pass: string) { + constructor(user: string, pass: string, baseUrl: string) { this.user = user; this.pass = pass; + this.baseUrl = baseUrl; } login() { return requestUrl({ - url: "https://write.as/api/auth/login", + url: `${this.baseUrl}/api/auth/login`, body: JSON.stringify({ alias: this.user, pass: this.pass }), method: "POST", headers: { @@ -33,7 +35,7 @@ export class WriteasClient { getCollections() { return requestUrl({ - url: "https://write.as/api/me/collections", + url: `${this.baseUrl}/api/me/collections`, method: "GET", headers: { "Content-Type": 'application/json', @@ -50,7 +52,7 @@ export class WriteasClient { getPost(post_id: string) { return requestUrl({ - url: `https://write.as/api/posts/${post_id}`, + url: `${this.baseUrl}/api/posts/${post_id}`, method: "GET", headers: { "Content-Type": 'application/json', @@ -67,7 +69,7 @@ export class WriteasClient { moveToCollection(collection: string, post_id: string) { return requestUrl({ - url: `https://write.as/api/collections/${collection}/collect`, + url: `${this.baseUrl}/api/collections/${collection}/collect`, body: JSON.stringify([{ id: post_id }]), method: "POST", headers: { @@ -85,7 +87,7 @@ export class WriteasClient { publishPost(body: any, collection: string) { return requestUrl({ - url: `https://write.as/api/collections/${collection}/posts`, + url: `${this.baseUrl}/api/collections/${collection}/posts`, body: JSON.stringify(body), method: "POST", headers: { @@ -104,7 +106,7 @@ export class WriteasClient { updatePost(body: any, post_id: string) { return requestUrl({ - url: `https://write.as/api/posts/${post_id}`, + url: `${this.baseUrl}/api/posts/${post_id}`, body: JSON.stringify(body), method: "POST", headers: { diff --git a/src/main.ts b/src/main.ts index 73e6e0f..b95c234 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,11 +4,13 @@ import { WriteasClient } from './Writeas'; interface WriteasPluginSettings { writeasUser: string; writeasPassword: string; + writeasServer: string; } const DEFAULT_SETTINGS: WriteasPluginSettings = { writeasUser: 'default', - writeasPassword: 'default' + writeasPassword: 'default', + writeasServer: 'https://write.as' } const COLL_KEY = 'writeas_collection'; @@ -43,7 +45,7 @@ export default class WriteasPlugin extends Plugin { async handleFile(file: TFile) { - let c = new WriteasClient(this.settings.writeasUser, this.settings.writeasPassword); + let c = new WriteasClient(this.settings.writeasUser, this.settings.writeasPassword, this.settings.writeasServer); this.app.vault.cachedRead(file).then(async lines => { var content = this.app.metadataCache.getFileCache(file); if (content?.frontmatter && content.frontmatter[COLL_KEY]) { @@ -122,6 +124,7 @@ class SettingTab extends PluginSettingTab { this.plugin.settings.writeasUser = value; await this.plugin.saveSettings(); })); + new Setting(containerEl) .setName('Writeas Password') .setDesc('') @@ -132,5 +135,16 @@ class SettingTab extends PluginSettingTab { this.plugin.settings.writeasPassword = value; await this.plugin.saveSettings(); })); + + new Setting(containerEl) + .setName('Writeas Server') + .setDesc('') + .addText(text => text + .setPlaceholder('Enter the URL of your WriteFreely server') + .setValue(this.plugin.settings.writeasServer) + .onChange(async (value) => { + this.plugin.settings.writeasServer = value; + await this.plugin.saveSettings(); + })); } }