@@ -56,16 +56,12 @@ class TVEpisodeRequest(BaseModel):
|
|||||||
# Web interface models
|
# Web interface models
|
||||||
class MovieUpdateRequest(BaseModel):
|
class MovieUpdateRequest(BaseModel):
|
||||||
"""Request to update movie dateadded"""
|
"""Request to update movie dateadded"""
|
||||||
imdb_id: str
|
|
||||||
dateadded: Optional[str]
|
dateadded: Optional[str]
|
||||||
source: str
|
source: str
|
||||||
|
|
||||||
|
|
||||||
class EpisodeUpdateRequest(BaseModel):
|
class EpisodeUpdateRequest(BaseModel):
|
||||||
"""Request to update episode dateadded"""
|
"""Request to update episode dateadded"""
|
||||||
imdb_id: str
|
|
||||||
season: int
|
|
||||||
episode: int
|
|
||||||
dateadded: Optional[str]
|
dateadded: Optional[str]
|
||||||
source: str
|
source: str
|
||||||
|
|
||||||
|
|||||||
@@ -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 type: {type(dateadded)}")
|
||||||
print(f" - dateadded repr: {repr(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
|
# Validate movie exists
|
||||||
movie = db.get_movie_dates(imdb_id)
|
movie = db.get_movie_dates(imdb_id)
|
||||||
if not movie:
|
if not movie:
|
||||||
@@ -346,13 +364,18 @@ async def update_movie_date(dependencies: dict, imdb_id: str, dateadded: Optiona
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Add to processing history
|
# Add to processing history
|
||||||
|
try:
|
||||||
db.add_processing_history(
|
db.add_processing_history(
|
||||||
imdb_id=imdb_id,
|
imdb_id=imdb_id,
|
||||||
media_type="movie",
|
media_type="movie",
|
||||||
event_type="manual_date_update",
|
event_type="manual_date_update",
|
||||||
details={"old_source": movie.get('source'), "new_source": source, "dateadded": dateadded}
|
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}"}
|
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}`, {
|
const result = await apiCall(`/api/movies/${imdbId}`, {
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
imdb_id: imdbId,
|
|
||||||
dateadded: dateadded,
|
dateadded: dateadded,
|
||||||
source: source
|
source: source
|
||||||
})
|
})
|
||||||
@@ -1026,9 +1025,6 @@ async function updateEpisodeDate(imdbId, season, episode, dateadded, source) {
|
|||||||
const result = await apiCall(`/api/episodes/${imdbId}/${season}/${episode}`, {
|
const result = await apiCall(`/api/episodes/${imdbId}/${season}/${episode}`, {
|
||||||
method: 'PUT',
|
method: 'PUT',
|
||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
imdb_id: imdbId,
|
|
||||||
season: season,
|
|
||||||
episode: episode,
|
|
||||||
dateadded: dateadded,
|
dateadded: dateadded,
|
||||||
source: source
|
source: source
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user