init: web_hgdjc_server
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package m3u8
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"io/ioutil"
|
||||
"sync"
|
||||
)
|
||||
|
||||
var (
|
||||
cacheEnkey []byte
|
||||
cacheLsjEnkey []byte
|
||||
initOnce sync.Once
|
||||
cacheNewEnkey []byte
|
||||
newEnkeyErr error
|
||||
newEnkeyOnce sync.Once
|
||||
)
|
||||
|
||||
func initEnkey() {
|
||||
initOnce.Do(func() {
|
||||
if len(cacheEnkey) == 0 {
|
||||
data, err := ioutil.ReadFile("conf/m3u8.key")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
cacheEnkey = data
|
||||
}
|
||||
if len(cacheLsjEnkey) == 0 {
|
||||
data, err := ioutil.ReadFile("conf/lsjm3u8.key")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
cacheLsjEnkey = data
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func Enkey(ctx context.Context) (buffer *bytes.Buffer, err error) {
|
||||
if cacheEnkey == nil {
|
||||
initEnkey()
|
||||
}
|
||||
buffer = bytes.NewBuffer(cacheEnkey)
|
||||
return
|
||||
}
|
||||
|
||||
// NewEnkey 返回短剧原片使用的新 M3U8 解密密钥。
|
||||
func NewEnkey(ctx context.Context) (buffer *bytes.Buffer, err error) {
|
||||
newEnkeyOnce.Do(func() {
|
||||
cacheNewEnkey, newEnkeyErr = ioutil.ReadFile("conf/newm3u8.key")
|
||||
})
|
||||
if newEnkeyErr != nil {
|
||||
return nil, newEnkeyErr
|
||||
}
|
||||
return bytes.NewBuffer(cacheNewEnkey), nil
|
||||
}
|
||||
|
||||
func LsjEnkey(ctx context.Context) (buffer *bytes.Buffer, err error) {
|
||||
if cacheLsjEnkey == nil {
|
||||
initEnkey()
|
||||
}
|
||||
buffer = bytes.NewBuffer(cacheLsjEnkey)
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user