This commit is contained in:
+7
-18
@@ -1286,25 +1286,10 @@ def register_web_routes(app, dependencies):
|
|||||||
db = dependencies["db"]
|
db = dependencies["db"]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Check if episode exists
|
# Use the existing database method
|
||||||
with db.get_connection() as conn:
|
deleted = db.delete_episode(imdb_id, season, episode)
|
||||||
cursor = conn.cursor()
|
|
||||||
cursor.execute(
|
|
||||||
"SELECT season, episode, dateadded, source FROM episodes WHERE imdb_id = %s AND season = %s AND episode = %s",
|
|
||||||
(imdb_id, season, episode)
|
|
||||||
)
|
|
||||||
episode_data = cursor.fetchone()
|
|
||||||
|
|
||||||
if not episode_data:
|
|
||||||
raise HTTPException(status_code=404, detail="Episode not found")
|
|
||||||
|
|
||||||
# Delete the episode
|
|
||||||
cursor.execute(
|
|
||||||
"DELETE FROM episodes WHERE imdb_id = %s AND season = %s AND episode = %s",
|
|
||||||
(imdb_id, season, episode)
|
|
||||||
)
|
|
||||||
conn.commit()
|
|
||||||
|
|
||||||
|
if deleted:
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
"status": "success",
|
"status": "success",
|
||||||
@@ -1313,7 +1298,11 @@ def register_web_routes(app, dependencies):
|
|||||||
"season": season,
|
"season": season,
|
||||||
"episode": episode
|
"episode": episode
|
||||||
}
|
}
|
||||||
|
else:
|
||||||
|
raise HTTPException(status_code=404, detail="Episode not found")
|
||||||
|
|
||||||
|
except HTTPException:
|
||||||
|
raise # Re-raise HTTP exceptions
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"❌ Error deleting episode: {e}")
|
print(f"❌ Error deleting episode: {e}")
|
||||||
raise HTTPException(status_code=500, detail=f"Failed to delete episode: {str(e)}")
|
raise HTTPException(status_code=500, detail=f"Failed to delete episode: {str(e)}")
|
||||||
|
|||||||
@@ -457,6 +457,6 @@
|
|||||||
<!-- Toast Notifications -->
|
<!-- Toast Notifications -->
|
||||||
<div class="toast-container" id="toast-container"></div>
|
<div class="toast-container" id="toast-container"></div>
|
||||||
|
|
||||||
<script src="/static/js/app.js?v=2.8.2-20241025-delete-fix"></script>
|
<script src="/static/js/app.js?v=2.8.2-20241025-auth-fix"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1289,16 +1289,11 @@ async function deleteEpisode(imdbId, season, episode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const response = await fetch(`/api/episodes/${imdbId}/${season}/${episode}`, {
|
const result = await apiCall(`/api/episodes/${imdbId}/${season}/${episode}`, {
|
||||||
method: 'DELETE',
|
method: 'DELETE'
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json'
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const result = await response.json();
|
if (result.success) {
|
||||||
|
|
||||||
if (response.ok && result.success) {
|
|
||||||
showToast(`✅ Episode ${episodeStr} deleted successfully`, 'success');
|
showToast(`✅ Episode ${episodeStr} deleted successfully`, 'success');
|
||||||
|
|
||||||
// Remove the row from the table
|
// Remove the row from the table
|
||||||
@@ -1313,11 +1308,6 @@ async function deleteEpisode(imdbId, season, episode) {
|
|||||||
// Update episode counts in modal header
|
// Update episode counts in modal header
|
||||||
updateEpisodeModalCounts();
|
updateEpisodeModalCounts();
|
||||||
|
|
||||||
} else {
|
|
||||||
const errorMsg = result.message || result.error || 'Unknown error';
|
|
||||||
showToast(`❌ Failed to delete episode: ${errorMsg}`, 'error');
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Delete episode failed:', error);
|
console.error('Delete episode failed:', error);
|
||||||
showToast(`❌ Delete failed: ${error.message}`, 'error');
|
showToast(`❌ Delete failed: ${error.message}`, 'error');
|
||||||
|
|||||||
Reference in New Issue
Block a user