Mercurial Hosting > linkmystyle
view src/error_log.js.luan @ 3:b016e4b7c8da default tip
add read_me
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sat, 12 Jul 2025 12:51:36 -0600 |
parents | 8f4df159f06b |
children |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local String = require "luan:String.luan" local trim = String.trim or error() local regex = String.regex or error() local contains = String.contains or error() local Table = require "luan:Table.luan" local concat = Table.concat or error() local Http = require "luan:http/Http.luan" local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "error_log.js" local bad_agents = { [[Googlebot]] [[GSA/]] [[Mobile/15E148 Instagram]] [[Firefox/]] [[VivoBrowser/]] [[Chrome/(4\d|5\d|70|83|86|87|94)\.]] [[musical_ly_2\d\.]] } local bad_agents_ptn = regex(concat(bad_agents,"|")) local bad_contents = { [[\Qchrome-extension://\E]] [[\Q@webkit-masked-url://hidden/\E]] [[\Qanalytics.tiktok.com\E]] [[\QStrict mode does not allow function declarations in a lexically nested statement.\E]] [[\QFailed to set the 'currentTime' property on 'HTMLMediaElement': The provided double value is non-finite.\E]] [[\QThe element has no supported sources.\E]] [[\QThe play() request was interrupted by a call to pause().\E]] [[\QReferenceError: Can't find variable: _AutofillCallbackHandler\E]] [[\QUtilityScript\E]] [[\QscrollReadRandom\E]] [[\QdoGameClick\E]] [[\Qurl = undefined\E]] [[\QFailed to set remote answer sdp: The order of m-lines in answer doesn't match order in offer. Rejecting answer.\E]] } local bad_contents_ptn = regex(concat(bad_contents,"|")) local function priority(err) local agent = Http.request.headers["user-agent"] if agent~=nil and bad_agents_ptn.matches(agent) then return "info" end if bad_contents_ptn.matches(err) then return "info" end local x_requested_with = Http.request.headers["X-Requested-With"] if x_requested_with ~= nil then return "info" end return "error" end return function() local err = Http.request.parameters.err if err == nil then return -- stupid bots end local call = priority(err) logger[call](trim(err).."\n"..trim(Http.request.raw_head).."\n") end