diff --git a/src/common/presence.ts b/src/common/presence.ts index 50a60a5..a5eba48 100644 --- a/src/common/presence.ts +++ b/src/common/presence.ts @@ -566,11 +566,11 @@ export class ZncProxyDiscordPresence extends Loop { protected proxy_temporary_errors = 0; async update() { - if (this.is_sse) { - return await this.useEventStream(); - } - try { + if (this.is_sse) { + return await this.useEventStream(); + } + const result = await getPresenceFromUrl(this.presence_url); const [presence, user, data] = result; this.last_data = data; @@ -598,7 +598,7 @@ export class ZncProxyDiscordPresence extends Loop { } } catch (err) { if (err instanceof ErrorResponse) { - if (err.response.headers.get('Content-Type')?.match(/^text\/event-stream(;|$)/)) { + if (!this.is_sse && err.response.headers.get('Content-Type')?.match(/^text\/event-stream(;|$)/)) { this.is_sse = true; debug('Presence URL responded with an event stream'); return LoopResult.OK_SKIP_INTERVAL; diff --git a/src/util/eventsource.ts b/src/util/eventsource.ts index 98d5273..3b56284 100644 --- a/src/util/eventsource.ts +++ b/src/util/eventsource.ts @@ -151,8 +151,6 @@ export default class EventSource { this._controller = controller; this._connecting = connecting; - let _response: Response | null = null; - connecting.then(async response => { const url = new URL(this.url); url.search = ''; @@ -171,7 +169,7 @@ export default class EventSource { const retry_after = response.headers.get('Retry-After'); if (retry_after && /^\d+$/.test(retry_after)) { - this._retry_after = parseInt(retry_after); + this._retry_after = parseInt(retry_after) * 1000; } if (!response.ok) {