refactor: update to support new API design.

Cette révision appartient à :
arabcoders
2026-01-25 19:53:01 +03:00
Parent 6b819ccea7
révision 537cca695c
6 fichiers modifiés avec 38 ajouts et 60 suppressions
+5
Voir le fichier
@@ -1,5 +1,10 @@
# CHANGELOG
## 1.1.0 - 2026-01-25
- **Added**: Support for YTPTube API changes where presets are returned in an "items" array.
- **Removed**: Output template and folder setting. You can set them via preset server-side.
## 1.0.4 - 2025-11-01
- **Fixed**: Issue with saving options for firefox.
+3 -16
Voir le fichier
@@ -1,6 +1,4 @@
// noinspection JSUnresolvedReference
const str_keys = ["instance_url", "preset", "template", "folder", "username", "password"]
const str_keys = ["instance_url", "preset", "username", "password"]
const bool_keys = ["showContextMenu"]
if (typeof chrome === 'undefined') {
@@ -90,21 +88,10 @@ const sendUrl = async (user_url, preset = null) => {
requestData.preset = preset;
}
// Add template and folder if configured
const template = await getOption("template");
if (template) {
requestData.template = template;
}
const folder = await getOption("folder");
if (folder) {
requestData.folder = folder;
}
console.debug('Sending request data:', requestData);
const data = await sendRequest('/api/history', requestData);
if (200 === data.status) {
if ([200, 201, 202].includes(data.status)) {
notify('Request sent successfully.');
return { success: true, message: 'Request sent successfully.' };
}
@@ -156,7 +143,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
}
})();
return true; // Keep the messaging channel open for async response
return true;
});
+1 -1
Voir le fichier
@@ -7,7 +7,7 @@
]
},
"name": "YTPTube Extension",
"version": "1.0.4",
"version": "1.1.0",
"description": "Add URLs to YTPTube instance",
"permissions": [
"activeTab",
-18
Voir le fichier
@@ -27,24 +27,6 @@
<span class="help">Preset to use for the URL</span>
</div>
<div class="field">
<label class="label" for="template">Output Template</label>
<div class="control">
<input type="text" class="input" id="template"
placeholder="Leave empty to use default output template.">
</div>
<span class="help">Filename template to use for the output file.</span>
</div>
<div class="field">
<label class="label" for="folder">Download Folder</label>
<div class="control">
<input type="text" class="input" id="folder"
placeholder="Leave empty to use default download path.">
</div>
<span class="help">Where to save downloaded files.</span>
</div>
<div class="field">
<label class="label" for="username">Auth Username</label>
<div class="control">
+1 -2
Voir le fichier
@@ -1,6 +1,6 @@
// noinspection JSUnresolvedReference
const str_keys = ["instance_url", "preset", "template", "folder", "username", "password"]
const str_keys = ["instance_url", "preset", "username", "password"]
let storedOriginPattern = null;
if (typeof chrome === 'undefined') {
@@ -55,7 +55,6 @@ const removeOriginPermission = async (originPattern) => {
};
const testConfig = async () => {
document.querySelector('#error_msg').innerText = "";
let instance_url = document.querySelector("#instance_url").value.trim();
+6 -1
Voir le fichier
@@ -149,7 +149,12 @@ const getPresets = async () => {
return presets
}
(await req.json()).forEach(preset => presets.push(preset.name))
const data = await req.json()
if (data.items && Array.isArray(data.items)) {
data.items.forEach(preset => presets.push(preset.name))
} else {
data.forEach(preset => presets.push(preset.name))
}
return presets
};