< Summary - Jellyfin

Information
Class: MediaBrowser.Providers.Lyric.TxtLyricParser
Assembly: MediaBrowser.Providers
File(s): /srv/git/jellyfin/MediaBrowser.Providers/Lyric/TxtLyricParser.cs
Line coverage
9%
Covered lines: 1
Uncovered lines: 10
Coverable lines: 11
Total lines: 45
Line coverage: 9%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%210%
get_Name()100%210%
get_Priority()100%11100%
ParseLyrics(...)0%2040%

File(s)

/srv/git/jellyfin/MediaBrowser.Providers/Lyric/TxtLyricParser.cs

#LineLine coverage
 1using System;
 2using System.IO;
 3using Jellyfin.Extensions;
 4using MediaBrowser.Controller.Lyrics;
 5using MediaBrowser.Controller.Resolvers;
 6using MediaBrowser.Model.Lyrics;
 7
 8namespace MediaBrowser.Providers.Lyric;
 9
 10/// <summary>
 11/// TXT Lyric Parser.
 12/// </summary>
 13public class TxtLyricParser : ILyricParser
 14{
 015    private static readonly string[] _supportedMediaTypes = [".lrc", ".elrc", ".txt"];
 016    private static readonly string[] _lineBreakCharacters = ["\r\n", "\r", "\n"];
 17
 18    /// <inheritdoc />
 019    public string Name => "TxtLyricProvider";
 20
 21    /// <summary>
 22    /// Gets the priority.
 23    /// </summary>
 24    /// <value>The priority.</value>
 2225    public ResolverPriority Priority => ResolverPriority.Fifth;
 26
 27    /// <inheritdoc />
 28    public LyricDto? ParseLyrics(LyricFile lyrics)
 29    {
 030        if (!_supportedMediaTypes.Contains(Path.GetExtension(lyrics.Name.AsSpan()), StringComparison.OrdinalIgnoreCase))
 31        {
 032            return null;
 33        }
 34
 035        string[] lyricTextLines = lyrics.Content.Split(_lineBreakCharacters, StringSplitOptions.None);
 036        LyricLine[] lyricList = new LyricLine[lyricTextLines.Length];
 37
 038        for (int lyricLineIndex = 0; lyricLineIndex < lyricTextLines.Length; lyricLineIndex++)
 39        {
 040            lyricList[lyricLineIndex] = new LyricLine(lyricTextLines[lyricLineIndex].Trim());
 41        }
 42
 043        return new LyricDto { Lyrics = lyricList };
 44    }
 45}