carnet route
This commit is contained in:
parent
605a2863f2
commit
670fe46a1e
@ -236,6 +236,8 @@ async function getWebDAVCredentials(nextcloudUrl: string, username: string, admi
|
||||
async function getFolderStructure(nextcloudUrl: string, username: string, password: string): Promise<string[]> {
|
||||
try {
|
||||
const webdavUrl = `${nextcloudUrl}/remote.php/dav/files/${encodeURIComponent(username)}/Private/`;
|
||||
console.log('Fetching folders from:', webdavUrl);
|
||||
|
||||
const foldersResponse = await fetch(webdavUrl, {
|
||||
method: 'PROPFIND',
|
||||
headers: {
|
||||
@ -246,18 +248,28 @@ async function getFolderStructure(nextcloudUrl: string, username: string, passwo
|
||||
body: '<?xml version="1.0" encoding="UTF-8"?><d:propfind xmlns:d="DAV:"><d:prop><d:resourcetype/><d:displayname/></d:prop></d:propfind>',
|
||||
});
|
||||
|
||||
console.log('Folders response status:', foldersResponse.status);
|
||||
|
||||
if (foldersResponse.status === 429) {
|
||||
// Rate limited, wait and retry
|
||||
const retryAfter = foldersResponse.headers.get('Retry-After');
|
||||
console.log('Rate limited, retrying after:', retryAfter);
|
||||
await sleep((retryAfter ? parseInt(retryAfter) : 5) * 1000);
|
||||
return getFolderStructure(nextcloudUrl, username, password);
|
||||
}
|
||||
|
||||
if (!foldersResponse.ok) {
|
||||
console.error('Failed to fetch folders:', {
|
||||
status: foldersResponse.status,
|
||||
statusText: foldersResponse.statusText,
|
||||
url: webdavUrl
|
||||
});
|
||||
throw new Error(`Failed to fetch folders: ${foldersResponse.status} ${foldersResponse.statusText}`);
|
||||
}
|
||||
|
||||
const folderData = await foldersResponse.text();
|
||||
console.log('Received folder data:', folderData);
|
||||
|
||||
const parser = new DOMParser();
|
||||
const xmlDoc = parser.parseFromString(folderData, 'text/xml');
|
||||
const responses = Array.from(xmlDoc.getElementsByTagName('d:response'));
|
||||
@ -278,6 +290,7 @@ async function getFolderStructure(nextcloudUrl: string, username: string, passwo
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Extracted folders:', folders);
|
||||
return folders;
|
||||
} catch (error) {
|
||||
console.error('Error getting folder structure:', error);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user