feat: torrent support

pull/249/head
zijiren233 1 year ago
parent e1a05a057a
commit 8d87ef6696

@ -245,7 +245,7 @@ func (m *Movie) initChannel() (*rtmps.Channel, error) {
}()
return c, nil
default:
return nil, errors.New("unsupported scheme")
return nil, fmt.Errorf("unsupported scheme: %s", u.Scheme)
}
default:
return nil, errors.New("this movie not support channel")
@ -285,7 +285,7 @@ func (movie *Movie) Validate() error {
case "rtmp":
case "http", "https":
default:
return errors.New("unsupported scheme")
return fmt.Errorf("unsupported scheme: %s", u.Scheme)
}
case !m.Live && m.RtmpSource:
return errors.New("rtmp source can't be true when movie is not live")
@ -293,9 +293,6 @@ func (movie *Movie) Validate() error {
if !settings.MovieProxy.Get() {
return errors.New("movie proxy is not enabled")
}
if m.VendorInfo.Vendor != "" {
return nil
}
u, err := url.Parse(m.Url)
if err != nil {
return err
@ -304,17 +301,15 @@ func (movie *Movie) Validate() error {
return errors.New("local ip is not allowed")
}
if u.Scheme != "http" && u.Scheme != "https" {
return errors.New("unsupported scheme")
return fmt.Errorf("unsupported scheme: %s", u.Scheme)
}
case !m.Live && !m.Proxy, m.Live && !m.Proxy && !m.RtmpSource:
if m.VendorInfo.Vendor == "" {
u, err := url.Parse(m.Url)
if err != nil {
return err
}
if u.Scheme != "http" && u.Scheme != "https" {
return errors.New("unsupported scheme")
}
u, err := url.Parse(m.Url)
if err != nil {
return err
}
if u.Scheme != "http" && u.Scheme != "https" && u.Scheme != "magnet" {
return fmt.Errorf("unsupported scheme: %s", u.Scheme)
}
default:
return errors.New("unknown error")

@ -349,7 +349,11 @@ func GetUrlExtension(u string) string {
if err != nil {
return ""
}
return GetFileExtension(p.Path)
ext := GetFileExtension(p.Path)
if ext != "" {
return ext
}
return GetFileExtension(p.RawQuery)
}
func IsM3u8Url(u string) bool {

Loading…
Cancel
Save