Browse Source

pageviews: Track text page

master
Hampus Sjöberg 4 years ago
parent
commit
e2cc011e38
  1. 3
      index.ts
  2. 14
      pageviews/index.ts

3
index.ts

@ -4,7 +4,7 @@ import config from "./config/config.ts";
import router from "./api/index.ts";
import { homeTXT } from "./txt/index.ts";
import { bootstrapBlocks } from "./blocks/index.ts";
import pageviews from "./pageviews/index.ts";
import { pageviews, pageviewsTxt } from "./pageviews/index.ts";
bootstrapBlocks();
@ -26,6 +26,7 @@ app.use(async (context) => {
accepts.includes("text/plain") ||
context.request.url.pathname === "/index.txt")
) {
await pageviewsTxt();
context.response.body = homeTXT();
} else {
await pageviews();

14
pageviews/index.ts

@ -2,12 +2,14 @@ import { ensureFile } from "https://deno.land/std/fs/mod.ts";
import format from "https://deno.land/x/date_fns@v2.15.0/format/index.js";
await ensureFile("./pageviews.json");
await ensureFile("./pageviews_txt.json");
interface IPageViews {
[key: string]: number;
}
const counter: IPageViews = JSON.parse((await Deno.readTextFile("./pageviews.json")) || "{}");
const counterTxt: IPageViews = JSON.parse((await Deno.readTextFile("./pageviews_txt.json")) || "{}");
const pageviews = async function () {
export const pageviews = async function () {
try {
const date = format(new Date(), "yyyy-MM-dd", {});
counter[date] = (counter[date] ?? 0) + 1;
@ -17,4 +19,12 @@ const pageviews = async function () {
}
};
export default pageviews;
export const pageviewsTxt = async function () {
try {
const date = format(new Date(), "yyyy-MM-dd", {});
counterTxt[date] = (counterTxt[date] ?? 0) + 1;
await Deno.writeTextFile("./pageviews_txt.json", JSON.stringify(counterTxt, null, 2));
} catch (e) {
console.log(e.message);
}
};

Loading…
Cancel
Save