mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-24 02:02:36 -04:00
Add subtitles in info
This commit is contained in:
parent
1c2049f918
commit
1cb54f44b1
@ -3,8 +3,10 @@ package src
|
||||
import (
|
||||
"crypto/sha1"
|
||||
"encoding/hex"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/zelenin/go-mediainfo"
|
||||
)
|
||||
@ -134,6 +136,12 @@ func OrNull(str string) *string {
|
||||
return &str
|
||||
}
|
||||
|
||||
var SubtitleExtensions = map[string]string{
|
||||
"subrip": "srt",
|
||||
"ass": "srt",
|
||||
"vtt": "vtt",
|
||||
}
|
||||
|
||||
func GetInfo(path string) (MediaInfo, error) {
|
||||
mi, err := mediainfo.Open(path)
|
||||
if err != nil {
|
||||
@ -187,5 +195,27 @@ func GetInfo(path string) (MediaInfo, error) {
|
||||
IsForced: mi.Parameter(mediainfo.StreamAudio, i, "Forced") == "Yes",
|
||||
}
|
||||
}),
|
||||
Subtitles: Map(make([]Subtitle, ParseUint(mi.Parameter(mediainfo.StreamText, 0, "StreamCount"))), func(i int) Subtitle {
|
||||
format := strings.ToLower(mi.Parameter(mediainfo.StreamText, i, "Format"))
|
||||
if format == "utf-8" {
|
||||
format = "subrip"
|
||||
}
|
||||
extension := OrNull(SubtitleExtensions[format])
|
||||
var link *string
|
||||
if extension != nil {
|
||||
x := fmt.Sprintf("/video/%s/subtitle/%d.%s", sha, i, *extension)
|
||||
link = &x
|
||||
}
|
||||
return Subtitle{
|
||||
Index: uint32(i),
|
||||
Title: OrNull(mi.Parameter(mediainfo.StreamText, i, "Title")),
|
||||
Language: OrNull(mi.Parameter(mediainfo.StreamText, i, "Language")),
|
||||
Codec: format,
|
||||
Extension: extension,
|
||||
IsDefault: mi.Parameter(mediainfo.StreamText, i, "Default") == "Yes",
|
||||
IsForced: mi.Parameter(mediainfo.StreamText, i, "Forced") == "Yes",
|
||||
Link: link,
|
||||
}
|
||||
}),
|
||||
}, nil
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user