Skip to content

Commit 14f121c

Browse files
committed
feat(scraper): Added status endpoint
1 parent 927c5d1 commit 14f121c

File tree

4 files changed

+46
-2
lines changed

4 files changed

+46
-2
lines changed

apps/api/src/status/status.service.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { HttpService, Inject, Injectable } from '@nestjs/common'
22
import { InjectModel } from '@nestjs/mongoose'
33
import { checkSync } from 'diskusage'
44
import * as getFolderSize from 'get-folder-size'
5-
import { formatBytes, formatMsToRemaining } from '@pct-org/torrent/utils'
5+
import { formatBytes } from '@pct-org/torrent/utils'
66
import { MovieModel, ShowModel, EpisodeModel } from '@pct-org/mongo-models'
77

88
import { Status } from './status.object-type'
@@ -66,7 +66,7 @@ export class StatusService {
6666
status: response.data.status,
6767
updated: response.data.updated,
6868
nextUpdate: response.data.nextUpdate,
69-
uptime: formatMsToRemaining(response.data.uptime * 1000)
69+
uptime: response.data.uptime,
7070
}
7171

7272
} catch (e) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { Controller, Get, Inject, OnApplicationBootstrap } from '@nestjs/common'
2+
import { SchedulerRegistry } from '@nestjs/schedule'
3+
import { formatMsToRemaining } from '@pct-org/torrent/utils'
4+
5+
@Controller()
6+
export class StatusController implements OnApplicationBootstrap {
7+
8+
@Inject()
9+
private schedulerRegistry: SchedulerRegistry
10+
11+
private bootedSince: number
12+
13+
public onApplicationBootstrap(): void {
14+
this.bootedSince = Date.now()
15+
}
16+
17+
@Get('status')
18+
public watch() {
19+
const cron = this.schedulerRegistry.getCronJob('scraper')
20+
21+
return {
22+
status: 'ok',
23+
version: 'beta',
24+
updated: cron.lastDate() || 'never',
25+
nextUpdate: cron.nextDates(),
26+
uptime: formatMsToRemaining(Date.now() - this.bootedSince)
27+
}
28+
}
29+
30+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { Module } from '@nestjs/common'
2+
3+
import { StatusController } from './status.controller'
4+
5+
@Module({
6+
controllers: [
7+
StatusController
8+
]
9+
})
10+
export class StatusModule {
11+
}

apps/scraper/src/scraper.module.ts

+3
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,15 @@ import { ConfigService } from './shared/config/config.service'
1010
import { ProvidersModule } from './providers/providers.module'
1111
import { ProvidersService } from './providers/providers.service'
1212

13+
import { StatusModule } from './routes/status/status.module'
14+
1315
@Module({
1416
imports: [
1517
ConfigModule,
1618
ModelsModule,
1719

1820
ProvidersModule,
21+
StatusModule,
1922

2023
// Enable Mongoose
2124
MongooseModule.forRootAsync({

0 commit comments

Comments
 (0)