JSONP mode is on by default. It will fetch main wiki pages in the browser, without the server needing to make any requests. To turn it off, add [feature_json] enabled = false to config.ini. Captcha is off by default. It is a custom solution and is still experimental at this stage. If you turn it on, please monitor the logs to see how it goes! config.ini options are as follows: [captcha] enabled = true|false log = true|false ip_header = <header name set by your reverse proxy, like x-forwarded-for>
24 lines
826 B
JavaScript
24 lines
826 B
JavaScript
const u = new URL(location)
|
|
const from = u.searchParams.get("from") || location.href
|
|
let answered = false
|
|
|
|
const area = document.getElementById("captcha-area")
|
|
const areaBox = area.getBoundingClientRect()
|
|
const width = Math.floor(areaBox.width)
|
|
const height = Math.floor(window.innerHeight - areaBox.bottom - areaBox.left)
|
|
const img = document.createElement("img")
|
|
img.src = `/captcha/img/${width}/${height}`
|
|
img.addEventListener("click", event => {
|
|
if (answered) return
|
|
answered = true
|
|
location = `/captcha/verify/${width}/${height}/${event.offsetX}/${event.offsetY}?` + new URLSearchParams({from})
|
|
})
|
|
area.appendChild(img)
|
|
|
|
document.addEventListener("keydown", event => {
|
|
if (event.repeat) {
|
|
if (answered) return
|
|
answered = true
|
|
location = `/captcha/verify/0/0/${event.key}/0?` + new URLSearchParams({from})
|
|
}
|
|
})
|