This repository was archived by the owner on Sep 25, 2023. It is now read-only.
File tree 6 files changed +110
-2
lines changed
ConfusedPolarBear.Plugin.IntroSkipper
ConfusedPolarBear.Plugin.IntroSkipper.Tests
6 files changed +110
-2
lines changed Original file line number Diff line number Diff line change
1
+ namespace ConfusedPolarBear . Plugin . IntroSkipper . Tests ;
2
+
3
+ using Xunit ;
4
+
5
+ public class TestFlags
6
+ {
7
+ [ Fact ]
8
+ public void TestEmptyFlagSerialization ( )
9
+ {
10
+ WarningManager . Clear ( ) ;
11
+ Assert . Equal ( "None" , WarningManager . GetWarnings ( ) ) ;
12
+ }
13
+
14
+ [ Fact ]
15
+ public void TestSingleFlagSerialization ( )
16
+ {
17
+ WarningManager . Clear ( ) ;
18
+ WarningManager . SetFlag ( PluginWarning . UnableToAddSkipButton ) ;
19
+ Assert . Equal ( "UnableToAddSkipButton" , WarningManager . GetWarnings ( ) ) ;
20
+ }
21
+
22
+ [ Fact ]
23
+ public void TestDoubleFlagSerialization ( )
24
+ {
25
+ WarningManager . Clear ( ) ;
26
+ WarningManager . SetFlag ( PluginWarning . UnableToAddSkipButton ) ;
27
+ WarningManager . SetFlag ( PluginWarning . InvalidChromaprintFingerprint ) ;
28
+ WarningManager . SetFlag ( PluginWarning . InvalidChromaprintFingerprint ) ;
29
+
30
+ Assert . Equal (
31
+ "UnableToAddSkipButton, InvalidChromaprintFingerprint" ,
32
+ WarningManager . GetWarnings ( ) ) ;
33
+ }
34
+ }
Original file line number Diff line number Diff line change @@ -78,7 +78,8 @@ public ReadOnlyCollection<QueuedEpisode> AnalyzeMediaFiles(
78
78
}
79
79
catch ( FingerprintException ex )
80
80
{
81
- _logger . LogWarning ( "Caught fingerprint error: {Ex}" , ex ) ;
81
+ _logger . LogDebug ( "Caught fingerprint error: {Ex}" , ex ) ;
82
+ WarningManager . SetFlag ( PluginWarning . InvalidChromaprintFingerprint ) ;
82
83
83
84
// Fallback to an empty fingerprint on any error
84
85
fingerprintCache [ episode . EpisodeId ] = Array . Empty < uint > ( ) ;
Original file line number Diff line number Diff line change @@ -58,6 +58,10 @@ public ActionResult<string> GetSupportBundle()
58
58
bundle . Append ( " seasons" ) ;
59
59
bundle . Append ( '\n ' ) ;
60
60
61
+ bundle . Append ( "* Warnings: `" ) ;
62
+ bundle . Append ( WarningManager . GetWarnings ( ) ) ;
63
+ bundle . Append ( "`\n " ) ;
64
+
61
65
bundle . Append ( FFmpegWrapper . GetChromaprintLogs ( ) ) ;
62
66
63
67
return bundle . ToString ( ) ;
Original file line number Diff line number Diff line change
1
+ namespace ConfusedPolarBear . Plugin . IntroSkipper ;
2
+
3
+ using System ;
4
+
5
+ /// <summary>
6
+ /// Support bundle warning.
7
+ /// </summary>
8
+ [ Flags ]
9
+ public enum PluginWarning
10
+ {
11
+ /// <summary>
12
+ /// No warnings have been added.
13
+ /// </summary>
14
+ None = 0 ,
15
+
16
+ /// <summary>
17
+ /// Attempted to add skip button to web interface, but was unable to.
18
+ /// </summary>
19
+ UnableToAddSkipButton = 1 ,
20
+
21
+ /// <summary>
22
+ /// At least one media file on the server was unable to be fingerprinted by Chromaprint.
23
+ /// </summary>
24
+ InvalidChromaprintFingerprint = 2 ,
25
+
26
+ /// <summary>
27
+ /// The version of ffmpeg installed on the system is not compatible with the plugin.
28
+ /// </summary>
29
+ IncompatibleFFmpegBuild = 4 ,
30
+ }
31
+
32
+ /// <summary>
33
+ /// Warning manager.
34
+ /// </summary>
35
+ public static class WarningManager
36
+ {
37
+ private static PluginWarning warnings ;
38
+
39
+ /// <summary>
40
+ /// Set warning.
41
+ /// </summary>
42
+ /// <param name="warning">Warning.</param>
43
+ public static void SetFlag ( PluginWarning warning )
44
+ {
45
+ warnings |= warning ;
46
+ }
47
+
48
+ /// <summary>
49
+ /// Clear warnings.
50
+ /// </summary>
51
+ public static void Clear ( )
52
+ {
53
+ warnings = PluginWarning . None ;
54
+ }
55
+
56
+ /// <summary>
57
+ /// Get warnings.
58
+ /// </summary>
59
+ /// <returns>Warnings.</returns>
60
+ public static string GetWarnings ( )
61
+ {
62
+ return warnings . ToString ( ) ;
63
+ }
64
+ }
Original file line number Diff line number Diff line change @@ -51,6 +51,7 @@ public static bool CheckFFmpegVersion()
51
51
"Unknown error with FFmpeg version" ) )
52
52
{
53
53
ChromaprintLogs [ "error" ] = "unknown_error" ;
54
+ WarningManager . SetFlag ( PluginWarning . IncompatibleFFmpegBuild ) ;
54
55
return false ;
55
56
}
56
57
@@ -62,6 +63,7 @@ public static bool CheckFFmpegVersion()
62
63
"The installed version of ffmpeg does not support chromaprint" ) )
63
64
{
64
65
ChromaprintLogs [ "error" ] = "chromaprint_not_supported" ;
66
+ WarningManager . SetFlag ( PluginWarning . IncompatibleFFmpegBuild ) ;
65
67
return false ;
66
68
}
67
69
@@ -73,6 +75,7 @@ public static bool CheckFFmpegVersion()
73
75
"The installed version of ffmpeg does not support raw binary fingerprints" ) )
74
76
{
75
77
ChromaprintLogs [ "error" ] = "fp_format_not_supported" ;
78
+ WarningManager . SetFlag ( PluginWarning . IncompatibleFFmpegBuild ) ;
76
79
return false ;
77
80
}
78
81
@@ -84,6 +87,7 @@ public static bool CheckFFmpegVersion()
84
87
"The installed version of ffmpeg does not support the silencedetect filter" ) )
85
88
{
86
89
ChromaprintLogs [ "error" ] = "silencedetect_not_supported" ;
90
+ WarningManager . SetFlag ( PluginWarning . IncompatibleFFmpegBuild ) ;
87
91
return false ;
88
92
}
89
93
@@ -94,6 +98,7 @@ public static bool CheckFFmpegVersion()
94
98
catch
95
99
{
96
100
ChromaprintLogs [ "error" ] = "unknown_error" ;
101
+ WarningManager . SetFlag ( PluginWarning . IncompatibleFFmpegBuild ) ;
97
102
return false ;
98
103
}
99
104
}
Original file line number Diff line number Diff line change @@ -80,7 +80,7 @@ public Plugin(
80
80
}
81
81
catch ( Exception ex )
82
82
{
83
- // WarningManager.SetFlag(PluginWarning.UnableToAddSkipButton);
83
+ WarningManager . SetFlag ( PluginWarning . UnableToAddSkipButton ) ;
84
84
85
85
if ( ex is UnauthorizedAccessException )
86
86
{
You can’t perform that action at this time.
0 commit comments