@@ -56,16 +56,12 @@ class TVEpisodeRequest(BaseModel):
|
||||
# Web interface models
|
||||
class MovieUpdateRequest(BaseModel):
|
||||
"""Request to update movie dateadded"""
|
||||
imdb_id: str
|
||||
dateadded: Optional[str]
|
||||
source: str
|
||||
|
||||
|
||||
class EpisodeUpdateRequest(BaseModel):
|
||||
"""Request to update episode dateadded"""
|
||||
imdb_id: str
|
||||
season: int
|
||||
episode: int
|
||||
dateadded: Optional[str]
|
||||
source: str
|
||||
|
||||
|
||||
+29
-6
@@ -331,6 +331,24 @@ async def update_movie_date(dependencies: dict, imdb_id: str, dateadded: Optiona
|
||||
print(f" - dateadded type: {type(dateadded)}")
|
||||
print(f" - dateadded repr: {repr(dateadded)}")
|
||||
|
||||
# Validate inputs
|
||||
if not imdb_id or not imdb_id.strip():
|
||||
print(f"❌ Invalid imdb_id: {repr(imdb_id)}")
|
||||
raise HTTPException(status_code=422, detail="Invalid IMDb ID")
|
||||
|
||||
if not source or not source.strip():
|
||||
print(f"❌ Invalid source: {repr(source)}")
|
||||
raise HTTPException(status_code=422, detail="Invalid source")
|
||||
|
||||
# Validate date format if provided
|
||||
if dateadded:
|
||||
try:
|
||||
from datetime import datetime
|
||||
datetime.fromisoformat(dateadded.replace('Z', '+00:00'))
|
||||
except Exception as e:
|
||||
print(f"❌ Invalid dateadded format: {repr(dateadded)} - {e}")
|
||||
raise HTTPException(status_code=422, detail=f"Invalid date format: {dateadded}")
|
||||
|
||||
# Validate movie exists
|
||||
movie = db.get_movie_dates(imdb_id)
|
||||
if not movie:
|
||||
@@ -346,13 +364,18 @@ async def update_movie_date(dependencies: dict, imdb_id: str, dateadded: Optiona
|
||||
)
|
||||
|
||||
# Add to processing history
|
||||
db.add_processing_history(
|
||||
imdb_id=imdb_id,
|
||||
media_type="movie",
|
||||
event_type="manual_date_update",
|
||||
details={"old_source": movie.get('source'), "new_source": source, "dateadded": dateadded}
|
||||
)
|
||||
try:
|
||||
db.add_processing_history(
|
||||
imdb_id=imdb_id,
|
||||
media_type="movie",
|
||||
event_type="manual_date_update",
|
||||
details={"old_source": movie.get('source'), "new_source": source, "dateadded": dateadded}
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"⚠️ Failed to add processing history: {e}")
|
||||
# Don't fail the entire update for history logging issues
|
||||
|
||||
print(f"✅ Successfully updated movie {imdb_id}")
|
||||
return {"status": "success", "message": f"Updated movie {imdb_id}"}
|
||||
|
||||
|
||||
|
||||
@@ -1003,7 +1003,6 @@ async function updateMovieDate(imdbId, dateadded, source) {
|
||||
const result = await apiCall(`/api/movies/${imdbId}`, {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify({
|
||||
imdb_id: imdbId,
|
||||
dateadded: dateadded,
|
||||
source: source
|
||||
})
|
||||
@@ -1026,9 +1025,6 @@ async function updateEpisodeDate(imdbId, season, episode, dateadded, source) {
|
||||
const result = await apiCall(`/api/episodes/${imdbId}/${season}/${episode}`, {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify({
|
||||
imdb_id: imdbId,
|
||||
season: season,
|
||||
episode: episode,
|
||||
dateadded: dateadded,
|
||||
source: source
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user