diff --git a/chatgpt-suno-tampermonkey.user.js b/chatgpt-suno-tampermonkey.user.js
index 21c0a15..74c93e6 100644
--- a/chatgpt-suno-tampermonkey.user.js
+++ b/chatgpt-suno-tampermonkey.user.js
@@ -1,7 +1,7 @@
// ==UserScript==
// @name ChatGPT to Suno Prompt Copier
// @namespace local.suno-helper
-// @version 0.8.3
+// @version 0.8.4
// @description Copy structured ChatGPT song prompt versions into Suno fields.
// @author local
// @match https://chatgpt.com/*
@@ -28,7 +28,7 @@
(function () {
"use strict";
- const SCRIPT_VERSION = "0.8.3";
+ const SCRIPT_VERSION = "0.8.4";
const STORAGE_KEY = "chatgptSunoPromptSlots";
const SLOT_COUNT = 2;
const isChatGPT = location.hostname.includes("chatgpt.com") || location.hostname.includes("chat.openai.com");
@@ -1470,7 +1470,8 @@
-
+
+
@@ -1479,7 +1480,10 @@
-
+
+
+
+
`;
@@ -1548,7 +1552,7 @@
setStatus(body, `${networkHint} 목록 새로고침이나 스크롤 후 다시 눌러봐. 화면 텍스트: ${visibleHints.join(", ")}`);
});
- body.querySelector("[data-cgs-process-one]").addEventListener("click", async () => {
+ const processSelectedTrack = async (format) => {
if (!libraryTracks.length) {
libraryTracks = scanSunoLibraryTracks();
renderLibraryTrackSelect();
@@ -1561,24 +1565,40 @@
return;
}
try {
- const data = await uploadTrackToCompanion(track, body, "mp3");
- setStatus(body, `선택 1곡 업로드 완료: ${track.title || track.id} / 대기 ${data.queued ?? "?"}개 / 처리 ${data.active || "대기"}`);
+ const data = await uploadTrackToCompanion(track, body, format);
+ setStatus(body, `선택 1곡 ${format.toUpperCase()} 업로드 완료: ${track.title || track.id} / 대기 ${data.queued ?? "?"}개 / 처리 ${data.active || "대기"}`);
} catch (error) {
- setStatus(body, `선택 1곡 처리 실패: ${error.message || error}`);
+ setStatus(body, `선택 1곡 ${format.toUpperCase()} 처리 실패: ${error.message || error}`);
}
+ };
+
+ body.querySelector("[data-cgs-process-one-mp3]").addEventListener("click", async () => {
+ await processSelectedTrack("mp3");
});
- body.querySelector("[data-cgs-process-library]").addEventListener("click", async () => {
+ body.querySelector("[data-cgs-process-one-wav]").addEventListener("click", async () => {
+ await processSelectedTrack("wav");
+ });
+
+ const processLibraryTracks = async (format) => {
if (!libraryTracks.length) {
libraryTracks = scanSunoLibraryTracks();
renderLibraryTrackSelect();
}
updateSummary();
try {
- await uploadTracksToCompanion(libraryTracks, body, "mp3");
+ await uploadTracksToCompanion(libraryTracks, body, format);
} catch (error) {
- setStatus(body, `MP3 일괄 처리 실패: ${error.message || error}`);
+ setStatus(body, `${format.toUpperCase()} 일괄 처리 실패: ${error.message || error}`);
}
+ };
+
+ body.querySelector("[data-cgs-process-library-mp3]").addEventListener("click", async () => {
+ await processLibraryTracks("mp3");
+ });
+
+ body.querySelector("[data-cgs-process-library-wav]").addEventListener("click", async () => {
+ await processLibraryTracks("wav");
});
body.querySelector("[data-cgs-test-companion]").addEventListener("click", async () => {