Mercurial Hosting > linkmystyle
view src/init.luan @ 0:8f4df159f06b
start public repo
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 11 Jul 2025 20:57:49 -0600 |
parents | |
children |
line wrap: on
line source
local Luan = require "luan:Luan.luan" local error = Luan.error local String = require "luan:String.luan" local substring = String.sub 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 Time = require "luan:Time.luan" local Thread = require "luan:Thread.luan" local Http = require "luan:http/Http.luan" local Hosted = require "luan:host/Hosted.luan" local User = require "site:/lib/User.luan" local get_user_by_name = User.get_by_name or error() local name_regex = User.name_regex local main_html = require "site:/lib/main_html.luan" local Logging = require "luan:logging/Logging.luan" local logger = Logging.logger "init" Hosted.set_https and Hosted.set_https(true) local bad_bots = { [[facebookexternalhit]] [[VivoBrowser]] [[\QFirefox/3.\E]] [[\QFirefox/50.\E]] [[SemrushBot]] [[LightspeedSystemsCrawler]] [[bingbot]] [[PetalBot]] [[\QChrome/83.\E]] } local bad_bots_ptn = regex(concat(bad_bots,"|")) function Http.error_priority(e) local request = Http.request or error() local agent = request.headers["user-agent"] local referrer = request.headers.referer if agent~=nil and bad_bots_ptn.matches(agent) then return "info" end if e.priority ~= nil then return e.priority end if referrer==nil or contains(referrer,"baidu.com") or contains(referrer,"google.com") then return "warn" end return "error" end function Http.not_found_handler() local s = substring(Http.request.path,2) --logger.info(s) if not name_regex.matches(s) then return false end local user = get_user_by_name(s) if user == nil then return false end main_html(user) return true end logger.error "init" local function log_day() logger.error("day") end Thread.schedule( log_day, { repeating_delay=Time.period{days=1} } ) local Uploadcare = require "site:/lib/Uploadcare.luan" Thread.schedule( Uploadcare.gc, { repeating_delay=Time.period{days=1} } ) return true