Skip to content
This repository was archived by the owner on Sep 1, 2024. It is now read-only.

Commit 23d0018

Browse files
committed
Add error callback
1 parent ccf8000 commit 23d0018

2 files changed

Lines changed: 24 additions & 12 deletions

File tree

package.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"name": "@cstleagueorg/cs2-blog-scraper",
3-
"version": "2.0.3",
3+
"version": "2.1.2",
44
"description": "Scrap-scrap",
5+
"homepage": "https://github.com/CSTLeagueORG/CS2BlogScraper#readme",
56
"main": "dist/src/index.js",
67
"scripts": {
78
"test": "jest",
@@ -26,7 +27,10 @@
2627
"node-fetch"
2728
],
2829
"author": "Sergey Zhirov <polarwolf@cstl.gg>",
29-
"repository": "https://github.com/CSTLeagueORG/CS2BlogScraper",
30+
"repository": {
31+
"type": "git",
32+
"url": "https://github.com/CSTLeagueORG/CS2BlogScraper.git"
33+
},
3034
"license": "ISC",
3135
"devDependencies": {
3236
"@types/jest": "^29.2.3",

src/index.ts

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -85,27 +85,35 @@ export class UpdatesListener {
8585
private readonly intervalId: NodeJS.Timer
8686
private readonly params?: Partial<CSGOFetchParams>
8787
private readonly callback: (post: Post) => any
88+
private readonly callbackError?: (e: unknown) => any
8889
private lastPostTime: number
89-
constructor (callback: (post: Post) => any, interval: number = 600000, params?: Partial<CSGOFetchParams>, lastPostTime?: number) {
90+
constructor (callback: (post: Post) => any, interval: number = 600000, params?: Partial<CSGOFetchParams>, lastPostTime?: number, callbackError?: (e: unknown) => any) {
9091
this.lastPostTime = lastPostTime ?? Date.now()
9192
this.params = params
9293
this.callback = callback
94+
this.callbackError = callbackError
9395
// eslint-disable-next-line @typescript-eslint/no-misused-promises
9496
this.intervalId = setInterval(this.fetchPosts.bind(this), interval)
9597
void this.fetchPosts()
9698
}
9799

98100
async fetchPosts (): Promise<void> {
99-
const posts = await getPosts(undefined, this.params)
100-
posts.reverse().forEach(post => {
101-
if (post.date.getTime() <= this.lastPostTime) {
102-
return
103-
}
104-
try {
101+
try {
102+
const posts = await getPosts(undefined, this.params)
103+
posts.reverse().forEach(post => {
104+
if (post.date.getTime() <= this.lastPostTime) {
105+
return
106+
}
105107
this.callback(post)
106-
} catch (e) {}
107-
this.lastPostTime = post.date.getTime()
108-
})
108+
this.lastPostTime = post.date.getTime()
109+
})
110+
} catch (e) {
111+
if (this.callbackError) {
112+
try {
113+
this.callbackError(e)
114+
} catch (e) {}
115+
}
116+
}
109117
}
110118

111119
stopListening (): void {

0 commit comments

Comments
 (0)