127.0.0.1
All checks were successful
Deploy hotel / deploy-kdo (push) Successful in 51s

This commit is contained in:
2026-07-27 01:38:27 +05:00
parent 52d5b65fa3
commit 137a04f8c4
2 changed files with 16 additions and 9 deletions

View File

@@ -1,21 +1,22 @@
let db; let db;
const LH = "ip NOT IN ('127.0.0.1', '::1', '::ffff:127.0.0.1')";
function init(database) { function init(database) {
db = database; db = database;
} }
function getStats(req, res) { function getStats(req, res) {
db.get(`SELECT COUNT(DISTINCT session_id) as total FROM visitor_log`, [], (err, totalRow) => { db.get(`SELECT COUNT(DISTINCT session_id) as total FROM visitor_log WHERE ${LH}`, [], (err, totalRow) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
db.get(`SELECT COUNT(DISTINCT session_id) as today FROM visitor_log WHERE visit_date = date('now')`, [], (err, todayRow) => { db.get(`SELECT COUNT(DISTINCT session_id) as today FROM visitor_log WHERE visit_date = date('now') AND ${LH}`, [], (err, todayRow) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
db.get(`SELECT COUNT(DISTINCT session_id) as week FROM visitor_log WHERE visit_date >= date('now', '-6 days')`, [], (err, weekRow) => { db.get(`SELECT COUNT(DISTINCT session_id) as week FROM visitor_log WHERE visit_date >= date('now', '-6 days') AND ${LH}`, [], (err, weekRow) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
db.get(`SELECT COUNT(DISTINCT session_id) as month FROM visitor_log WHERE visit_date >= date('now', 'start of month')`, [], (err, monthRow) => { db.get(`SELECT COUNT(DISTINCT session_id) as month FROM visitor_log WHERE visit_date >= date('now', 'start of month') AND ${LH}`, [], (err, monthRow) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
db.get(`SELECT COUNT(*) as page_views FROM visitor_log`, [], (err, pvRow) => { db.get(`SELECT COUNT(*) as page_views FROM visitor_log WHERE ${LH}`, [], (err, pvRow) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
db.get(`SELECT COUNT(DISTINCT ip) as unique_ips FROM visitor_log`, [], (err, ipRow) => { db.get(`SELECT COUNT(DISTINCT ip) as unique_ips FROM visitor_log WHERE ${LH}`, [], (err, ipRow) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
res.json({ res.json({
total: totalRow ? totalRow.total : 0, total: totalRow ? totalRow.total : 0,
@@ -38,6 +39,7 @@ function getCountries(req, res) {
COALESCE(NULLIF(country_code, ''), '--') as country_code, COALESCE(NULLIF(country_code, ''), '--') as country_code,
COUNT(DISTINCT session_id) as count COUNT(DISTINCT session_id) as count
FROM visitor_log FROM visitor_log
WHERE ${LH}
GROUP BY COALESCE(NULLIF(country_code, ''), '--') GROUP BY COALESCE(NULLIF(country_code, ''), '--')
ORDER BY count DESC LIMIT 30`, [], (err, rows) => { ORDER BY count DESC LIMIT 30`, [], (err, rows) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
@@ -48,7 +50,7 @@ function getCountries(req, res) {
function getLanguages(req, res) { function getLanguages(req, res) {
db.all(`SELECT accept_language, COUNT(DISTINCT session_id) as count db.all(`SELECT accept_language, COUNT(DISTINCT session_id) as count
FROM visitor_log FROM visitor_log
WHERE accept_language IS NOT NULL AND accept_language != '' WHERE accept_language IS NOT NULL AND accept_language != '' AND ${LH}
GROUP BY accept_language GROUP BY accept_language
ORDER BY count DESC`, [], (err, rows) => { ORDER BY count DESC`, [], (err, rows) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
@@ -64,7 +66,7 @@ function getLanguages(req, res) {
function getDaily(req, res) { function getDaily(req, res) {
db.all(`SELECT visit_date, COUNT(DISTINCT session_id) as count, COUNT(*) as page_views db.all(`SELECT visit_date, COUNT(DISTINCT session_id) as count, COUNT(*) as page_views
FROM visitor_log FROM visitor_log
WHERE visit_date >= date('now', '-29 days') WHERE visit_date >= date('now', '-29 days') AND ${LH}
GROUP BY visit_date GROUP BY visit_date
ORDER BY visit_date ASC`, [], (err, rows) => { ORDER BY visit_date ASC`, [], (err, rows) => {
if (err) return res.status(500).json({ error: err.message }); if (err) return res.status(500).json({ error: err.message });
@@ -77,7 +79,7 @@ function getIPs(req, res) {
const offset = parseInt(req.query.offset) || 0; const offset = parseInt(req.query.offset) || 0;
const { id, ip, country, lang, date_from, date_to, page } = req.query; const { id, ip, country, lang, date_from, date_to, page } = req.query;
const whereClauses = []; const whereClauses = [LH];
const params = []; const params = [];
if (id) { whereClauses.push('id = ?'); params.push(parseInt(id)); } if (id) { whereClauses.push('id = ?'); params.push(parseInt(id)); }

View File

@@ -233,6 +233,11 @@ app.use((req, res, next) => {
} }
const ip = req.ip || req.connection.remoteAddress || ''; const ip = req.ip || req.connection.remoteAddress || '';
if (ip === '127.0.0.1' || ip === '::1' || ip === '::ffff:127.0.0.1') {
return next();
}
const cookies = parseCookies(req.headers.cookie); const cookies = parseCookies(req.headers.cookie);
let sessionId = cookies.visitor_sid; let sessionId = cookies.visitor_sid;