Merge branch 'master' into meilisearch
This commit is contained in:
commit
b98aa43a77
|
@ -1,6 +1,7 @@
|
|||
import { CONFIG } from '../../initializers/constants'
|
||||
import { listIndexInstancesHost } from '../requests/instances-index'
|
||||
import { listIndexInstancesHost, getMajorInstanceVersion } from '../requests/instances-index'
|
||||
import { client } from '../../helpers/meilisearch'
|
||||
import { logger } from '../../helpers/logger'
|
||||
|
||||
async function buildInstanceHosts () {
|
||||
let indexHosts = await listIndexInstancesHost()
|
||||
|
@ -13,6 +14,16 @@ async function buildInstanceHosts () {
|
|||
indexHosts = indexHosts.filter(h => whitelistHosts.includes(h))
|
||||
}
|
||||
|
||||
for (const indexHost of indexHosts) {
|
||||
const instanceVersion = await getMajorInstanceVersion(indexHost)
|
||||
|
||||
if (instanceVersion < 4) {
|
||||
logger.info(`Do not index ${indexHost} because the major version is too low (v${instanceVersion} < v4)`)
|
||||
|
||||
indexHosts = indexHosts.filter(h => h !== indexHost)
|
||||
}
|
||||
}
|
||||
|
||||
const dbHosts = await listDBInstances()
|
||||
const removedHosts = getRemovedHosts(dbHosts, indexHosts)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { CONFIG } from '../../initializers/constants'
|
||||
import { doRequest } from '../../helpers/requests'
|
||||
|
||||
async function listIndexInstancesHost (): Promise<string[]> {
|
||||
export async function listIndexInstancesHost (): Promise<string[]> {
|
||||
const uri = CONFIG.INSTANCES_INDEX.URL
|
||||
|
||||
const qs = {
|
||||
|
@ -14,6 +14,14 @@ async function listIndexInstancesHost (): Promise<string[]> {
|
|||
return body.data.map(o => o.host as string)
|
||||
}
|
||||
|
||||
export {
|
||||
listIndexInstancesHost
|
||||
export async function getMajorInstanceVersion (host: string): Promise<number> {
|
||||
const { body } = await doRequest<any>({ uri: `https://${host}/api/v1/config`, json: true })
|
||||
|
||||
const version = body.serverVersion
|
||||
|
||||
const majorVersion = parseInt(version.split('.')[0])
|
||||
|
||||
return isNaN(majorVersion)
|
||||
? 0
|
||||
: majorVersion
|
||||
}
|
||||
|
|
|
@ -55,7 +55,6 @@ async function getVideos (host: string, start: number): Promise<IndexableVideo[]
|
|||
uri: url,
|
||||
qs: {
|
||||
start,
|
||||
filter: 'local', // Deprecated filter for old PeerTube instances
|
||||
isLocal: true,
|
||||
nsfw: 'both',
|
||||
skipCount: true,
|
||||
|
|
|
@ -63,6 +63,8 @@ export class IndexationScheduler extends AbstractScheduler {
|
|||
await o.removeFromHosts(removedHosts)
|
||||
}
|
||||
|
||||
logger.info({ indexHosts }, 'Will index %s hosts', indexHosts.length)
|
||||
|
||||
await Bluebird.map(indexHosts, async host => {
|
||||
try {
|
||||
await this.indexHost(host)
|
||||
|
|
Loading…
Reference in New Issue