Добавлен перехват ошибок чтения rss

This commit is contained in:
Pavel Gnedov 2022-11-11 09:21:37 +07:00
parent a4724069c1
commit 5140e5a442

View file

@ -1,4 +1,4 @@
import { Injectable } from '@nestjs/common'; import { Injectable, Logger } from '@nestjs/common';
import { import {
RssListenerDefaultParams, RssListenerDefaultParams,
RssListenerParams, RssListenerParams,
@ -14,6 +14,8 @@ const parser = new Parser();
@Injectable() @Injectable()
export class RssListener implements EventsListener { export class RssListener implements EventsListener {
private logger = new Logger(RssListener.name);
issues = new BehaviorSubject<number[]>([]); issues = new BehaviorSubject<number[]>([]);
private updateTimeout; private updateTimeout;
@ -56,7 +58,15 @@ export class RssListener implements EventsListener {
const url = subscription.url; const url = subscription.url;
const regexp = new RegExp(subscription.issueNumberParser); const regexp = new RegExp(subscription.issueNumberParser);
const subjectParser = CreateSubjectsParserByRegExp(regexp); const subjectParser = CreateSubjectsParserByRegExp(regexp);
const feed = await parser.parseURL(url); let feed;
try {
feed = await parser.parseURL(url);
} catch (ex) {
this.logger.error(
`Error at load data from rss by url ${url} with error message ${ex.message}`,
);
return [];
}
const issueNumbers: number[] = feed.items const issueNumbers: number[] = feed.items
.filter((item) => { .filter((item) => {
const itemDate = new Date(item.pubDate); const itemDate = new Date(item.pubDate);