mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-06-02 21:24:20 -04:00
Add subtitles in info
This commit is contained in:
parent
1c2049f918
commit
1cb54f44b1
@ -3,8 +3,10 @@ package src
|
|||||||
import (
|
import (
|
||||||
"crypto/sha1"
|
"crypto/sha1"
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
|
"fmt"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/zelenin/go-mediainfo"
|
"github.com/zelenin/go-mediainfo"
|
||||||
)
|
)
|
||||||
@ -134,6 +136,12 @@ func OrNull(str string) *string {
|
|||||||
return &str
|
return &str
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var SubtitleExtensions = map[string]string{
|
||||||
|
"subrip": "srt",
|
||||||
|
"ass": "srt",
|
||||||
|
"vtt": "vtt",
|
||||||
|
}
|
||||||
|
|
||||||
func GetInfo(path string) (MediaInfo, error) {
|
func GetInfo(path string) (MediaInfo, error) {
|
||||||
mi, err := mediainfo.Open(path)
|
mi, err := mediainfo.Open(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -187,5 +195,27 @@ func GetInfo(path string) (MediaInfo, error) {
|
|||||||
IsForced: mi.Parameter(mediainfo.StreamAudio, i, "Forced") == "Yes",
|
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
|
}, nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user