mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-03 09:49:20 +02:00
Revert webfinger changes
We can re-apply them when we'll upgrade to 2.8.x, but we need https://github.com/silverbucket/webfinger.js/issues/106 to be fixed first
This commit is contained in:
parent
f19954414f
commit
1289d645d8
1 changed files with 31 additions and 9 deletions
|
@ -1,11 +1,11 @@
|
||||||
|
import WebFinger from 'webfinger.js'
|
||||||
|
import { WebFingerData } from '@peertube/peertube-models'
|
||||||
import { isProdInstance } from '@peertube/peertube-node-utils'
|
import { isProdInstance } from '@peertube/peertube-node-utils'
|
||||||
import { isActivityPubUrlValid } from '@server/helpers/custom-validators/activitypub/misc.js'
|
import { isActivityPubUrlValid } from '@server/helpers/custom-validators/activitypub/misc.js'
|
||||||
import { REQUEST_TIMEOUTS, WEBSERVER } from '@server/initializers/constants.js'
|
import { REQUEST_TIMEOUTS, WEBSERVER } from '@server/initializers/constants.js'
|
||||||
import { ActorModel } from '@server/models/actor/actor.js'
|
import { ActorModel } from '@server/models/actor/actor.js'
|
||||||
import { MActorFull } from '@server/types/models/index.js'
|
import { MActorFull } from '@server/types/models/index.js'
|
||||||
import WebFinger from 'webfinger.js'
|
|
||||||
|
|
||||||
// eslint-disable-next-line new-cap
|
|
||||||
const webfinger = new WebFinger({
|
const webfinger = new WebFinger({
|
||||||
webfist_fallback: false,
|
webfist_fallback: false,
|
||||||
tls_only: isProdInstance(),
|
tls_only: isProdInstance(),
|
||||||
|
@ -13,7 +13,7 @@ const webfinger = new WebFinger({
|
||||||
request_timeout: REQUEST_TIMEOUTS.DEFAULT
|
request_timeout: REQUEST_TIMEOUTS.DEFAULT
|
||||||
})
|
})
|
||||||
|
|
||||||
export async function loadActorUrlOrGetFromWebfinger (uriArg: string) {
|
async function loadActorUrlOrGetFromWebfinger (uriArg: string) {
|
||||||
// Handle strings like @toto@example.com
|
// Handle strings like @toto@example.com
|
||||||
const uri = uriArg.startsWith('@') ? uriArg.slice(1) : uriArg
|
const uri = uriArg.startsWith('@') ? uriArg.slice(1) : uriArg
|
||||||
|
|
||||||
|
@ -31,15 +31,37 @@ export async function loadActorUrlOrGetFromWebfinger (uriArg: string) {
|
||||||
return getUrlFromWebfinger(uri)
|
return getUrlFromWebfinger(uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getUrlFromWebfinger (uri: string) {
|
async function getUrlFromWebfinger (uri: string) {
|
||||||
const { object } = await webfinger.lookup(uri)
|
const webfingerData: WebFingerData = await webfingerLookup(uri)
|
||||||
|
return getLinkOrThrow(webfingerData)
|
||||||
|
}
|
||||||
|
|
||||||
if (Array.isArray(object.links) === false) throw new Error('WebFinger links is not an array.')
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
const selfLink = object.links.find(l => l.rel === 'self')
|
export {
|
||||||
if (selfLink === undefined || isActivityPubUrlValid(selfLink.href as string) === false) {
|
getUrlFromWebfinger,
|
||||||
|
loadActorUrlOrGetFromWebfinger
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function getLinkOrThrow (webfingerData: WebFingerData) {
|
||||||
|
if (Array.isArray(webfingerData.links) === false) throw new Error('WebFinger links is not an array.')
|
||||||
|
|
||||||
|
const selfLink = webfingerData.links.find(l => l.rel === 'self')
|
||||||
|
if (selfLink === undefined || isActivityPubUrlValid(selfLink.href) === false) {
|
||||||
throw new Error('Cannot find self link or href is not a valid URL.')
|
throw new Error('Cannot find self link or href is not a valid URL.')
|
||||||
}
|
}
|
||||||
|
|
||||||
return selfLink.href as string
|
return selfLink.href
|
||||||
|
}
|
||||||
|
|
||||||
|
function webfingerLookup (handle: string) {
|
||||||
|
return new Promise<WebFingerData>((res, rej) => {
|
||||||
|
webfinger.lookup(handle, (err, p) => {
|
||||||
|
if (err) return rej(err)
|
||||||
|
|
||||||
|
return res(p.object)
|
||||||
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue