diff --git a/public/js/app_movies.js b/public/js/app_movies.js index 8dfa399..c93c623 100644 --- a/public/js/app_movies.js +++ b/public/js/app_movies.js @@ -117,6 +117,7 @@ window.onload = async function () { const isChecked = watchedMoviesInYear.some(watchedMovie => watchedMovie.imdb_id === movie.imdb_id); const watchedMovie = watchedMoviesInYear.find(wm => wm.imdb_id === movie.imdb_id); const watchedDate = watchedMovie ? new Date(watchedMovie.watchedDate).toLocaleString() : ''; + const playerUrl = movie && movie._id ? `/player.html?id=${encodeURIComponent(movie._id)}` : (movie.vod_link || '#'); const movieDiv = document.createElement('div'); movieDiv.classList.add('col-md-4', 'mb-4', 'movie-card'); @@ -124,10 +125,12 @@ window.onload = async function () { movieDiv.innerHTML = `
${movie.category}
diff --git a/routes/movies.js b/routes/movies.js index 6099dce..f14dd50 100644 --- a/routes/movies.js +++ b/routes/movies.js @@ -3,6 +3,7 @@ const Movie = require("../models/Movie"); const User = require("../models/User"); const axios = require("axios"); const jwt = require("jsonwebtoken"); +const mongoose = require("mongoose"); const router = express.Router(); @@ -321,4 +322,20 @@ router.put("/:id", async (req, res) => { } }); +// Get one movie by Mongo _id (used by the custom player page) +router.get("/:id", async (req, res) => { + try { + const { id } = req.params; + if (!mongoose.Types.ObjectId.isValid(id)) { + return res.status(400).json({ message: "Invalid movie id" }); + } + + const movie = await Movie.findById(id); + if (!movie) return res.status(404).json({ message: "Movie not found" }); + return res.status(200).json(movie); + } catch (err) { + return res.status(500).json({ error: err.message }); + } +}); + module.exports = router;