Fix search with bad webfinger handles
This commit is contained in:
parent
4d09cfba78
commit
cce1b3dfd3
|
@ -59,10 +59,12 @@ function searchVideoChannels (req: express.Request, res: express.Response) {
|
|||
|
||||
// Handle strings like @toto@example.com
|
||||
if (parts.length === 3 && parts[0].length === 0) parts.shift()
|
||||
const isWebfingerSearch = parts.length === 2 && parts.every(p => p.indexOf(' ') === -1)
|
||||
const isWebfingerSearch = parts.length === 2 && parts.every(p => p && p.indexOf(' ') === -1)
|
||||
|
||||
if (isURISearch || isWebfingerSearch) return searchVideoChannelURI(search, isWebfingerSearch, res)
|
||||
|
||||
// @username -> username to search in DB
|
||||
if (query.search.startsWith('@')) query.search = query.search.replace(/^@/, '')
|
||||
return searchVideoChannelsDB(query, res)
|
||||
}
|
||||
|
||||
|
@ -85,7 +87,15 @@ async function searchVideoChannelURI (search: string, isWebfingerSearch: boolean
|
|||
let videoChannel: VideoChannelModel
|
||||
let uri = search
|
||||
|
||||
if (isWebfingerSearch) uri = await loadActorUrlOrGetFromWebfinger(search)
|
||||
if (isWebfingerSearch) {
|
||||
try {
|
||||
uri = await loadActorUrlOrGetFromWebfinger(search)
|
||||
} catch (err) {
|
||||
logger.warn('Cannot load actor URL or get from webfinger.', { search, err })
|
||||
|
||||
return res.json({ total: 0, data: [] })
|
||||
}
|
||||
}
|
||||
|
||||
if (isUserAbleToSearchRemoteURI(res)) {
|
||||
try {
|
||||
|
|
|
@ -19,7 +19,7 @@ async function loadActorUrlOrGetFromWebfinger (uriArg: string) {
|
|||
const [ name, host ] = uri.split('@')
|
||||
let actor: ActorModel
|
||||
|
||||
if (host === WEBSERVER.HOST) {
|
||||
if (!host || host === WEBSERVER.HOST) {
|
||||
actor = await ActorModel.loadLocalByName(name)
|
||||
} else {
|
||||
actor = await ActorModel.loadByNameAndHost(name, host)
|
||||
|
|
Loading…
Reference in New Issue