summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/FetchInstanceMetadataService.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-09-18 23:07:41 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-09-18 23:07:41 +0900
commitdd35f2cce6789ce8a0cdf15f0db86506efb07a8f (patch)
treec3a955c056969eb2f1ca45adc584308b75f34cbb /packages/backend/src/core/FetchInstanceMetadataService.ts
parentfix(backend): サービスが二重にインスタンス化されるのを修正 (diff)
downloadsharkey-dd35f2cce6789ce8a0cdf15f0db86506efb07a8f.tar.gz
sharkey-dd35f2cce6789ce8a0cdf15f0db86506efb07a8f.tar.bz2
sharkey-dd35f2cce6789ce8a0cdf15f0db86506efb07a8f.zip
refactor(backend): refactor logger
Diffstat (limited to 'packages/backend/src/core/FetchInstanceMetadataService.ts')
-rw-r--r--packages/backend/src/core/FetchInstanceMetadataService.ts25
1 files changed, 14 insertions, 11 deletions
diff --git a/packages/backend/src/core/FetchInstanceMetadataService.ts b/packages/backend/src/core/FetchInstanceMetadataService.ts
index 6353784c13..4414d83942 100644
--- a/packages/backend/src/core/FetchInstanceMetadataService.ts
+++ b/packages/backend/src/core/FetchInstanceMetadataService.ts
@@ -6,13 +6,12 @@ import tinycolor from 'tinycolor2';
import type { Instance } from '@/models/entities/Instance.js';
import { InstancesRepository } from '@/models/index.js';
import { AppLockService } from '@/core/AppLockService.js';
-import Logger from '@/logger.js';
+import type Logger from '@/logger.js';
import { DI } from '@/di-symbols.js';
+import { LoggerService } from '@/core/LoggerService.js';
import { HttpRequestService } from './HttpRequestService.js';
import type { DOMWindow } from 'jsdom';
-const logger = new Logger('metadata', 'cyan');
-
type NodeInfo = {
openRegistrations?: any;
software?: {
@@ -33,13 +32,17 @@ type NodeInfo = {
@Injectable()
export class FetchInstanceMetadataService {
+ #logger: Logger;
+
constructor(
@Inject(DI.instancesRepository)
private instancesRepository: InstancesRepository,
private appLockService: AppLockService,
private httpRequestService: HttpRequestService,
+ private loggerService: LoggerService,
) {
+ this.#logger = this.loggerService.getLogger('metadata', 'cyan');
}
public async fetchInstanceMetadata(instance: Instance, force = false): Promise<void> {
@@ -54,7 +57,7 @@ export class FetchInstanceMetadataService {
}
}
- logger.info(`Fetching metadata of ${instance.host} ...`);
+ this.#logger.info(`Fetching metadata of ${instance.host} ...`);
try {
const [info, dom, manifest] = await Promise.all([
@@ -71,7 +74,7 @@ export class FetchInstanceMetadataService {
this.#getDescription(info, dom, manifest).catch(() => null),
]);
- logger.succ(`Successfuly fetched metadata of ${instance.host}`);
+ this.#logger.succ(`Successfuly fetched metadata of ${instance.host}`);
const updates = {
infoUpdatedAt: new Date(),
@@ -93,16 +96,16 @@ export class FetchInstanceMetadataService {
await this.instancesRepository.update(instance.id, updates);
- logger.succ(`Successfuly updated metadata of ${instance.host}`);
+ this.#logger.succ(`Successfuly updated metadata of ${instance.host}`);
} catch (e) {
- logger.error(`Failed to update metadata of ${instance.host}: ${e}`);
+ this.#logger.error(`Failed to update metadata of ${instance.host}: ${e}`);
} finally {
unlock();
}
}
async #fetchNodeinfo(instance: Instance): Promise<NodeInfo> {
- logger.info(`Fetching nodeinfo of ${instance.host} ...`);
+ this.#logger.info(`Fetching nodeinfo of ${instance.host} ...`);
try {
const wellknown = await this.httpRequestService.getJson('https://' + instance.host + '/.well-known/nodeinfo')
@@ -134,18 +137,18 @@ export class FetchInstanceMetadataService {
throw err.statusCode ?? err.message;
});
- logger.succ(`Successfuly fetched nodeinfo of ${instance.host}`);
+ this.#logger.succ(`Successfuly fetched nodeinfo of ${instance.host}`);
return info as NodeInfo;
} catch (err) {
- logger.error(`Failed to fetch nodeinfo of ${instance.host}: ${err}`);
+ this.#logger.error(`Failed to fetch nodeinfo of ${instance.host}: ${err}`);
throw err;
}
}
async #fetchDom(instance: Instance): Promise<DOMWindow['document']> {
- logger.info(`Fetching HTML of ${instance.host} ...`);
+ this.#logger.info(`Fetching HTML of ${instance.host} ...`);
const url = 'https://' + instance.host;