GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — github-docs/javascripts/events.js at main · sputier/github-docs Expand file tree/ Copy pathevents.jsMore file actions 118 lines (102 loc) · 2.59 KB / Copy pathevents.jsFile metadata and controls118 lines (102 loc) · 2.59 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 /* eslint-disable camelcase */ import { v4 as uuidv4 } from 'uuid' import Cookies from 'js-cookie' import getCsrf from './get-csrf' const COOKIE_NAME = '_docs-events' let cookieValue export function getUserEventsId () { if (cookieValue) return cookieValue cookieValue = Cookies.get(COOKIE_NAME) if (cookieValue) return cookieValue cookieValue = uuidv4() Cookies.set(COOKIE_NAME, cookieValue, { secure: true, sameSite: 'strict', expires: 365 }) return cookieValue } export async function sendEvent ({ type, version = '1.0.0', page_render_duration, exit_page_id, exit_first_paint, exit_dom_interactive, exit_dom_complete, exit_visit_duration, exit_scroll_length, link_url, search_query, search_context, navigate_label, survey_vote, survey_comment, survey_email, experiment_name, experiment_variation, experiment_success }) { const response = await fetch('/events', { method: 'POST', headers: { 'Content-Type': 'application/json', 'CSRF-Token': getCsrf() }, body: JSON.stringify({ type, // One of page, exit, link, search, navigate, survey, experiment context: { // Primitives event_id: uuidv4(), user: getUserEventsId(), version, created: new Date().toISOString(), // Content information path: location.pathname, referrer: document.referrer, search: location.search, href: location.href, site_language: location.pathname.split('/')[1], // Device information // os: // os_version: // browser: // browser_version: viewport_width: document.documentElement.clientWidth, viewport_height: document.documentElement.clientHeight, // Location information timezone: new Date().getTimezoneOffset() / -60, user_language: navigator.language }, // Page event page_render_duration, // Exit event exit_page_id, exit_first_paint, exit_dom_interactive, exit_dom_complete, exit_visit_duration, exit_scroll_length, // Link event link_url, // Search event search_query, search_context, // Navigate event navigate_label, // Survey event survey_vote, survey_comment, survey_email, // Experiment event experiment_name, experiment_variation, experiment_success }) }) const data = response.ok ? await response.json() : {} return data } export default async function initializeEvents () { await sendEvent({ type: 'page' }) } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |