diff --git a/src/libpoketube/init/pages-api.js b/src/libpoketube/init/pages-api.js index 045b0e95..5d59d3ff 100644 --- a/src/libpoketube/init/pages-api.js +++ b/src/libpoketube/init/pages-api.js @@ -99,14 +99,19 @@ function parseUA(ua) { fs.writeFileSync(statsFile, JSON.stringify(data, null, 2)) res.json({ ok: true }) }) - - app.get("/api/stats", (req, res) => { +app.get("/api/stats", (req, res) => { if (!telemetryConfig.telemetry) return res.json({ videos: {}, browsers: {}, os: {}, totalUsers: 0 }) const raw = fs.readFileSync(statsFile, "utf8") const data = JSON.parse(raw) + // ensure structure exists + if (!data.videos) data.videos = {} + if (!data.browsers) data.browsers = {} + if (!data.os) data.os = {} + if (!data.users) data.users = {} + const sortedVideos = Object.entries(data.videos) .sort((a, b) => b[1] - a[1]) .slice(0, 10) @@ -121,6 +126,7 @@ function parseUA(ua) { }) }) + app.get("/avatars/:v", async function (req, res) { var url = `https://yt3.ggpht.com/${req.params.v}`;