All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m0s
114 lines
3.9 KiB
Diff
114 lines
3.9 KiB
Diff
From 99ffaffdaa73ed95ddafeccb2ce6e945f7df4446 Mon Sep 17 00:00:00 2001
|
|
From: Fijxu <fijxu@nadeko.net>
|
|
Date: Sun, 20 Apr 2025 02:18:50 -0400
|
|
Subject: [PATCH 16/20] metrics: add live, premiere and private video errors
|
|
|
|
---
|
|
src/lib/helpers/metrics.ts | 42 ++++++++++++++++++++++++++++++++++++--
|
|
1 file changed, 40 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/lib/helpers/metrics.ts b/src/lib/helpers/metrics.ts
|
|
index e1b0b73..ae778f2 100644
|
|
--- a/src/lib/helpers/metrics.ts
|
|
+++ b/src/lib/helpers/metrics.ts
|
|
@@ -78,6 +78,7 @@ export class Metrics {
|
|
unplayable: boolean;
|
|
contentCheckRequired: boolean;
|
|
loginRequired: boolean;
|
|
+ liveStreamOffline: boolean;
|
|
unknown: string | undefined;
|
|
}
|
|
|
|
@@ -85,6 +86,7 @@ export class Metrics {
|
|
unplayable: false,
|
|
contentCheckRequired: false,
|
|
loginRequired: false,
|
|
+ liveStreamOffline: false,
|
|
unknown: undefined,
|
|
};
|
|
|
|
@@ -100,6 +102,10 @@ export class Metrics {
|
|
case "LOGIN_REQUIRED":
|
|
error.loginRequired = true;
|
|
return error;
|
|
+ // Livestreams
|
|
+ case "LIVE_STREAM_OFFLINE":
|
|
+ error.liveStreamOffline = true;
|
|
+ return error;
|
|
default:
|
|
error.unknown = status;
|
|
return error;
|
|
@@ -118,6 +124,10 @@ export class Metrics {
|
|
signInToConfirmAge: boolean;
|
|
signInToConfirmBot: boolean;
|
|
selfHarmTopics: boolean;
|
|
+ liveStreamOffline: boolean;
|
|
+ liveEventWillBegin: boolean;
|
|
+ premiere: boolean;
|
|
+ privateVideo: boolean;
|
|
unknown: string | undefined;
|
|
}
|
|
|
|
@@ -125,6 +135,10 @@ export class Metrics {
|
|
signInToConfirmAge: false,
|
|
signInToConfirmBot: false,
|
|
selfHarmTopics: false,
|
|
+ liveStreamOffline: false,
|
|
+ liveEventWillBegin: false,
|
|
+ premiere: false,
|
|
+ privateVideo: false,
|
|
unknown: undefined,
|
|
};
|
|
|
|
@@ -142,6 +156,20 @@ export class Metrics {
|
|
):
|
|
error.selfHarmTopics = true;
|
|
return error;
|
|
+ // Offline Livestreams
|
|
+ case reason?.includes("Offline."):
|
|
+ error.liveStreamOffline = true;
|
|
+ return error;
|
|
+ // Livestreams that are about to start
|
|
+ case reason?.includes("This live event will begin in a few moments"):
|
|
+ error.liveEventWillBegin = true;
|
|
+ return error;
|
|
+ case reason?.includes("Premiere will begin shortly") || reason?.includes("Premieres in"):
|
|
+ error.premiere = true;
|
|
+ return error;
|
|
+ case reason?.includes("Private video"):
|
|
+ error.privateVideo = true;
|
|
+ return error;
|
|
default:
|
|
error.unknown = reason;
|
|
return error;
|
|
@@ -193,7 +221,11 @@ export class Metrics {
|
|
this.innertubeFailedRequest.inc();
|
|
|
|
const status = this.checkStatus(videoData);
|
|
- if (status.contentCheckRequired || status.unplayable) return;
|
|
+ if (
|
|
+ status.contentCheckRequired ||
|
|
+ status.unplayable ||
|
|
+ status.liveStreamOffline
|
|
+ ) return;
|
|
|
|
if (status?.unknown) {
|
|
this.innertubeErrorStatusUnknown.labels({
|
|
@@ -202,7 +234,13 @@ export class Metrics {
|
|
}
|
|
|
|
const reason = this.checkReason(videoData);
|
|
- if (reason.signInToConfirmAge) return;
|
|
+ if (
|
|
+ reason.signInToConfirmAge ||
|
|
+ reason.liveStreamOffline ||
|
|
+ reason.liveEventWillBegin ||
|
|
+ reason.premiere ||
|
|
+ reason.privateVideo
|
|
+ ) return;
|
|
|
|
if (reason.unknown) {
|
|
this.innertubeErrorReasonUnknown.labels({
|
|
--
|
|
2.49.0
|
|
|