Skip to content

Commit

Permalink
Merge branch 'release/1.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
lukeleppan committed Nov 7, 2020
2 parents 5a32b7c + 6dd8c32 commit 4ac299b
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 88 deletions.
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"id": "obsidian-discordrpc",
"name": "Discord Rich Presence",
"version": "1.0.2",
"version": "1.1.0",
"description": "Update your Discord Status to show your friends what you are working on in Obsidian. With Discord Rich Presence.",
"author": "Luke Leppan",
"authorUrl": "https://lukeleppan.com",
Expand Down
92 changes: 5 additions & 87 deletions src/main.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
import { Client } from "discord-rpc";
import { Plugin, PluginSettingTab, Setting, TFile } from "obsidian";

enum PluginState {
connected,
connecting,
disconnected,
}
import { Plugin, TFile } from "obsidian";
import { DiscordRPCSettings, PluginState } from "./settings/settings";
import { DiscordRPCSettingsTab } from "./settings/settings-tab";
import { StatusBar } from "./status-bar";

export default class ObsidianDiscordRPC extends Plugin {
public state: PluginState;
Expand All @@ -31,12 +28,6 @@ export default class ObsidianDiscordRPC extends Plugin {
this.app.workspace.on("file-open", this.onFileOpen, this)
);

this.registerInterval(
window.setInterval(async () => {
await this.connectDiscord();
}, 60 * 1000)
);

this.registerDomEvent(statusBarEl, "click", async () => {
if (this.getState() == PluginState.disconnected) {
await this.connectDiscord();
Expand Down Expand Up @@ -84,7 +75,7 @@ export default class ObsidianDiscordRPC extends Plugin {
}
}

public async setActivity(vaultName: string, fileName: string): Promise<void> {
async setActivity(vaultName: string, fileName: string): Promise<void> {
if (this.settings.showVaultName && this.settings.showCurrentFileName) {
await this.rpc.setActivity({
details: `Editing ${fileName}`,
Expand Down Expand Up @@ -116,76 +107,3 @@ export default class ObsidianDiscordRPC extends Plugin {
}
}
}

class DiscordRPCSettings {
showVaultName: boolean = true;
showCurrentFileName: boolean = true;
}

class DiscordRPCSettingsTab extends PluginSettingTab {
display(): void {
let { containerEl } = this;
const plugin: ObsidianDiscordRPC = (this as any).plugin;

containerEl.empty();
containerEl.createEl("h2", { text: "Discord Rich Presence Settings" });

new Setting(containerEl)
.setName("Show Vault Name")
.setDesc(
"Enable this to show the name of the vault you are working with."
)
.addToggle((boolean) =>
boolean.setValue(plugin.settings.showVaultName).onChange((value) => {
plugin.settings.showVaultName = value;
plugin.saveData(plugin.settings);
plugin.setActivity(this.app.vault.getName(), "...");
})
);

new Setting(containerEl)
.setName("Show Current File Name")
.setDesc("Enable this to show the name of the file you are working on.")
.addToggle((boolean) =>
boolean
.setValue(plugin.settings.showCurrentFileName)
.onChange((value) => {
plugin.settings.showCurrentFileName = value;
plugin.saveData(plugin.settings);
plugin.setActivity(this.app.vault.getName(), "...");
})
);
}
}

class StatusBar {
private statusBarEl: HTMLElement;

constructor(statusBarEl: HTMLElement) {
this.statusBarEl = statusBarEl;
}

displayState(state: PluginState) {
switch (state) {
case PluginState.connected:
this.displayConnected(2000);
break;
case PluginState.connecting:
this.statusBarEl.setText(`Connecting to Discord...`);
break;
case PluginState.disconnected:
this.statusBarEl.setText(`\u{1F5D8} Reconnect to Discord`);
break;
}
}

displayConnected(timeout: number) {
this.statusBarEl.setText(`\u{1F30D} Connected to Discord`);

if (timeout && timeout > 0) {
window.setTimeout(() => {
this.statusBarEl.setText(`\u{1F30D}`);
}, timeout);
}
}
}
38 changes: 38 additions & 0 deletions src/settings/settings-tab.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { PluginSettingTab, Setting } from "obsidian";
import ObsidianDiscordRPC from "src/main";

export class DiscordRPCSettingsTab extends PluginSettingTab {
display(): void {
let { containerEl } = this;
const plugin: ObsidianDiscordRPC = (this as any).plugin;

containerEl.empty();
containerEl.createEl("h2", { text: "Discord Rich Presence Settings" });

new Setting(containerEl)
.setName("Show Vault Name")
.setDesc(
"Enable this to show the name of the vault you are working with."
)
.addToggle((boolean) =>
boolean.setValue(plugin.settings.showVaultName).onChange((value) => {
plugin.settings.showVaultName = value;
plugin.saveData(plugin.settings);
plugin.setActivity(this.app.vault.getName(), "...");
})
);

new Setting(containerEl)
.setName("Show Current File Name")
.setDesc("Enable this to show the name of the file you are working on.")
.addToggle((boolean) =>
boolean
.setValue(plugin.settings.showCurrentFileName)
.onChange((value) => {
plugin.settings.showCurrentFileName = value;
plugin.saveData(plugin.settings);
plugin.setActivity(this.app.vault.getName(), "...");
})
);
}
}
10 changes: 10 additions & 0 deletions src/settings/settings.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
export class DiscordRPCSettings {
showVaultName: boolean = true;
showCurrentFileName: boolean = true;
}

export enum PluginState {
connected,
connecting,
disconnected,
}
33 changes: 33 additions & 0 deletions src/status-bar.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { PluginState } from "./settings/settings";

export class StatusBar {
private statusBarEl: HTMLElement;

constructor(statusBarEl: HTMLElement) {
this.statusBarEl = statusBarEl;
}

displayState(state: PluginState) {
switch (state) {
case PluginState.connected:
this.displayConnected(2000);
break;
case PluginState.connecting:
this.statusBarEl.setText(`Connecting to Discord...`);
break;
case PluginState.disconnected:
this.statusBarEl.setText(`\u{1F5D8} Reconnect to Discord`);
break;
}
}

displayConnected(timeout: number) {
this.statusBarEl.setText(`\u{1F30D} Connected to Discord`);

if (timeout && timeout > 0) {
window.setTimeout(() => {
this.statusBarEl.setText(`\u{1F30D}`);
}, timeout);
}
}
}

0 comments on commit 4ac299b

Please # to comment.