mirror of
https://github.com/Crosstalk-Solutions/project-nomad.git
synced 2026-04-02 23:09:26 +02:00
fix(Kiwix): initial zim file download
This commit is contained in:
parent
e3257d1408
commit
605dce11e8
|
|
@ -1,11 +1,11 @@
|
||||||
import Service from '#models/service'
|
import Service from '#models/service'
|
||||||
import Docker from 'dockerode'
|
import Docker from 'dockerode'
|
||||||
import drive from '@adonisjs/drive/services/main'
|
|
||||||
import axios from 'axios'
|
|
||||||
import logger from '@adonisjs/core/services/logger'
|
import logger from '@adonisjs/core/services/logger'
|
||||||
import { inject } from '@adonisjs/core'
|
import { inject } from '@adonisjs/core'
|
||||||
import { ServiceStatus } from '../../types/services.js'
|
import { ServiceStatus } from '../../types/services.js'
|
||||||
import transmit from '@adonisjs/transmit/services/main'
|
import transmit from '@adonisjs/transmit/services/main'
|
||||||
|
import { doSimpleDownload } from '../utils/downloads.js'
|
||||||
|
import path from 'path'
|
||||||
|
|
||||||
@inject()
|
@inject()
|
||||||
export class DockerService {
|
export class DockerService {
|
||||||
|
|
@ -330,8 +330,9 @@ export class DockerService {
|
||||||
* We'll download the lightweight mini Wikipedia Top 100 zim file for this purpose.
|
* We'll download the lightweight mini Wikipedia Top 100 zim file for this purpose.
|
||||||
**/
|
**/
|
||||||
const WIKIPEDIA_ZIM_URL =
|
const WIKIPEDIA_ZIM_URL =
|
||||||
'https://github.com/Crosstalk-Solutions/project-nomad/blob/master/install/wikipedia_en_100_mini_2025-06.zim'
|
'https://github.com/Crosstalk-Solutions/project-nomad/raw/refs/heads/master/install/wikipedia_en_100_mini_2025-06.zim'
|
||||||
const PATH = '/zim/wikipedia_en_100_mini_2025-06.zim'
|
const zimPath = '/zim/wikipedia_en_100_mini_2025-06.zim'
|
||||||
|
const filepath = path.join(DockerService.NOMAD_STORAGE_ABS_PATH, zimPath)
|
||||||
|
|
||||||
this._broadcast(
|
this._broadcast(
|
||||||
DockerService.KIWIX_SERVICE_NAME,
|
DockerService.KIWIX_SERVICE_NAME,
|
||||||
|
|
@ -343,23 +344,17 @@ export class DockerService {
|
||||||
'preinstall',
|
'preinstall',
|
||||||
`Downloading Wikipedia ZIM file from ${WIKIPEDIA_ZIM_URL}. This may take some time...`
|
`Downloading Wikipedia ZIM file from ${WIKIPEDIA_ZIM_URL}. This may take some time...`
|
||||||
)
|
)
|
||||||
const response = await axios.get(WIKIPEDIA_ZIM_URL, {
|
|
||||||
responseType: 'stream',
|
|
||||||
})
|
|
||||||
|
|
||||||
const stream = response.data
|
await doSimpleDownload({
|
||||||
stream.on('error', (error: Error) => {
|
url: WIKIPEDIA_ZIM_URL,
|
||||||
logger.error(`Error downloading Wikipedia ZIM file: ${error.message}`)
|
filepath,
|
||||||
throw error
|
timeout: 60000,
|
||||||
})
|
})
|
||||||
|
|
||||||
const disk = drive.use('fs')
|
|
||||||
await disk.putStream(PATH, stream)
|
|
||||||
|
|
||||||
this._broadcast(
|
this._broadcast(
|
||||||
DockerService.KIWIX_SERVICE_NAME,
|
DockerService.KIWIX_SERVICE_NAME,
|
||||||
'preinstall',
|
'preinstall',
|
||||||
`Downloaded Wikipedia ZIM file to ${PATH}`
|
`Downloaded Wikipedia ZIM file to ${filepath}`
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user