Skip to content

Commit dd157a4

Browse files
committed
fix: error checking with empty data
1 parent f77bc39 commit dd157a4

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

bin/AutoScraper.ts

+18-16
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ interface CalendarData {
1515

1616
export class AutoScraper {
1717
private static readonly calendarURL: string = 'https://lostarkcodex.com/us/eventcalendar/'
18-
private static buffer_data: string = ''
19-
private static calendar_data: CalendarData = {}
18+
private static bufferData: string = ''
19+
private static calendarData: CalendarData = {}
2020

2121
public static scrapeCalendarData(): void {
2222
https.get(this.calendarURL, (res: any) => {
2323
res.setEncoding('utf8')
2424
res.on('data', (chunk: string) => {
25-
this.buffer_data += chunk
25+
this.bufferData += chunk
2626
})
2727
res.on('end', () => {
2828
this.extractCalendarData()
@@ -34,30 +34,30 @@ export class AutoScraper {
3434

3535
// Strip everything except the calendar_data variable
3636
private static extractCalendarData(): void {
37-
this.buffer_data = this.buffer_data
37+
this.bufferData = this.bufferData
3838
.replace(/\r\n/gmi, ' ')
3939
.replace(/.*var calendar_data=/i, '')
4040
.replace(/(?<=;).*/i, '')
4141
.replace(';', '')
4242

4343
try {
44-
JSON.parse(this.buffer_data)
44+
JSON.parse(this.bufferData)
4545
} catch (err: unknown) {
4646
console.error(err);
47-
this.buffer_data = '{}'
47+
this.bufferData = '{}'
4848
}
4949
}
5050

5151
// Removes duplicates from entries
5252
private static cleanCalendarData(): void {
53-
this.calendar_data = JSON.parse(this.buffer_data)
54-
Object.keys(this.calendar_data).forEach(
55-
type => Object.keys(this.calendar_data[type]).forEach(
56-
month => Object.keys(this.calendar_data[type][month]).forEach(
57-
day => Object.keys(this.calendar_data[type][month][day]).forEach(
58-
event => Object.keys(this.calendar_data[type][month][day][event]).forEach(
53+
this.calendarData = JSON.parse(this.bufferData)
54+
Object.keys(this.calendarData).forEach(
55+
type => Object.keys(this.calendarData[type]).forEach(
56+
month => Object.keys(this.calendarData[type][month]).forEach(
57+
day => Object.keys(this.calendarData[type][month][day]).forEach(
58+
event => Object.keys(this.calendarData[type][month][day][event]).forEach(
5959
// Overwrite current array with one without duplicates
60-
id => this.calendar_data[type][month][day][event][id] = Array.from(new Set(this.calendar_data[type][month][day][event][id]))
60+
id => this.calendarData[type][month][day][event][id] = Array.from(new Set(this.calendarData[type][month][day][event][id]))
6161
)
6262
)
6363
)
@@ -67,9 +67,11 @@ export class AutoScraper {
6767

6868
// If data was successfully formed, backs up the previous data file, then creates a new data file
6969
private static writeData(): void {
70-
if (Object.values(this.calendar_data) !== Object.values({})) {
71-
fs.renameSync('./data/data.json', './data/data.old.json')
72-
fs.writeFileSync('./data/data.json', JSON.stringify(this.calendar_data), 'utf8')
70+
if (Object.values(this.calendarData).length > 0) {
71+
fs.rename('./data/data.json', './data/data.old.json', (err: Error) => {
72+
if (err) console.error(err)
73+
fs.writeFileSync('./data/data.json', JSON.stringify(this.calendarData), 'utf8')
74+
})
7375
}
7476
}
7577
}

0 commit comments

Comments
 (0)