require identifying yourself via api
This commit is contained in:
parent
e007c0ebd3
commit
4b3f487548
|
|
@ -116,7 +116,16 @@ app.get('/watch', async ({ query: { v }, set, redirect, error }) => {
|
||||||
return html
|
return html
|
||||||
})
|
})
|
||||||
|
|
||||||
app.get('/video/:id', async ({ params: { id }, error }) => {
|
function hasIdentifyingUA(req: Request): boolean {
|
||||||
|
const ua = req.headers.get('user-agent') ?? '';
|
||||||
|
return /^[^\s]+\/[\d.]+ \([^)]+\)$/.test(ua);
|
||||||
|
}
|
||||||
|
|
||||||
|
app.get('/video/:id', async ({ request, params: { id }, error }) => {
|
||||||
|
const isNice = hasIdentifyingUA(request)
|
||||||
|
if (!isNice) return `This endpoint is provided for people that prefer not to scrape, and depends on your honesty.
|
||||||
|
Please identify yourself with a User-Agent in the format: AppName/1.0 (a way for me to contact you, or a brief explanation of what you're doing).`
|
||||||
|
|
||||||
const cached = await redis.get(`video:${id}`)
|
const cached = await redis.get(`video:${id}`)
|
||||||
if (cached) return JSON.parse(cached)
|
if (cached) return JSON.parse(cached)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue