diff --git a/client/src/app/pages/dashboard/import/ImportPage.tsx b/client/src/app/pages/dashboard/import/ImportPage.tsx index 26b18a690..fb37fda23 100644 --- a/client/src/app/pages/dashboard/import/ImportPage.tsx +++ b/client/src/app/pages/dashboard/import/ImportPage.tsx @@ -148,11 +148,11 @@ function ImportInfoDisplayer({ game }: { game: Game }) { } else if (game === "sdvx") { Content.unshift( , , + + High quality data in real-time.
+ Note: Only for versions up to 2022081600. + + } + key="Barbatos" + />, +

What Is Mikado?

+
+ Mikado is a .dll file that hooks into SDVX and automatically sends + the scores to a server. {TachiConfig.name} is compatible with what Mikado sends, + so you can use it to submit scores! +
+ +

Setup Instructions

+
    +
  1. + Download the latest version of mikado.dll from{" "} + + here + + . +
  2. +
  3. + Download your mikado.toml config file{" "} + here + .
    + + This file contains an API Key, which is meant to be kept secret! + +
  4. +
  5. + Drop both files inside your SDVX folder, next to your .bat file. +
  6. +
      +
    • + BemaniTools: Add -K mikado.dll to your .bat{" "} + file. +
    • +
    • + SpiceTools: Add -k mikado.dll to your .bat file. +
    • +
    +
  7. Your scores and dans now automatically upload to {TachiConfig.name}!
  8. +
+ + ); +} diff --git a/client/src/app/pages/dashboard/misc/CreditsPage.tsx b/client/src/app/pages/dashboard/misc/CreditsPage.tsx index 1a9e7ff4a..fbb40d9ca 100644 --- a/client/src/app/pages/dashboard/misc/CreditsPage.tsx +++ b/client/src/app/pages/dashboard/misc/CreditsPage.tsx @@ -161,6 +161,9 @@ export default function CreditsPage() {
  • {a("Chunitachi", "CHUNITHM Black Magic")}: tomatosoup
  • +
  • + {a("Mikado", "SDVX Pocky")}: adamaq01 +
  • {a("Server", "Ethereum Mining Solutions")}: viddy
    diff --git a/client/src/app/routes/ImportRoutes.tsx b/client/src/app/routes/ImportRoutes.tsx index 19bd9a988..4be04b57d 100644 --- a/client/src/app/routes/ImportRoutes.tsx +++ b/client/src/app/routes/ImportRoutes.tsx @@ -1,4 +1,5 @@ import BarbatosPage from "app/pages/dashboard/import/BarbatosPage"; +import MikadoPage from "app/pages/dashboard/import/MikadoPage"; import BatchManualPage from "app/pages/dashboard/import/BatchManualPage"; import LR2orajaDBPage from "app/pages/dashboard/import/LR2orajaDBPage"; import BeatorajaIRPage from "app/pages/dashboard/import/BeatorajaIRPage"; @@ -118,6 +119,9 @@ 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 e40df3caa..cdcbfb74e 100644 --- a/server/src/lib/builtin-clients/builtin-clients.ts +++ b/server/src/lib/builtin-clients/builtin-clients.ts @@ -124,6 +124,43 @@ apikey = %%TACHI_KEY%%`, requestedPermissions: ["submit_score"], webhookUri: null, }, + { + name: "Mikado", + webhookUri: null, + redirectUri: null, + requestedPermissions: ["submit_score"], + clientID: "CXMikado", + apiKeyFilename: "mikado.toml", + apiKeyTemplate: `[general] +# Set to 'false' to disable the hook +enable = true +# Whether the hook should export your class (skill level) or not +export_class = true +# Whether the hook should should inject your Tachi PBs in place of Cloud PBs +inject_cloud_pbs = true +# Timeout for web requests, in milliseconds +timeout = 3000 + +[cards] +# Card numbers that should be whitelisted +# If this is empty, all cards will be whitelisted +# E000 format, should be in single quotes and separated by commas +# Example: whitelist = ['E000000000', 'E000000001'] +whitelist = [] + +[tachi] +# Tachi instance base URL +base_url = '${ServerConfig.OUR_URL}' +# Tachi status endpoint +status = '/api/v1/status' +# Tachi score import endpoint +import = '/ir/direct-manual/import' +# Tachi pbs endpoint +pbs = '/api/v1/users/{}/games/sdvx/Single/pbs/all' +# Your Tachi API key +api_key = '%%TACHI_KEY%%' +`, + }, ]; const BtchiDefaultClients: DefaultClients = [