From f77466b8a207fd4c63112f0e345e5c25697bbf34 Mon Sep 17 00:00:00 2001 From: ransurf Date: Tue, 12 Oct 2021 19:48:33 -0700 Subject: [PATCH] cleaned more date code, setup testing for stats, renamed plugin and info cleaned more date code, setup testing for stats, renamed plugin and info --- main.ts | 4 +--- manifest.json | 8 ++++---- package.json | 4 ++-- view/App.tsx | 25 ++++++++++++++++++++++--- view/habiticaAPI.ts | 16 ++++++++++++++++ 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/main.ts b/main.ts index 16aa5b7..9d871c8 100644 --- a/main.ts +++ b/main.ts @@ -3,12 +3,10 @@ import { ExampleSettingsTab } from "./settings"; import { ExampleView, VIEW_TYPE_EXAMPLE} from "./view" interface ExamplePluginSettings { - dateFormat: string userID: string apiToken: string } const DEFAULT_SETTINGS: Partial = { - dateFormat: "YYYY-MM-DD", userID: "", apiToken: "" } @@ -23,7 +21,7 @@ export default class ExamplePlugin extends Plugin { VIEW_TYPE_EXAMPLE, (leaf) => (this.view = new ExampleView(leaf, this)) ); - this.addRibbonIcon("dice", "Activate view", () => { //activate view + this.addRibbonIcon("dice", "Open Habitica Pane", () => { //activate view this.activateView(); }); } diff --git a/manifest.json b/manifest.json index 4915397..c29e0fa 100644 --- a/manifest.json +++ b/manifest.json @@ -1,10 +1,10 @@ { - "id": "test-plugin", - "name": "Test Plugin", + "id": "obsidian-habitica-integration", + "name": "AAA Obsidian Habitica Integration", "version": "0.0.1", "minAppVersion": "0.9.12", - "description": "This is a sample plugin for Obsidian. This plugin demonstrates some of the capabilities of the Obsidian API.", - "author": "Leoh", + "description": "This plugin helps integrate Habitica user tasks and stats into Obsidian", + "author": "Leoh and Ran", "authorUrl": "", "isDesktopOnly": false } diff --git a/package.json b/package.json index 27eb3d7..8c9260e 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "test-plugin", + "name": "obsidian-habitica-integration", "version": "0.12.0", - "description": "This is a sample plugin for Obsidian (https://obsidian.md)", + "description": "This plugin allows for Habitica integration into Obsidian", "main": "main.js", "scripts": { "dev": "rollup --config rollup.config.js -w", diff --git a/view/App.tsx b/view/App.tsx index 9bf1f4d..2cb1878 100644 --- a/view/App.tsx +++ b/view/App.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import { getTasks } from "./habiticaAPI" +import { getTasks, getStats } from "./habiticaAPI" import TodoItem from "./TodoItem" let username = "" @@ -32,18 +32,37 @@ class App extends React.Component { }) } ) + + getStats(username, credentials) + .then(res => res.json()) + .then( + result => { + this.setState({ + isLoaded: true, + stats: result.data + }) + }, + (error) => { + this.setState({ + isLoaded: true, + error + }) + } + ) } render(){ - const { error, isLoaded, tasks } = this.state; + const { error, isLoaded, tasks, stats } = this.state; if (error) { return
Error: {error.message}
; } else if (!isLoaded) { return
Loading...
; } else { const listItems = tasks.map((tasks: any) => +
- +

{stats}

+
); return (
    {listItems}
diff --git a/view/habiticaAPI.ts b/view/habiticaAPI.ts index 39b9eaf..1e80149 100644 --- a/view/habiticaAPI.ts +++ b/view/habiticaAPI.ts @@ -14,3 +14,19 @@ export async function getTasks(username: string, credentials: string){ }) return (response) } + +export async function getStats(username: string, credentials: string){ + const url = "https://habitica.com/export/userdata.json" + const response = fetch(url, { + method: 'GET', + headers: { + "Content-Type": "application/json", + "x-client": username.concat("-testAPI"), + "x-api-user": username, + "x-api-key": credentials, + }, + }) + console.log(response) + console.log("stats above") + return (response) +} \ No newline at end of file