+ What is Inohara?
+
+ Inohara automatically sends O.N.G.E.K.I. scores to a server. {TachiConfig.NAME} is
+ compatible with what Inohara sends, so you can use her to submit scores!
+
+
+ Setup Instructions
+
+ -
+ Download the latest version of
inohara.zip{" "}
+
+ here
+
+ .
+
+ -
+ Download your
inohara.cfg config file{" "}
+ here
+ .
+
+ This file contains an API Key, which is meant to be kept secret!
+
+
+ -
+ Follow the installation instructions on{" "}
+
+ Tendokyu
+
+ .
+
+ - Your scores are now automatically uploaded to {TachiConfig.NAME}!
+
+
+ );
+}
diff --git a/client/src/app/routes/ImportRoutes.tsx b/client/src/app/routes/ImportRoutes.tsx
index f6f4725f5..4def42477 100644
--- a/client/src/app/routes/ImportRoutes.tsx
+++ b/client/src/app/routes/ImportRoutes.tsx
@@ -29,8 +29,9 @@ import ChunithmSiteImportPage from "app/pages/dashboard/import/ChunithmSiteImpor
import SaekawaPage from "app/pages/dashboard/import/SaekawaPage";
import AquaArtemisExport from "app/pages/dashboard/import/AquaArtemisExportPage";
import ChunithmMYTExport from "app/pages/dashboard/import/ChunithmMYTExportPage";
-import OngekiArtemisExport from "app/pages/dashboard/import/OngekiArtemisExportPage";
+import OngekiArtemisExportPage from "app/pages/dashboard/import/OngekiArtemisExportPage";
import MytIntegrationPage from "components/imports/MYTIntegrationPage";
+import OngekiInoharaPage from "app/pages/dashboard/import/OngekiInoharaPage";
export default function ImportRoutes() {
const { user } = useContext(UserContext);
@@ -238,7 +239,11 @@ export default function ImportRoutes() {
-
+
+
+
+
+
>
)}
diff --git a/server/src/lib/builtin-clients/builtin-clients.ts b/server/src/lib/builtin-clients/builtin-clients.ts
index 56a5aa40d..ad7d2ba50 100644
--- a/server/src/lib/builtin-clients/builtin-clients.ts
+++ b/server/src/lib/builtin-clients/builtin-clients.ts
@@ -223,6 +223,47 @@ import = '/ir/direct-manual/import'
# Your Tachi API key
api_key = '%%TACHI_KEY%%'`,
},
+ {
+ clientID: "CXInohara",
+ requestedPermissions: ["submit_score"],
+ name: "Inohara",
+ redirectUri: null,
+ webhookUri: null,
+ apiKeyFilename: "inohara.cfg",
+ apiKeyTemplate: `[Options]
+
+# Whether to enable score submissions
+Enable = true
+
+# Timeout for web requests, in seconds
+Timeout = 3
+
+# Tachi instance base URL
+BaseUrl = ${ServerConfig.OUR_URL}
+
+# Tachi status endpoint
+Status = /api/v1/status
+
+# Tachi score import endpoint
+Import = /ir/direct-manual/import
+
+# Whether to display status on-screen (rudimentarily)
+EnableOSD = false
+
+# Whether to export your PBs for batch-manual (saved to batch-manual.json)
+# This is very, very bad and should only be used as last resort
+ExportPBs = false
+
+[Keys]
+
+* = %%TACHI_KEY%%
+
+# If you have a multi-user setup, you can configure
+# keys per-profile:
+# InGameUsername = TachiApiKey
+#
+# An * matches everyone else`,
+ },
];
const BokuDefaultClients: DefaultClients = [