chore: removed locks
This commit is contained in:
parent
ec987eff80
commit
64e78bb9b8
@ -35,22 +35,15 @@ Added the following endpoints to `/src/server/api/anime.py`:
|
|||||||
- Calls `SeriesApp.Download()` with folder list
|
- Calls `SeriesApp.Download()` with folder list
|
||||||
- Used when user selects multiple series and clicks download
|
- Used when user selects multiple series and clicks download
|
||||||
|
|
||||||
#### `/api/v1/anime/process/locks` (GET)
|
|
||||||
|
|
||||||
- Returns current lock status for rescan and download processes
|
|
||||||
- Response: `{success: boolean, locks: {rescan: {is_locked: boolean}, download: {is_locked: boolean}}}`
|
|
||||||
- Used to update UI status indicators and disable buttons during operations
|
|
||||||
|
|
||||||
### 2. Updated Frontend API Calls
|
### 2. Updated Frontend API Calls
|
||||||
|
|
||||||
Modified `/src/server/web/static/js/app.js` to use correct endpoint paths:
|
Modified `/src/server/web/static/js/app.js` to use correct endpoint paths:
|
||||||
|
|
||||||
| Old Path | New Path | Purpose |
|
| Old Path | New Path | Purpose |
|
||||||
| --------------------------- | ----------------------------- | ------------------------- |
|
| ----------------- | ------------------------ | ------------------------- |
|
||||||
| `/api/add_series` | `/api/v1/anime/add` | Add new series |
|
| `/api/add_series` | `/api/v1/anime/add` | Add new series |
|
||||||
| `/api/download` | `/api/v1/anime/download` | Download selected folders |
|
| `/api/download` | `/api/v1/anime/download` | Download selected folders |
|
||||||
| `/api/status` | `/api/v1/anime/status` | Get library status |
|
| `/api/status` | `/api/v1/anime/status` | Get library status |
|
||||||
| `/api/process/locks/status` | `/api/v1/anime/process/locks` | Check process locks |
|
|
||||||
|
|
||||||
### 3. Verified Existing Endpoints
|
### 3. Verified Existing Endpoints
|
||||||
|
|
||||||
|
|||||||
@ -26,7 +26,6 @@ class AniWorldApp {
|
|||||||
this.loadSeries();
|
this.loadSeries();
|
||||||
this.initTheme();
|
this.initTheme();
|
||||||
this.updateConnectionStatus();
|
this.updateConnectionStatus();
|
||||||
this.startProcessStatusMonitoring();
|
|
||||||
|
|
||||||
// Initialize Mobile & Accessibility features
|
// Initialize Mobile & Accessibility features
|
||||||
this.initMobileAndAccessibility();
|
this.initMobileAndAccessibility();
|
||||||
@ -196,7 +195,6 @@ class AniWorldApp {
|
|||||||
|
|
||||||
this.showToast(this.localization.getText('connected-server'), 'success');
|
this.showToast(this.localization.getText('connected-server'), 'success');
|
||||||
this.updateConnectionStatus();
|
this.updateConnectionStatus();
|
||||||
this.checkProcessLocks();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
this.socket.on('disconnect', () => {
|
this.socket.on('disconnect', () => {
|
||||||
@ -1172,74 +1170,6 @@ class AniWorldApp {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async checkProcessLocks() {
|
|
||||||
try {
|
|
||||||
const response = await this.makeAuthenticatedRequest('/api/anime/process/locks');
|
|
||||||
if (!response) {
|
|
||||||
// If no response, set status as idle
|
|
||||||
this.updateProcessStatus('rescan', false);
|
|
||||||
this.updateProcessStatus('download', false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check if response is actually JSON and not HTML (login page)
|
|
||||||
const contentType = response.headers.get('content-type');
|
|
||||||
if (!contentType || !contentType.includes('application/json')) {
|
|
||||||
console.warn('Process locks API returned non-JSON response, likely authentication issue');
|
|
||||||
// Set status as idle if we can't get proper response
|
|
||||||
this.updateProcessStatus('rescan', false);
|
|
||||||
this.updateProcessStatus('download', false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
|
|
||||||
if (data.success) {
|
|
||||||
const locks = data.locks;
|
|
||||||
this.updateProcessStatus('rescan', locks.rescan?.is_locked || false);
|
|
||||||
this.updateProcessStatus('download', locks.download?.is_locked || false);
|
|
||||||
|
|
||||||
// Update button states
|
|
||||||
const rescanBtn = document.getElementById('rescan-btn');
|
|
||||||
if (rescanBtn) {
|
|
||||||
if (locks.rescan?.is_locked) {
|
|
||||||
rescanBtn.disabled = true;
|
|
||||||
const span = rescanBtn.querySelector('span');
|
|
||||||
if (span) span.textContent = 'Scanning...';
|
|
||||||
} else {
|
|
||||||
rescanBtn.disabled = false;
|
|
||||||
const span = rescanBtn.querySelector('span');
|
|
||||||
if (span) span.textContent = 'Rescan';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// If API returns error, set status as idle
|
|
||||||
console.warn('Process locks API returned error:', data.error);
|
|
||||||
this.updateProcessStatus('rescan', false);
|
|
||||||
this.updateProcessStatus('download', false);
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error checking process locks:', error);
|
|
||||||
// On error, set status as idle
|
|
||||||
this.updateProcessStatus('rescan', false);
|
|
||||||
this.updateProcessStatus('download', false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
startProcessStatusMonitoring() {
|
|
||||||
// Initial check on page load
|
|
||||||
this.checkProcessLocks();
|
|
||||||
|
|
||||||
// Check process status every 5 seconds
|
|
||||||
setInterval(() => {
|
|
||||||
if (this.isConnected) {
|
|
||||||
this.checkProcessLocks();
|
|
||||||
}
|
|
||||||
}, 5000);
|
|
||||||
|
|
||||||
console.log('Process status monitoring started');
|
|
||||||
}
|
|
||||||
|
|
||||||
async showConfigModal() {
|
async showConfigModal() {
|
||||||
const modal = document.getElementById('config-modal');
|
const modal = document.getElementById('config-modal');
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user