From 622f56862ce55a5f961634c1b169a236a56dcae8 Mon Sep 17 00:00:00 2001 From: ashley Date: Tue, 7 Oct 2025 16:06:11 +0200 Subject: [PATCH] fix stuff + add stuff --- src/libpoketube/init/pages-api.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/libpoketube/init/pages-api.js b/src/libpoketube/init/pages-api.js index 74cc76f8..7d2741db 100644 --- a/src/libpoketube/init/pages-api.js +++ b/src/libpoketube/init/pages-api.js @@ -11,7 +11,7 @@ function getJson(str) { const pkg = require("../../../package.json"); const os = require('os'); const cnf = require("../../../config.json"); -const ip2country = require("ip2country"); +const { lookup } = require("ip2c"); const innertube = require("../libpoketube-youtubei-objects.json"); @@ -56,15 +56,14 @@ module.exports = function (app, config, renderTemplate) { app.get("/api/geo", (req, res) => { - let ip = + let ip = req.headers["x-forwarded-for"]?.split(",")[0].trim() || req.socket.remoteAddress; + if (ip && ip.startsWith("::ffff:")) ip = ip.slice(7); - if (ip && ip.startsWith("::ffff:")) ip = ip.substring(7); - - const countryCode = ip2country(ip) || "??"; - - const isAgeRestrictedGeo = countryCode === "RU"; + const info = lookup(ip); // returns { countryCode: 'GB', countryName: 'United Kingdom', ... } + const countryCode = info?.countryCode || "??"; + const isAgeRestrictedGeo = countryCode === "GB"; res.setHeader("Content-Type", "application/json"); res.setHeader("Access-Control-Allow-Origin", "*");