diff --git a/.github/README.md b/.github/README.md index 5d6195f..610452c 100644 --- a/.github/README.md +++ b/.github/README.md @@ -3,7 +3,7 @@

📖 osu! Songs Mashup

-**"osu! Songs Mashup"** is a CLI tool that combines two beatmaps from the popular game osu! into a single harmonious experience, offering both offline and online compatibility, with such as Chimu.moe. +**"osu! Songs Mashup"** is a CLI tool that combines two beatmaps from the popular game osu! into a single harmonious experience using your songs library. With its user-friendly filter functionality, you can create your mashups to match your skill level and musical tastes. diff --git a/localization/en.json b/localization/en.json index eff3dd5..e428817 100644 --- a/localization/en.json +++ b/localization/en.json @@ -41,7 +41,8 @@ "correctPath": "Path changed successfully!", "filters": "Filters", "noFilters": "Filters are not set.", - "osuPath": "Path to osu! songs" + "osuPath": "Path to osu! songs", + "unsupported": "Currently in development." }, "setSettings": { "setOsuPath": "Set your osu! Songs path. Example: C:\\Users\\User\\AppData\\Local\\osu!\\Songs\\", diff --git a/localization/ru.json b/localization/ru.json index 41bf71c..d98dc27 100644 --- a/localization/ru.json +++ b/localization/ru.json @@ -41,7 +41,8 @@ "correctPath": "Путь успешно установлен!", "filters": "Фильтры", "noFilters": "Фильтры не настроены.", - "osuPath": "Путь к osu! песням" + "osuPath": "Путь к osu! песням", + "unsupported": "В разработке..." }, "setSettings": { "setOsuPath": "Введите ваш путь к osu! Songs директории. Пример: C:\\Users\\User\\AppData\\Local\\osu!\\Songs\\", diff --git a/src/chimu!api/main.ts b/src/chimu!api/main.ts index 1668c3c..f47f8b4 100644 --- a/src/chimu!api/main.ts +++ b/src/chimu!api/main.ts @@ -1,5 +1,28 @@ import Jsoning from "jsoning"; +import getLocalizationJson from "../lib/localization/main"; +import inquirer from "inquirer"; +import { showMainMenu } from "../menu/main"; export default async function main(config: Jsoning) { - console.log(" ⚠️ UNSUPPORTED "); + const localization = await getLocalizationJson(config); + const localizationSettings = await localization.get("settings"); + const localizationMenu = await localization.get("menuOptions"); + + console.log(localizationSettings.unsupported); + + return inquirer + .prompt([ + { + name: "backToMenu", + type: "confirm", + message: localizationMenu.backToMenu + "?", + }, + ]) + .then((options) => { + if (options.backToMenu) { + return showMainMenu(config); + } else { + process.exit(0); + } + }); } diff --git a/src/lib/msToMin&Sec.ts b/src/lib/msToMin&Sec.ts index 3eae9da..09fc5f5 100644 --- a/src/lib/msToMin&Sec.ts +++ b/src/lib/msToMin&Sec.ts @@ -3,3 +3,7 @@ export default function msToMinAndSec(ms: number) { var seconds = Math.floor((ms % 60000) / 1000); return minutes + ":" + (seconds < 10 ? "0" : "") + seconds; } + +export function toTimeIfNumber(value: number) { + return isNaN(value) ? undefined : msToMinAndSec(value * 1000); +} diff --git a/src/menu/main.ts b/src/menu/main.ts index e9ecaa7..fdfff29 100644 --- a/src/menu/main.ts +++ b/src/menu/main.ts @@ -50,9 +50,7 @@ export async function showMainMenu(config: Jsoning) { showLocallyExplanation(config); break; case localizationMenu.mashupWithChimuMoe: - /* TODO: Add Chimu.moe support */ - console.log(" Currently unsupported "); - //require("../chimu.moe/main").default(config); + require("../chimu!api/main").default(config); break; case localizationMenu.changeSettings: require("./settings").default(config); diff --git a/src/menu/setFilters.ts b/src/menu/setFilters.ts index a1745e9..0e96bf6 100644 --- a/src/menu/setFilters.ts +++ b/src/menu/setFilters.ts @@ -2,7 +2,7 @@ import Jsoning from "jsoning"; import getLocalizationJson from "../lib/localization/main"; import printWatermarkAndClear from "../lib/watermark"; import inquirer from "inquirer"; -import msToMinAndSec from "../lib/msToMin&Sec"; +import msToMinAndSec, { toTimeIfNumber } from "../lib/msToMin&Sec"; export async function setFilters(config: Jsoning, name: "local" | "chimu") { const localization = await getLocalizationJson(config); @@ -50,10 +50,6 @@ export async function setFilters(config: Jsoning, name: "local" | "chimu") { require("./settings").default(config); } -function toTimeIfNumber(value: number) { - return isNaN(value) ? undefined : msToMinAndSec(value * 1000); -} - async function changeSettingInput( config: Jsoning, name: "local" | "chimu", diff --git a/src/menu/settings.ts b/src/menu/settings.ts index 5a37c74..b110012 100644 --- a/src/menu/settings.ts +++ b/src/menu/settings.ts @@ -4,7 +4,7 @@ import inquirer from "inquirer"; import { showMainMenu } from "./main"; import printWatermarkAndClear from "../lib/watermark"; import { setSettings } from "./setSettings"; -import msToMinAndSec from "../lib/msToMin&Sec"; +import msToMinAndSec, { toTimeIfNumber } from "../lib/msToMin&Sec"; export default async function toSettings(config: Jsoning) { const localization = await getLocalizationJson(config); @@ -53,10 +53,6 @@ export default async function toSettings(config: Jsoning) { }); } -function toTimeIfNumber(value: number) { - return isNaN(value) ? undefined : msToMinAndSec(value * 1000); -} - async function showCurrentSettings(config: Jsoning) { const localization = await getLocalizationJson(config); const localizationSettings = await localization.get("settings");