diff --git a/netlify/functions/netlify/privateViewLogger.js b/netlify/functions/netlify/privateViewLogger.js new file mode 100644 index 0000000..1e274b1 --- /dev/null +++ b/netlify/functions/netlify/privateViewLogger.js @@ -0,0 +1,43 @@ +const fs = require("fs"); +const path = require("path"); + +const SECRET_KEY = "flat4ers"; // замените на свой + +// Файл, где будет лог +const LOG_PATH = path.join(__dirname, "views-log.json"); + +exports.handler = async function (event, context) { + const { key } = event.queryStringParameters || {}; + + if (key !== SECRET_KEY) { + return { + statusCode: 403, + body: JSON.stringify({ error: "Forbidden" }), + }; + } + + let log = []; + if (fs.existsSync(LOG_PATH)) { + try { + log = JSON.parse(fs.readFileSync(LOG_PATH, "utf8")); + } catch (err) { + console.error("Ошибка чтения лога:", err); + } + } + + const newEntry = { + timestamp: new Date().toISOString(), + path: event.rawUrl || "unknown", + ip: event.headers["x-forwarded-for"] || "unknown", + ua: event.headers["user-agent"] || "unknown", + }; + + log.push(newEntry); + + fs.writeFileSync(LOG_PATH, JSON.stringify(log, null, 2)); + + return { + statusCode: 200, + body: JSON.stringify({ status: "logged", total: log.length }), + }; +}; diff --git a/netlify/functions/viewCounter.js b/netlify/functions/viewCounter.js deleted file mode 100644 index c12a7a8..0000000 --- a/netlify/functions/viewCounter.js +++ /dev/null @@ -1,11 +0,0 @@ -let count = 0; - -exports.handler = async function(event, context) { - count += 1; - - return { - statusCode: 200, - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ count }) - }; -};